ioBroker.lgtv icon indicating copy to clipboard operation
ioBroker.lgtv copied to clipboard

Remote key right is doing two steps

Open Haifeif opened this issue 1 year ago • 4 comments

Describe the bug
When I activate the remote key right command, it is doin double action!

To Reproduce
Use the command

Version 2.1.1

Haifeif avatar Nov 06 '23 00:11 Haifeif

Any 1 out there?

Haifeif avatar Apr 12 '24 12:04 Haifeif

yes, somebody here..

on my LG's is the adapter working fine, I'm on latest version 2.1.2

Ilovegym66 avatar Apr 12 '24 15:04 Ilovegym66

When I use <lgtv.0.remote.right>, my TV does 2 steps to the right. So either the adapter sends 2 commands, or the command is too long and gets interpreted as 2 commands?

I also use 2.1.2, and it is the only command doing that!

Haifeif avatar Apr 16 '24 15:04 Haifeif

Thanx for 2.2.0 - but the cursor is still doing 2 steps to the right. Based on my experience, I guess it is a problem with the length of the IR data. Would you mind to check that?

Danke für Version 2.2.0 - aber wenn ich die Funktion <lgtv.0.remote.right> ausführe, springt der Cursor um 2 Schritte nach rechts. In der Vergangenheit waren solche Effekte meist im "gelernten" IR Befehl begründet. Es wäre Klasse, wenn das gefixt werden könnte.

Haifeif avatar May 12 '24 09:05 Haifeif

Same problem here with v2.2.0

All Buttons for remote makes two steps. Any solution for this known? Maybe a workaround with blockly?

LastPerfectTobi avatar Jun 18 '24 14:06 LastPerfectTobi

Wenn man die Datenpunkte über den Objektbrowser ändert dann reagiert z.B. "Lautstärke Plus" wenn ich den Datenpunkt (Button) auf true setze und auch wieder wenn ich den auf false setze. Jede Statusänderung verändert die Lautstärke in die selbe Richtung.

Der Adapter sollte nur auf true triggern.

LastPerfectTobi avatar Jun 18 '24 17:06 LastPerfectTobi

Das ist ein button, der muss so sein, den setzt man auch nur auf true..

Ilovegym66 avatar Jun 18 '24 17:06 Ilovegym66

Das ist ein button, der muss so sein, den setzt man auch nur auf true..

Richtig, den setzt man auf true wenn man ihn "drückt". Aber wenn der Button virtuell losgelassen wird, dann springt der Datenpunkt automatisch auf false (sieht man nur nicht in Klartext im Datenpunkt).

Und wegen diesem Bug wird dann die die Aktion zweimal ausgeführt, weil der Adapter auch auf false reagiert und nicht nur auf true.

LastPerfectTobi avatar Jun 18 '24 17:06 LastPerfectTobi

kann ich leider nicht nachvollziehen, der Datenpunkt ist true, bleibt true, und macht auch nur einmal was er soll. Da geht nix auf false... gerade getestet und mit influx geloggt.. Setz den Adapter mal auf debug und poste das mal, vielleicht sieht man da was..??

Ilovegym66 avatar Jun 18 '24 18:06 Ilovegym66

Also ich hab mir in Blockly mal einen Trigger auf den Remote-Key Up gesetzt.

Wenn der Button gedrückt wird, dann kommt das dabei raus:

2024-06-18 20:58:01.354 - error: javascript.0 (16697) script.js.common.Fernseher_App: true
2024-06-18 20:58:01.363 - error: javascript.0 (16697) script.js.common.Fernseher_App: false

Wenn ich im Objektbrowser in der Expertenansicht den Datenpunkt manuell auf True setze bleibt er auch true - und die Aktion KeyUp wird am Fernseher auch nur einmal ausgelöst.

Wenn ich den dann manuell auf false zurückstelle, wird die selbe Funktion KeyUp wieder ausgeführt (und das sollte meiner Meinung nach nicht sein).

Daher die Zweifache Ausführung wenn der Datenpunkt als Button betätigt wird.

LastPerfectTobi avatar Jun 18 '24 19:06 LastPerfectTobi

Hab mal kurz in den Code geschaut:

Volume up ist offensichtlich ein BUTTON und verhält sich lt. Code richtig. Anlog sieht der Code für remote keys aus. Der VALUE eines Buttons ist irrelevant - jedes Beschreiben eines States mit der Role BUTTON mit ACK=FALSE löst eine Aktion aus. Normalerweise wird ein Button nur mit val=true, ack=false beschrieben. Da ein Button aber im Grunde genommen keinen Wert hat, löst auch ein Beschreiben mit val=false ack=false eine AKtion aus.

Ergo sehe ich hier eigentlich einen Verwendungsfehler.

Du schreibst "Wenn der Button gedrückt wird". Was meinst du damit genau. Welcher Button wird wo gedrückt? Das Bumper Symbol im Objektbrowser? In der VIS solltest du kein SWITCH sondern ein Taster Widget verwenden und das sollte eigentlich nur einmal den Wert auf true setzen (und nie auf false).

Also bitte um genaue Info: Welcher State mit welcher Id wird wie beschrieben?

mcm1957 avatar Jun 18 '24 20:06 mcm1957

Das ist ein button, der muss so sein, den setzt man auch nur auf true..

Richtig, den setzt man auf true wenn man ihn "drückt". Aber wenn der Button virtuell losgelassen wird, dann springt der Datenpunkt automatisch auf false (sieht man nur nicht in Klartext im Datenpunkt).

Und wegen diesem Bug wird dann die die Aktion zweimal ausgeführt, weil der Adapter auch auf false reagiert und nicht nur auf true.

a) Ein State springt eigentlich nicht virtuell herum :-) Bist du sicher, dass du den State nicht mittels SCHALTER betätigst? b) Was passiert wenn du den Bumper im Objektbrowser verwendets? c) Ich kann (noch) nicht ausschließen dass im Adapter etwas falsch läuft. ABER du bzw deine VIS dürfen den State NICHT auf false zurücksetzen - oder sich nicht wundern, wenn eine zweite Aktion ausgelöst wird. Buttons reagieren auf das Beschreiben mit acj=false und unabhängig vom Wert.

mcm1957 avatar Jun 18 '24 20:06 mcm1957

Wenn der Button gedrückt wird, dann kommt das dabei raus:

2024-06-18 20:58:01.354 - error: javascript.0 (16697) script.js.common.Fernseher_App: true
2024-06-18 20:58:01.363 - error: javascript.0 (16697) script.js.common.Fernseher_App: false

Welcher Button wird da gedrückt?

Wenn ich im Objektbrowser in der Expertenansicht den Datenpunkt manuell auf True setze bleibt er auch true - und die Aktion KeyUp wird am Fernseher auch nur einmal ausgelöst.

Das ist das richtige Verhalten.

Wenn ich den dann manuell auf false zurückstelle, wird die selbe Funktion KeyUp wieder ausgeführt (und das sollte meiner Meinung nach nicht sein).

Auch das ist richtig und soll bei einem Button so sein.

Daher die Zweifache Ausführung wenn der Datenpunkt als Button betätigt wird.

Ja, da der State ja 2x beschrieben wird. Mit welchem Wert ist bei einem Button per definition egal.

mcm1957 avatar Jun 18 '24 20:06 mcm1957

Also bitte um genaue Info: Welcher State mit welcher Id wird wie beschrieben?

Die Kernfrage ist nun - von welchem BUTTON wird hier geredet. Wo ist der?

mcm1957 avatar Jun 18 '24 20:06 mcm1957

Ich denke, das Issue kann man zu machen, hier liegt eindeutig ein Fehler in der Bedienung (oder des Skriptes ) vor.

Ilovegym66 avatar Jun 19 '24 04:06 Ilovegym66

Ja - nur würd ich die Frage welcher Button hier angesprochen wurde noch klären.

mcm1957 avatar Jun 19 '24 05:06 mcm1957

es geht hier im Titel um lgtv.0.remote.right. dann um lgtv.0.states.volumeUp. Sind alles Button.

Ilovegym66 avatar Jun 19 '24 06:06 Ilovegym66

image

Diese sind gemeint. Entweder im Objektbrowser oder halt per VIS geschalten.

Aber für mich okay, wenn das Verhalten vom Adapter so korrekt ist dann muss ich bei mir das anders realisieren.

LastPerfectTobi avatar Jun 19 '24 06:06 LastPerfectTobi

Wenn die Buttons im Object Browser false setzen muss man / ich das checken

mcm1957 avatar Jun 19 '24 06:06 mcm1957

Da ja anscheinend nur der Themenstarter und ich das Problem haben ist es für mich auch ok, dann hab ich ein falsches Verständnis von der Funktionsweise 🙂

Wie gesagt, ich bau einen Workaround mit Blockly und verhindere dadurch die doppelte Auslösung.

LastPerfectTobi avatar Jun 19 '24 06:06 LastPerfectTobi

@mcm1957 er macht das mit VIS, ich nehme an, anstatt ein Button nimmt er einen Schalter, und der setzt den Button auf true/false, was halt eine falsche Anwendung ist. Wenn ich im Objektbrowser den Button mit True begluecke, dann macht er auch nur ein true. (protokolliert mit influx-history)

Hier nimmt der User aber ein Skript, das den Button erst auf true und dann auf false setzt, und daher loest der Adapter den Befehl 2x aus. Also alles richtig, bis auf den Anwendungsfehler und das Skript.

@LastPerfectTobi Wenn du einen "echten" Schalter in iobroker fuer deine Vis oder sonstige Faelle brauchst, dann mach dir einfach einen extra Datenpunkt unter 0_userdata.0. und ein kleines Script, dass hier ein/aus schaltet.

Ilovegym66 avatar Jun 19 '24 06:06 Ilovegym66

Ah, hat sich ueberschnitten, genauso, soll man es machen.

Ilovegym66 avatar Jun 19 '24 06:06 Ilovegym66

@LastPerfectTobi Admin 7.0.1 wurde wieder zurueckgezogen, besser wieder auf die letzte Beta zurueck gehen..

Ilovegym66 avatar Jun 19 '24 06:06 Ilovegym66

Ok ich fasse dann mal zusammen:

Mit dem Button im Objectbrowser sollte es funktionieren - wenn nicht bitte Bescheid geben.

Per Skript den State NUR auf val=zrue mit ack=false setzen. NICHT auf false retour setzen.

In einer VIS unbedingt einen Button und keinen Schalter verwenden.

Wenn dann noch immer was nicht so funktioniert wie erwartet gerne nochmals melden.

mcm1957 avatar Jun 19 '24 07:06 mcm1957