NEWS
Wenn Kodi läuft, Licht dimmen.
-
Hallo,
Ich möchte gerne das wenn Kodi etwas abspielt (state: play) meine Hue gedimmt wird, wenn sie bereits vorher eingeschaltet war.
Wenn nichts abgespielt oder pausiert ist dann würde ich gerne das Licht wieder auf die vorherige Helligkeit zurückstellen wollen.
Das Alles natürlich immer unter Berücksichtigung dessen, ob Licht vorher überhaupt eingeschalten war (wenn nicht dann soll es auch nicht eingeschaltet werden).
Gerne würde ich dies in Javascript umsetzen, allerdings funktioniert das leider nicht so richtig das der immer der jeweils urpsrüngliche Zustand hergestellt wird (Dimmstufe, An oder Aus).
Hatte bisher folgendes probiert:
on("kodi.0.state", function (obj) { log("State geändert: " + obj.state.val); switch (obj.state.val) { case "play": log("Video läuft, schalte Licht aus..."); setState("hue.0.Philips_hue.Iris_Schlafzimmer.level",10); break; case "pause": case "stop": log("Video läuft nicht, schalte Licht an..."); setState("hue.0.Philips_hue.Iris_Schlafzimmer.level",100); break; } });
Würde mich freuen wenn mir jemand dabei helfen könnte.
Liebe Grüße,
Marph
-
Hi.
Ich habe das, in Ermangelung meiner JS Erfahrung mal eben mit Blockly und meinen Tradfris ausprobiert.
So funktioniert es bei mir.
Wenn die Lampen aus sind, passiert nichts. Sind sie an, dimmen sie bei Play und blenden bei Pause/Stop auf.
Musst Du natürlich noch an dein Setup anpassen.
Hier noch der Export und als JS.
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="-~j:dVv}N#%+Y.Ku
LO" x="237" y="88"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id=")!?D=LMi8;+Xqs!%RWuE"><field name="oid">kodi.1.state</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="i4,DrPP;Wkna0,FADMZ3"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="xD;v;}}+4wCq]pwo!yDC"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Y]X^/KW724nh,T`,z4[8"><field name="ATTR">val</field> <field name="OID">kodi.1.state</field></block></value> <value name="B"><block type="text" id="?_URd2_-^;Kg7xe7:.PN"><field name="TEXT">play</field></block></value></block></value> <statement name="DO0"><block type="controls_if" id="H].t1`%;g_O~R)F)Sm@4"><value name="IF0"><block type="logic_compare" id="d8.eT1|sk(k3(9*pVlrv"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="f1=4HDB#-eRwF^dH_3q4"><field name="ATTR">val</field> <field name="OID">tradfri.0.L-65540.lightbulb.state</field></block></value> <value name="B"><block type="logic_boolean" id="jEEVmbt|.ymBWO/::Qi}"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="eY?Z[@@GzL?tc510.5/E"><mutation delay_input="false"></mutation> <field name="OID">tradfri.0.VG-00002.brightness</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id=";*ud|OpU(vb9jD=JlDB,"><field name="NUM">10</field></block></value></block></statement></block></statement> <value name="IF1"><block type="logic_compare" id="*!Mq*^x1%xO~5*Al;:u7"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="0|qK+-~1TOfb{RHi]6aM"><field name="ATTR">val</field> <field name="OID">kodi.1.state</field></block></value> <value name="B"><block type="text" id="rj:tS!a3VuL-e*c%zuL."><field name="TEXT">play</field></block></value></block></value> <statement name="DO1"><block type="controls_if" id="TSsYRF+*E{T?7:^.DPZv"><value name="IF0"><block type="logic_compare" id="Ch=L-Xz;`H`!{2U;H96B"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="XN3Y8:)w/oif7)8`(,bT"><field name="ATTR">val</field> <field name="OID">tradfri.0.L-65540.lightbulb.state</field></block></value> <value name="B"><block type="logic_boolean" id="^h-~FCVp;m?*~%O%qL[e"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="XI[%]Z*R1w9?R=F:x*BK"><mutation delay_input="false"></mutation> <field name="OID">tradfri.0.VG-00002.brightness</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="hlgV/vtn,iVOOpRSK/m{"><field name="NUM">99</field></block></value></block></statement></block></statement></block></statement></block></xml>
on({id: 'kodi.1.state', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("kodi.1.state").val == 'play') {
if (getState("tradfri.0.L-65540.lightbulb.state").val == true) {
setState("tradfri.0.VG-00002.brightness"/Brightness/, 10);
}
} else if (getState("kodi.1.state").val != 'play') {
if (getState("tradfri.0.L-65540.lightbulb.state").val == true) {
setState("tradfri.0.VG-00002.brightness"/Brightness/, 99);
}
}
});[3805___kodi_lampentest.jpg](/assets/uploads/files/3805___kodi_lampentest.jpg)
-
vielen Dank für deine Hilfe Frank, wird gleich ausprobiert
EDIT #1:
Das Dimmen bei Play,Pause Stop klappt erstmal super aber wenn die Lampe aus ist und ich in Kodi etwas abspiele wird sie
leider trotzdem eingeschalten obwohl vorher aus. Gleiches passiert auch wenn ich die Lampe während des Abspielens manuell abschalte und der Film z.B. endet.
Konnte in deinem Javascript ja sehen, dass du Variablen für den "alten" Staus definiert hast. Werden die absichtlich nirgends benutzt ?
EDIT #2:
OK, ich glaube ich habe den Fehler gefunden, der Poll-Intervall war für die Hue zu hoch so das der Status noch nicht aktuell war und daher die Lampen als "true" gewertet wurden und somit wieder angingen.
Gruß,
Marph
-
Wie habt ihr die Kommunikation zwischen Kodi und dem ioBroker geregelt ?
Ich hab bei meinem Kodi das Homecinema Plugin installiert, dass dann in meiner CCU2 eine Variable ändert.
Da sich der ioBroker den Werter der Variable aber nicht schnell genug abholt, muss ich die Lichtsteuerung auf meiner CCU2 lassen
-
Da sich der ioBroker den Werter der Variable aber nicht schnell genug abholt, muss ich die Lichtsteuerung auf meiner CCU2 lassen `
Für diese Fälle gibt es die virtuelle Taste 50.Wenn sysvar geändert
Dann vTaste 50 press short
Dann kommt die onfo sofort bei ioBroker an.
Gruß
Rainer
-
Da sich der ioBroker den Werter der Variable aber nicht schnell genug abholt, muss ich die Lichtsteuerung auf meiner CCU2 lassen `
Für diese Fälle gibt es die virtuelle Taste 50.Wenn sysvar geändert
Dann vTaste 50 press short
Dann kommt die onfo sofort bei ioBroker an.
Gruß
Rainer `
Ja so etwas in der Arte hatte ich auch schon einmal gelesen.
Aber ganz ohne irgendetwas in der CCU zu machen geht es nicht richtig?
Sprich, dass Kodi direkt mit dem ioBroker spricht?
-
Sprich, dass Kodi direkt mit dem ioBroker spricht? `
Es gibt doch einen Kodi-Adapter.ich habe es noch nicht geschafft Kodi zu installieren, daher weiß ich nicht welche Datenpunkte dieser mit sich bringt, auf die ggf. reagiert werden kann.
Gruß
Rainer
-
Sprich, dass Kodi direkt mit dem ioBroker spricht? `
Es gibt doch einen Kodi-Adapter.ich habe es noch nicht geschafft Kodi zu installieren, daher weiß ich nicht welche Datenpunkte dieser mit sich bringt, auf die ggf. reagiert werden kann.
Gruß
Rainer `
bingo ich nutze den in 2 instanzen.. die eine läuft pramnent die 2-te nur wenn Kinolicht an ist..
es gibt einen "ich bin da" kodi.1.info.connection Datenpunkt..
funktioniert perfekt
-
Sprich, dass Kodi direkt mit dem ioBroker spricht? `
Es gibt doch einen Kodi-Adapter.ich habe es noch nicht geschafft Kodi zu installieren, daher weiß ich nicht welche Datenpunkte dieser mit sich bringt, auf die ggf. reagiert werden kann.
Gruß
Rainer `
bingo ich nutze den in 2 instanzen.. die eine läuft pramnent die 2-te nur wenn Kinolicht an ist..
es gibt einen "ich bin da" kodi.1.info.connection Datenpunkt..
funktioniert perfekt `
Ich habe mir den Adapter auch gerade installiert.
Leider kann er sich nicht connecten:
Kodi (v. 16.1) läuft auf Windows 7.
Muss ich noch irgendetwas dazu installieren?
-
du musst in Kodi natürlich was machen ..
https://www.kodinerds.net/index.php/Thread/22892-Android-XBMC-Remote-oder-Yatse-f%C3%BCr-XBMC-unter-Windows-einrichten/?postID=84767#post84767 ist das gleiche wie für iobroker
-
Jo hab den fehlenden Haken gefunden.
Jetzt ist der Adapter connected.
Dann werde ich heute Abend mal das Licht testen
-
Dann teste mal, das funktioniert einfach super. :mrgreen:
-
so einfach kann iobroker sein :lol:
-
vielen Dank für deine Hilfe Frank, wird gleich ausprobiert
EDIT #1:
Das Dimmen bei Play,Pause Stop klappt erstmal super aber wenn die Lampe aus ist und ich in Kodi etwas abspiele wird sie
leider trotzdem eingeschalten obwohl vorher aus. Gleiches passiert auch wenn ich die Lampe während des Abspielens manuell abschalte und der Film z.B. endet.
Konnte in deinem Javascript ja sehen, dass du Variablen für den "alten" Staus definiert hast. Werden die absichtlich nirgends benutzt ?
EDIT #2:
OK, ich glaube ich habe den Fehler gefunden, der Poll-Intervall war für die Hue zu hoch so das der Status noch nicht aktuell war und daher die Lampen als "true" gewertet wurden und somit wieder angingen.
Gruß,
Marph `
Ich habe das gleiche Problem, dass die Lampe wieder eingeschalten wird, obwohl sie vorher aus war. Sprich also, wenn ich in Kodi etwas starte und mein Hue Lampen aus sind, werden diese durch das Script wieder eingeschaltet und gedimmt. Das wäre Tagsüber eigentlich völlig sinnlos. Aber ansonsten läuft das ganze super! Könntest du mir vielleicht bitte genauer erklären, wie du das gelöst hast? Was z.b. meinst du mit Poll-Intervall?
Gruß
Edit: Es läuft bei mir nun einwandfrei! Einfach super!