NEWS
Skript reagiert nicht mehr auf Aktualisierung von Objekt
-
Sorry, ich bin hier grad völlig irritiert. Hab ein eigenes Objekt dass sich prima aktualisiert .. aber ein Skript, dass darauf überhaupt nicht reagiert .. und es ist so stumpf einfach:
Das ging auch alles mal .. keine Ahnung was da passiert sein könnte. Ihr? VG
-
@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
Hab ein eigenes Objekt dass sich prima aktualisiert
wie aktualisiert sich das?
-
Ist ein eigenes Objekt das über IOT/Alexa aktualisiert wird. Ich sage "alexa, starte firetv" und dann wird das Objekt immer true gesetzt. Der Aktualisierungszeitstempel ändert sich .. eigentlich nichts Ungewöhnliches.
Ich hab ein bissl Probleme mit dem Objekt-Typ .. da ich in der Alex-App An/Aus auswählen kann sollte es Boolean sein. Trotzdem bekomm ich im Protokoll eine Warnung:
Object 0_userdata.0.lg_firetv is invalid: obj.common.states has an invalid type! Expected "object", received "string" This will throw an error up from js-controller version 7.0.0!
Und wenn ich auf string umstelle erhalte ich sofort:
Object 0_userdata.0.lg_firetv is invalid: Default value has to be type "string" but received type "boolean" This will throw an error up from js-controller version 7.0.0!Aber selbst die Warnung sollte Wurst sein .. sofern sich das Objekt Aktualisiert
-
@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
sofern sich das Objekt Aktualisiert
nochmal: WIE wird das aktualisiert?
zeigen! -
@daniello sagte: Default value has to be type "string" but received type "boolean"
Ändere in den OBJEKTDATEN common.def in einen Leerstring: ""
-
@paul53
Danke .. die warnung hab ich aktuell wegbekommen .. bleibt, dass das Skript nicht reagiert.@hormoran
Bin grad nicht sicher was genau ich zeigen sollte:
-
@daniello sagte: das Skript nicht reagiert.
Sicher? Ändere mal den Debug-Block auf "Info", da mit "Debug" vermutlich keine Log-Ausgabe erfolgt.
-
@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
Bin grad nicht sicher was genau ich zeigen sollte:
wer oder was aktualisiert wie den eigenen Datenpunkt.
oder Ist das kein eigener Datenpunkt, sondern ein DP vom Alexa Adapterdann zeig mal die Objekte
-
Danke .. das wusste ich nicht. Ich dachte Debug ist nur gesprächiger als Info .. jetzt gibt es auch ein Signal d.h. das Skript tut doch was.
Aber .. und das war der eigentliche Begin der Odyssee: Ich verwende ja den LGTV-Adapter für das wechseln von TV auf Fire TV .. nichts Spannendes. Irgendwann funtionierte es nicht mehr. Mir ist aufgefallen, das das Triggern der Befehle am direkt an den Adapter-Objekten immer zuverlässig funktioniert. Ich kann Input-Source auf HDMI stellen oder ich kann per App Launch Fire TV starten .. auch wenn es keine App ist (sondern der Cube am HDMI).
Das Skript macht eigentlich nichts anderes - funktionerte nun aber wochenlang gar nicht. Nun hab ich es von 4 Malen zwei Mal geschaft per Input Source umzuschalten .. es ist also nicht besonders zuverlässig.
Und das App Starten klappt überhaupt nicht.
Es gibt also einen (für mich) unerklärlichen Unterschied, warum es am Adapterobjekt klappt .. nicht aber über das Skript. Ich teste die einzeln:
-
@daniello Also wird getriggert, aber nichts ausgeführt?
Dann wäre nicht der "eigene Datenpunkt" sondern die LG-Datenpunkte das Problem?
Dann bitte die Objektdaten dieser beiden DP zeigen. -
Es ist noch schlimmer .. die Felder im Objekt das LG-Adapters werden richtig beschrieben .. aber es passiert trotzdem nichts.
(bei Input Source nun sporadisch).Insofern sind wir m.E. über die eigenen Objekte hinaus.
Kann es sein, dass was mit dem Admin oder dem JS-Adapter nicht stimmt, sodass die Befehle über das Skript zwar am Adapter ankommen aber nicht ausgeführt werden?
Ich glaub ich muss mal am adapter debug anwerfen und manuell und per skript vergleichen.
-
@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
sodass die Befehle über das Skript zwar am Adapter ankommen aber nicht ausgeführt werden?
da will ich ja die ganze Zeit drauf hinaus!
Das gezeigte Skript sieht korrekt aus.
Bedingung wäre eine korrekte Änderung des Trigger DPs.jetzt kommt es auf die korrekte Beschreibung der LG DPs an.
Beides hast du noch nicht gezeigt.
Wenn auch diese kortekt befüllt würden, kann es noch am LG Adapter oder am TV oder an der Kommunikation liegen,
Dazu solltest du die LG Instanz auf Logstufe debug stellen und im log nachsehen -
Also das mit dem "Input" schaut gut aus .. vielleicht lag da irgendwo ein Furz quer .. aber bei App passiert Unterschiedliches. Der App-Entwickler meinte am Adapter sollte es nicht liegen .. da es von den Objekten aus funktioniert.
-
@daniello
Nun ist "lg_firetv" vom Typ "boolean"? Dann passt common.def nicht! -
@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
aber bei App passiert Unterschiedliches.
was denn?
bitte beachten:
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1das hier
kann ich nicht entziffern
und aus den Objektdaten kann ich nicht zitieren
-
Oje .. hab ich inzwsichen alles verbastelt?
{ "_id": "0_userdata.0.lg_firetv", "type": "state", "common": { "name": "lg_firetv", "role": "", "type": "boolean", "read": true, "write": true, "states": "false:no;true:yes", "desc": "Manuell erzeugt", "def": "", "smartName": { "de": "", "smartType": "SWITCH" } }, "native": {}, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1750594714227 }
App über Skript
2025-06-22 16:50:05.608 - debug: lgtv.0 (1610) State change "states.launch" - VALUE: Fire TV 2025-06-22 16:50:05.609 - debug: lgtv.0 (1610) Sending launch command Fire TV to WebOS TV: 192.168.178.221 2025-06-22 16:50:05.609 - debug: lgtv.0 (1610) Opening app Fire TV on WebOS TV: 192.168.178.221
App über Adapterobjekt
2025-06-22 16:47:55.329 - debug: lgtv.0 (1610) Connection closed: 1000 2025-06-22 16:47:55.821 - debug: lgtv.0 (1610) Connecting to WebOS TV: wss://192.168.178.221:3001 2025-06-22 16:47:55.960 - debug: lgtv.0 (1610) WebOS TV Connected 2025-06-22 16:47:56.180 - debug: lgtv.0 (1610) audio/getSoundOutput: {} 2025-06-22 16:47:56.184 - debug: lgtv.0 (1610) audio/getVolume: {"muted":false,"scenario":"mastervolume_tv_speaker","active":false,"action":"requested","volume":10,"returnValue":true,"subscribed":true,"changed":["muted","volume"]} 2025-06-22 16:47:56.187 - debug: lgtv.0 (1610) DEBUGGING getForegroundAppInfo: {"appId":"com.webos.app.livetv","subscribed":true,"returnValue":true,"windowId":"","processId":"n-2205"} 2025-06-22 16:47:56.188 - debug: lgtv.0 (1610) cur app is com.webos.app.livetv 2025-06-22 16:47:56.196 - debug: lgtv.0 (1610) tv/getCurrentChannel: {"channelId":"3_49_2_0_1079_11110_1","signalChannelId":"1079_11110_1","channelModeId":1,"channelModeName":"Cable","channelTypeId":4,"channelTypeName":"Cable Digital TV","channelNumber":"2","channelName":"ZDF HD","physicalNumber":49,"isSkipped":false,"isLocked":false,"isDescrambled":false,"isScrambled":false,"isFineTuned":false,"isInvisible":false,"favoriteGroup":null,"hybridtvType":"HBBTV","dualChannel":{"dualChannelId":null,"dualChannelTypeId":null,"dualChannelTypeName":null,"dualChannelNumber":null},"returnValue":true} 2025-06-22 16:47:56.225 - debug: lgtv.0 (1610) getCurrentSWInformation: {"returnValue":true,"product_name":"webOS","model_name":"HE_DTV_WT1M_AFAAABAA","sw_type":"FIRMWARE","major_ver":"05","minor_ver":"05.90","country":"DE","device_id":"3c:cd:93:68:dc:dc","auth_flag":"N","ignore_disable":"N","eco_info":"01","config_key":"00","language_code":"de-DE"} 2025-06-22 16:47:56.227 - debug: lgtv.0 (1610) getSystemInfo: {"features": {"3d":true,"dvr":true},"receiverType":"dvb","modelName":"42LB730V- ZD","returnValue":true} 2025-06-22 16:47:56.233 - debug: lgtv.0 (1610) Service list: {"services":[{"name":"api","version":1},{"name":"audio","version":1}, {"name":"media.controls","version":1}, {"name":"media.viewer","version":1},{"name":"pairing","version":1}, {"name":"system","version":1},{"name":"system.launcher","version":1}, {"name":"system.notifications","version":1},{"name":"tv","version":1}, {"name":"webapp","version":2}],"returnValue":true} 2025-06-22 16:47:59.219 - debug: lgtv.0 (1610) tv/getCurrentChannel: {"channelId":"3_49_2_0_1079_11110_1","signalChannelId":"1079_11110_1","channelModeId":1,"channelModeName":"Cable","channelTypeId":4,"channelTypeName":"Cable Digital TV","channelNumber":"2","channelName":"ZDF HD","physicalNumber":49,"isSkipped":false,"isLocked":false,"isDescrambled":false,"isScrambled":false,"isFineTuned":false,"isInvisible":false,"favoriteGroup":null,"hybridtvType":"HBBTV","dualChannel":{"dualChannelId":null,"dualChannelTypeId":null,"dualChannelTypeName":null,"dualChannelNumber":null},"returnValue":true} 2025-06-22 16:48:00.840 - debug: lgtv.0 (1610) State change "states.launch" - VALUE: com.webos.app.hdmi2 2025-06-22 16:48:00.840 - debug: lgtv.0 (1610) Sending launch command com.webos.app.hdmi2 to WebOS TV: 192.168.178.221 2025-06-22 16:48:00.841 - debug: lgtv.0 (1610) Opening app com.webos.app.hdmi2 on WebOS TV: 192.168.178.221 2025-06-22 16:48:01.186 - debug: lgtv.0 (1610) DEBUGGING getForegroundAppInfo: {"appId":"com.webos.app.hdmi2","returnValue":true,"windowId":"","processId":"1054"} 2025-06-22 16:48:01.186 - debug: lgtv.0 (1610) cur app is com.webos.app.hdmi2
-
@daniello sagte: hab ich inzwsichen alles verbastelt?
Wenn es nun doch "boolean" sein soll, ändere:
"role": "switch", "type": "boolean", "read": true, "write": true, "states": { "false": "no", "true": "yes" }, "desc": "Manuell erzeugt", "def": false,
-
Danke Paul .. hab ich gemacht .. wirft allerdings sofort wieder diese Warnung:
Object 0_userdata.0.lg_firetv is invalid: obj.common.states has an invalid type! Expected "object", received "string" This will throw an error up from js-controller version 7.0.0!
Macht mich Irre diese Meldung .. hatte vormals auf String gestellt war aber auch wieder falsch
-
@daniello sagte: Expected "object"
Das kann nicht sein, wenn common.type = "boolean" ist.
Woher kommt der String?@daniello sagte in Skript reagiert nicht mehr auf Aktualisierung von Objekt:
hatte vormals auf String gestellt war aber auch wieder falsch
Offenbar wird doch ein String geschrieben?EDIT: Die Meldung betrifft common.states
-
Hab mal history angemacht für das Objekt:
Wobei die Warnung von Admin kommt .. also wenn ich am Objekt ändere. Beschicken tut das Feld nur der iot Adapter.
Kann es sein, das IOT ordentlich True/False sendet und der Admin das was wiederum beim Ändern des Objekts True und False als String interpretiert?