NEWS
lgtv Adapter zur Steuerung von LG WebOS SmartTVs
-
Dann hast du die richtige Version, was da in der Info steht ist bei Entwicklung unwichtig.
-
@dirkhe Wäre es nicht gut, dann auch noch das Intervall, in dem versucht wird die Verbindung zum TV herzustellen, anpassbar zu machen? Das liegt aktuell ja bei 8s:
lgtv.0 2020-03-14 08:24:35.344 debug (27131) Connecting to WebOS TV: ws://192.168.178.106:3000 lgtv.0 2020-03-14 08:24:37.337 debug (27131) TV is off lgtv.0 2020-03-14 08:24:43.353 debug (27131) Connecting to WebOS TV: ws://192.168.178.106:3000 lgtv.0 2020-03-14 08:24:45.345 debug (27131) TV is off
-
@SchuetzeSchulz die reconnect time ist aktuell hart auf 5 sec eingestellt. Das ist auch die Default Zeit von hobyquackers lib. Macht es Sinn die einstellbar zu machen, hattet ihr da in der Vergangenheit mal getestet?
-
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
@SchuetzeSchulz die reconnect time ist aktuell hart auf 5 sec eingestellt. Das ist auch die Default Zeit von hobyquackers lib. Macht es Sinn die einstellbar zu machen, hattet ihr da in der Vergangenheit mal getestet?
Hatten wir nicht getestet. Mir ist nur damals aufgefallen alles unter 5 Sekunden führt zu Problemen.
-
OK, ich habe die reconnect time jetzt mal konfigurierbar gemacht. https://github.com/dirkhe/ioBroker.lgtv
Könnt ihr ja mal testen. Wenn das soweit passt, würde ich einen Merge Request stellen
-
Hallo rh1212 und Community!
Ich bin ein kompletter Neuling was ioBroker betrifft und habe es mittels der Anleitung von rh1212 soweit geschafft, dass ich über die "launch app" des LG TV Adapter, unter Erstellung der Objekte und Verwendung von Blockly, gewisse "Apps" auf meinem LG TV zum starten bringe. Wenn ich bei den erstellten Objekten in ioBroker den Button dahinter anklicke, startet auch auf meinem TV jede App die ich anklicke. In Blockly habe ich im Baustein TEXT immer den Wert eingetragen, welchen mir das Objekt Launch App als Wert angezeigt hat (z.B. für HDMI-1 -> com.webos.app.hdmi1) eingetragen.Ich binde dann diese Objekte in dem iot.0 Adapter unter "Alexa-Geräte" ein. Jedoch sagt mir der Adapter, dass er manche Objekte nicht einbinden möchte (siehe Screenshot). Warum macht der Adapter das??? Gibt es da vielleicht eine andere Lösung?
Auch im Log kann ich keine Fehlermeldung finden.
Danke im Voraus für eure HilfeEDIT: Ich versuche die ganzen Befehle natürlich mittels Echo-dot umzusetzen.
-
Hast du den smartname korrekt gesetzt? Passt Role und Type ?
-
Ich habe das alles so wie im Screenshot rechts oben eingegeben. Rolle ist bei allen state und Type bei allen button.
Was verstehst du unter Smartname? Die ID oder den Namen... entschuldige ich bin wirklich ein Noob gg versuche aber dazu zu lernen.Also wie beschrieben funktionieren auch alle button in ioBroker ohne Probleme, jedoch bekomme ich bei der Einbindung in iot.0 Adapter bei mehreren "App's" die im oben angeführten Screenshot angezeigte Botschaft.
"Gerät lgtv.0.Extras_Ordner.Netflix wurde nicht hinzugefügt.EDIT: Habe jetzt ein 'Wake on lan' Script eingebaut und versucht dieses im iot.0 Adapter unter Alexa-Geräte einzubinden. Auch da bekam ich die "Botschaft", dass es nicht hinzugefügt wurde. Es liegt also glaube ich nicht am lgtv.0 Adapter, denn auch die "Wake on Lan" Funktion startet in ioBroker ganz normal. Es wird wohl am iot.0 Adapter liegen.....
Danke für deine Hilfe
Lg -
Geh mal in der Object Ansicht auf den Bleistift. Dann unter RAW, da siehst du den smartname
{ "_id": "lgtv.0.states.power", "type": "state", "common": { "name": "Switch TV power", "role": "switch", "type": "boolean", "read": true, "write": true, "smartName": { "de": "Tv,Fernseher" } }, "native": {}, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1584040988961 }
-
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
"smartName": { "de": "Tv,Fernseher" }
Hallo dirkhe!
Beim durchstöbern des Forum habe ich bemerkt, dass mehrere User seit Anfang März probleme mit der Einbindung von Geräten in iot.0 Adapter haben.
Siehe Link: https://forum.iobroker.net/topic/11288/cloud-adapter-smart-gerät-hinzufügen-geht-nicht/26Es liegt also definitiv nicht am lgtv.0 adapter.
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1584970466099, "common": { "name": "Amazon Prime Video", "role": "button", "type": "object", "desc": "Manuell erzeugt", "read": true, "write": true "smartName": "Amazon" }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "lgtv.0.Extras_Ordner.Amazon_Prime_Video", "type": "state" }
Wenn ich den Smartname im RAW zu ändern versuche und das Ganze speichere, zeigt er mir sofort eine Fehlermeldung an.
Ich werde die ganzen Einbindungen in iot.0 Adapter mit dem kleinen Workaround machen müssen, wie sie im anderen Thread beschrieben sind.
Vielen DANK für deine Bemühungen!!!!
-
Problem gelöst!!!
Ich hab einfach den Typ von Button auf Switch geändert und siehe da! Es lässt sich in iot.0 Adapter integrieren und der Sprachbefehl via ALEXA funktioniert auch!!!
Nochmals DANKE für deine Bemühungen und gesund bleiben!
-
@knx hast du es hinbekommen mit netflix?
-
Hallo,
ich verwende Version 1.1.6.
Wenn ich Wert false auf
lgtv.0.states.power
schreibe geht der Fernseher aus, soweit okay.
Schreibe ich nochmal false, geht der Fernseher an. Ist das plausibel oder ein Fehler?Vielen Dank
-
Lt Code dürfte das nicht passieren. Kannst du mal auf debug stellen und das dann hier Posten? Hast du den Haken bei schalte als Fernbedienung gesetzt?
-
bei mir geht der garnicht an
-
@dirkhe Nein. Wenn ich "Schalten Sie den Fernseher als Ferbedienungstaste aus" aktiviere so geht turnOff und power nicht mehr. Was macht die Einstellung?
Das ist das Log.
Erst mache ich aus - ok - "appId":""
dann nochmal aus - State change "states.power" - VALUE: false -> Sending turn OFF command to WebOS TV
dann geht die Kiste an - "appId":"com.webos.app.livetv"lgtv.0 2020-06-07 10:44:22.109 debug (14278) tv/getCurrentChannel: {"channelId":"7_22_6_6_1089_12060_1","dualChannel":{"dualChannelId":null,"dualChannelTypeName":null,"dualChannelTypeId":null,"dualChannelNumber":null},"isScrambled":false lgtv.0 2020-06-07 10:44:21.294 debug (14278) tv/getCurrentChannel: {"channelId":"7_22_6_6_1089_12060_1","dualChannel":{"dualChannelId":null,"dualChannelTypeName":null,"dualChannelTypeId":null,"dualChannelNumber":null},"isScrambled":false lgtv.0 2020-06-07 10:44:20.692 debug (14278) renew connection in one minute for stable subscriptions... lgtv.0 2020-06-07 10:44:20.671 debug (14278) cur app is com.webos.app.livetv lgtv.0 2020-06-07 10:44:20.670 debug (14278) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.livetv","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-06-07 10:44:20.066 debug (14278) Sending turn OFF command to WebOS TV: 192.168.0.14 lgtv.0 2020-06-07 10:44:20.065 debug (14278) State change "states.power" - VALUE: false lgtv.0 2020-06-07 10:44:15.680 debug (14278) TV is off lgtv.0 2020-06-07 10:44:14.177 debug (14278) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-06-07 10:44:13.988 debug (14278) Sending turn OFF command to WebOS TV: 192.168.0.14 lgtv.0 2020-06-07 10:44:13.988 debug (14278) State change "states.power" - VALUE: false
-
Ich habe jetzt gerade mal in den code geschaut:
case 'states.power': if (!state.val){ adapter.log.debug('Sending turn OFF command to WebOS TV: ' + adapter.config.ip); if (adapter.config.power){ sendCommand('button', {name: 'power'}, (err, val) => { if (!err) adapter.setState('states.power', state.val, true); }); } else { sendCommand('ssap://system/turnOff', {message: state.val}, (err, val) => { if (!err) adapter.setState('states.power', state.val, true); }); } }
Also so wie ich den code verstehe, wird bei angehakter checkbox ein key-command zum TV geschickt, also quasi, als wenn du auf die Fernbedienung clickst. Sonst wird halt expliziet das Ausschaltkommando geschickt
Was mich wundert ist, wie du den state setzt? Der reagiert nämlich nur, wenn du den ack nicht setzt. Und zumindest über die admin konsole bekomme ich das erbeute setzten, wenn der bereits auf false ist, gar nicht hin. Also ich bekomme deine Zeile 7 gar nicht reproduziert. Ich denke, es macht auch kein Sinn, abzufragen ob der TV aus ist, denn vlt. ist aus irgendeinem Grund ein Schiefstand im System, dann hätte man die Möglichkeit, darüber nochmal extra zu schalten.
-
Ich setzte den State entweder per NodeRed oder in Objekte, Checkbox weg und dann auf den Haken.
Wenn ich den Fernseher lange aus habe (> 1 Minute) reagiert er wie ich erwarten würde mit Timeout:
} else { sendCommand('ssap://system/turnOff', {message: state.val}, (err, val) => { adaptetr.log.error('yyy err' + err); if (!err) adapter.setState('states.power', state.val, true); });
lgtv.0 2020-06-07 16:53:31.679 debug (18117) yyy err Error: timeout lgtv.0 2020-06-07 16:53:31.677 debug (18117) ERROR! Response from TV: Error: timeout
Sieht für mich so aus als interpretiert der Ferseher das zweite Kommando falsch.
-
Wieso den Haken weg? Der ist doch schon weg wenn du das erste mal auf false setzt oder nicht?
Wie sieht denn das log aus, wenn du das 1. mal auf false setzt, steht denn dann da "yyy err" ohne fehler?
-
@dirkhe genau, checkbox weg (lassen)
Wenn ich den State das erste mal auf false setze kommt kein Fehler
lgtv.0 2020-06-07 18:43:35.963 debug (20017) TV is off lgtv.0 2020-06-07 18:43:34.462 debug (20017) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-06-07 18:43:34.294 debug (20017) yyy err null lgtv.0 2020-06-07 18:43:34.174 debug (20017) Sending turn OFF command to WebOS TV: 192.168.0.14 Power:false lgtv.0 2020-06-07 18:43:34.172 debug (20017) State change "states.power" - VALUE: false