NEWS
lgtv Adapter zur Steuerung von LG WebOS SmartTVs
-
Hast Du mal versucht, den Datenpunkt "states.channel" mit einer Ziffer zu beschreiben?
-
Danke für die Antwort
Eine direkte Kanalwahl über den LGTV Adapter funktioniert nichtIch habe mich in der Zwischenzeit etwas mit JavaScript beschäftigt und folgendes Script funktioniert:
createState("javascript.0.Kanal",1,{type:'number',role:'state'});
var LGTV = require('lgtv2');
if (getState("lgtv.0.states.on").val) {
var lgtvobj = new LGTV({
url: 'ws://xxx.xxx.xxx.xxx:3000'
});
on({id: "javascript.0.Kanal", change: 'any'}, function (obj) {
if (Number.isInteger(getState("javascript.0.Kanal").val)) {
lgtvobj.request('ssap://tv/openChannel', {channelNumber: getState("javascript.0.Kanal").val.toString()}, function (error, response) {
if (!error)
log("Kanal auf " + getState("javascript.0.Kanal").val + " gesetzt", "info");
})
}
})
}
.
Problem bei der Kanalwahl über Alexa sind Kanäle > 100.
Das ist aber systembedingt.Genauso lassen sich Kanäle via Alexa direkt mit Namen ansteuern
-
@Miata Hey, mal ein kleiner Verbesserungsvorschlag:
Du musst nicht dauernd getState benutzen, da du den ja schon in der Variable "obj" hast.createState("javascript.0.Kanal",1,{type:'number',role:'state'}); var LGTV = require('lgtv2'); if (getState("lgtv.0.states.on").val) { var lgtvobj = new LGTV({ url: 'ws://xxx.xxx.xxx.xxx:3000' }); on({id: "javascript.0.Kanal", change: 'any'}, function (obj) { if (Number.isInteger(obj.state.val)) { lgtvobj.request('ssap://tv/openChannel', {channelNumber: obj.state.val}, (error, response) => { if (!error) log("Kanal auf " + obj.state.val + " gesetzt", "info"); }) } });
BTW für Code bitte auch den Code-Tag benutzen zwecks leserlichkeit
-
@Miata Ich hab grad mal im Code vom LGTV Adapter nachgeschaut. Der macht genau das gleiche für "channel". Sicher das das dirket nicht geht?
Wenn du mal nur das in ein Skript einfügst, funktioniert es dann?
setState('idvomtv.channel', 1);
-
Genau eigentlich macht der Aapter nix anderes...
-
Keine Chance, weder direkt unter Objekte, noch mit Skript
-
Moin,
habe gerade ein Update auf 1.0.8 gemacht, davor lief noch 1.0.6
Nun gehen meine ganzen Scripte nicht mehr.
Habe eigentlich meine Scripts alle angepasst bezüglich des neuen Ortes.
Bei Objekten werden alle states auch zweimal angezeigt, nehme an einmal von meiner alten Installation und einmal von der neuen?Wenn ich manuell zum Beispiel den state von Launch App ändere, dann schaltet der TV.
Mein altes Script funktioniert aber über Alexa nicht mehr.
Adapter mal komplett deinstallieren und neu drauf?
-
Hallo,
Kann mir wer helfen?
Connecting to WebOS TV: ws://192.168.178.57:3000 Waiting for pairing confirmation on WebOS TV 192.168.178.57
Es kommt keine Meldung am TV
Model:
LG 43UK6300LLB -
@sigi234 du musst irgendeine Aktion vom Adapter auslösen, danach erscheint erst das popup auf dem TV
-
@thewhobox sagte in IoBroker.lgtv - Adapter zur Steuerung von LG WebOS SmartTVs:
@sigi234 du musst irgendeine Aktion vom Adapter auslösen, danach erscheint erst das popup auf dem TV
Danke, geht wieder.
Adapter deinstalliert und neu installiert. W-Lan Verbindung neu eingerichtet und eine neue IP vergeben.
Erst dann kam eine Aufforderung zum Paring vom TV. -
Den Kanal via Vis zu schalten geht nicht, oder gibt es schon eine Lösung?
Habe mal alles durchgelesen.........Erstelle gerade eine Vis........
-
@sigi234 das funktioniert auf manchen Geräte iwie nicht.
-
Hi,
mein Abfrage Intervall auf lv.0.states.on ist bei 10 Sekunden.
Ich prüfe ob sich der Wert verändert hat.... Leider wird festgestellt das sich dieser Wert alle 10 Sekunden ändert... Ich hätte erwartet wenn der Fernseher aus ist, ändert sich der Wert auch nicht.... Ist das so gewollt?Gruß
Kai -
Moin,
ich bin noch ioBroker-Neuling.Ich habe es geschafft, mittels WOL-Script und natürlich diesem Adapter, den LG aus der Ferne anzuschalten. Für das ausschalten gibt es ja einen entsprechenden Knopf in der Instanz.
Das ganze habe ich dann via Szene an Alexa weitergereicht. Nun funktioniert das eher wie ein Taster. Wenn ich die Scene starte, wird je nach Status der Fernseher an oder ausgeschaltet- also wenn der Fernseher an ist- wird er ausgeschaltet. Wenn er ausgeschaltet ist , wird er angeschaltet. Das ist natürlich doof- wenn der TV an ist und ich bei Alexa auf "an" schalte.. geht der Fernseher aus.
Ich möchte nun irgendwie EINEN Schalter (Switch) definieren den ich an Alexa weiterreiche. Wenn der TV an ist und ich nochmal anmache... passiert nix, wenn er aus ist und ich anmache soll er natürlich "an" gehen.
Wie kann ich das Problem lösen?
-
@keihuli sagte in IoBroker.lgtv - Adapter zur Steuerung von LG WebOS SmartTVs:
Hi,
mein Abfrage Intervall auf lv.0.states.on ist bei 10 Sekunden.
Ich prüfe ob sich der Wert verändert hat.... Leider wird festgestellt das sich dieser Wert alle 10 Sekunden ändert... Ich hätte erwartet wenn der Fernseher aus ist, ändert sich der Wert auch nicht.... Ist das so gewollt?Gruß
KaiNormalerweise ist der Adapter auf 60 sek. Abfrageintervall eingestellt, außer du hast dies auf 10 sek. Geändert ist das normal.
Auch wenn der Fernseher aus ist, startet der Adapter alle X sek. (Die du eingestellt hast) eine Abfrage aller states, auch wenn er aus ist.Der ferneseher sagt glaub nicht den Adapter "Hallo ich bin jetzt an", sondern der Adapter fragt ab.
Ich bin nicht der Entwickler, aber nach meinem Verständnis funktioniert das so.
-
Ja habe ich auf 10 Sekunden aufgrund von Tests gestellt... Ich frage mich aber wieso mein Skript alle 10 Sekunden feststellt das der Wert geändert worden ist. Obwohl der Fernsehr dauerhaft an bzw. aus. Ich hätte gedacht das ein "Falls Objekt wurde geändert" nur anspringt wenn der Fernseher an oder ausgeschaltet wird....
-
@keihuli
Ok normalerweise ist das auch so.
Prüfst du auch mit Logik ob wahr oder falsch?
Wäre vielleicht eine Lösung
Fals Objekt X ist wahr bzw. Falsch mache X -
@marcuskl
Nein Logik habe ich nicht drin... Anbei der kopierte snippet. Wenn das normalerweise so ist... Aus was prüft den das "wurde geändert"? Auf den Wert true oder false kann ja nicht sein... Schaut es da gleichzeitig noch auf einen Aktualisierungsdatum?on({id: 'lgtv.0.states.on', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; on({id: 'lgtv.0.states.on', change: "gt"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('zigbee.0.group_2.state', true, false, parseInt(0, 10), false); console.log('an'); }); }); on({id: 'lgtv.0.states.on', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; on({id: 'lgtv.0.states.on', change: "lt"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('zigbee.0.group_2.state', false, false, parseInt(0, 10), false); console.log('aus'); }); });
-
@keihuli sagte in IoBroker.lgtv - Adapter zur Steuerung von LG WebOS SmartTVs:
@marcuskl
Nein Logik habe ich nicht drin... Anbei der kopierte snippet. Wenn das normalerweise so ist... Aus was prüft den das "wurde geändert"? Auf den Wert true oder false kann ja nicht sein... Schaut es da gleichzeitig noch auf einen Aktualisierungsdatum?on({id: 'lgtv.0.states.on', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; on({id: 'lgtv.0.states.on', change: "gt"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('zigbee.0.group_2.state', true, false, parseInt(0, 10), false); console.log('an'); }); }); on({id: 'lgtv.0.states.on', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; on({id: 'lgtv.0.states.on', change: "lt"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('zigbee.0.group_2.state', false, false, parseInt(0, 10), false); console.log('aus'); }); });
Entschuldige, ich meine du kannst auch prüfen "Wenn Wert x ist gleich on bzw. Off, mache x
-
Ich würde machen:
Fals Objekt "Tv is on" hat sich geändert
Fals "wert von TV is on" = on
Mache Debug Output "Tv on"