NEWS
MQTT und Milight
-
Guten Morgen,
ich verwende den Milight Hub (Arduino) (https://github.com/sidoh/esp8266_milight_hub) und binde ihn über den MQTT Adapter in ioBroker an.
Der Hub hat den Vorteil, dass ich nicht pro 4 Kanäle einen Originalgateway verwenden muss. 1 Milight Hub (Arduino) kann quasi unendlich viele Module steuern.
Der Hub nimmt auch die Signale von der Originalfernbedienung entgegen. Eine Synchronisation mit ioBroker ist dadurch möglich. Womit wir auch schon bei meinem Problem wären.
Als Beispiel soll eine RGBW Controller von Milight (https://www.amazon.de/Wireless-Steuermo … F1G6PE5GED) dienen. Ich verwende jetzt nur mal die Aus- und Einschaltfunktion.
Im Vis Adapter habe ich einen Schalter (fancyswitch – Schieber dunkel Aus/Ein) und jeweils ein Symbol welches „Licht an“ und „Licht aus“ grafisch darstellt. Gesteuert über die Sichtbarkeit (Objekt ID und Wert).
Grafiken für An und Aus
Objekt ID: mqtt.0.milight.commands.0xE233.rgbw.4
Bedingung: ==
Wert: {"state":"ON"} bzw. {"state":"OFF"}
Fancyswitch
Objekt ID: mqtt.0.milight.commands.0xE233.rgbw.4
Falsch-Wert: {"state":"OFF"}
Wahr-Wert: {"state":"ON"}
Drücke ich nun den Schalter in der Vis, schaltet sich der LED Stripe „Ein“ bzw. „Aus“. Auch die Grafiken für den Status ändern sich wie gewünscht mit.
Drücke ich die Originalfernbedienung schaltet der LED Stripe wie gewollt und auch die Grafiken in der Vis ändern sich auch mit. Nur der Schalter wird nicht mit synchronisiert. Und genau das ist mein Problem. Gibt es eine Möglichkeit den Schalter auch Synchron zu bekommen?
SG
Mario
-
Milight ist leider nicht bidirektional, d.h. es kommen keine Rückmeldungen, weshalb auch keine Meldung kommt, wenn du per FB schaltest, das ist beim Gateway das Gleiche.
Ob es aber vielleicht in deiner Konstellation möglich wäre, MQTT mitzuteilen, dass die FB einen Befehl über dein Gerät gesendet hat, das weiß ich nicht!
Edit: Man, man wieder nicht richtig zu Ende gelesen. :? Hast du noch einen anderen Datenpunkt außer rgb und hast du auch mal einen anderen Schalter ausprobiert, ich hatte den Fancy-Switch auch schon mal verwendet, hatte da irgendwie das Problem, dass dieser von allein zurück geschaltet hat,obwohl das Objekt noch an war!? Is aber auch schon ewig her.
Aber diese Möglichkeit, doch eine Rückmeldung zu bekommen interesssiert mich!
Enrico
-
Edit: Man, man wieder nicht richtig zu Ende gelesen. :? Hast du noch einen anderen Datenpunkt außer rgb und hast du auch mal einen anderen Schalter ausprobiert, ich hatte den Fancy-Switch auch schon mal verwendet, hatte da irgendwie das Problem, dass dieser von allein zurück geschaltet hat,obwohl das Objekt noch an war!? Is aber auch schon ewig her. `
kann schon mal passieren… Datenpunkt gibt es pro Kanal nur einen. Die verschiedenen Möglichkeiten, Ein/Aus - RGB(W) - Brightness, HUE usw., werden dann anhand des Befehles im Feld "Wert" ausgeführt.
Einen anderen Schalter hab ich auch schon versucht - hqwidgets - On/Off. Aber leider das selbe Verhalten. Der Status des Schalters wird beim Betätigen der Originalfernbedienung nicht mit synchronisiert. Nur die Symbole für "EIN/AUS" laufen synchron ...
SG
Mario
-
@bigd-73
Hi,
kannst du mir zeigen was ich da eintragen soll ?
möchte es auch über MQTT versuchen .
THX -
ok soweit bin ich jetzt auch, State ändert sich nun auch egal was man macht mit der Fernbedienung was über milight-smart-light.0 Adapter nicht ging da nicht bidirektional ist, jetzt wäre ein Blockly Skript gut das Objekt ID und Wert ausliest zum beispiel {"state":"ON"} dann hier milight-smart-light.0.Wohnzimmer.rgbw-1.onoff auf True ändert oder so, dann kann man in VIS weiter machen damit Ein“ bzw. „Aus“. Auch die Grafiken für den Status ändern, oder kann uns einer jetzt irgenwie helfen, da man jetzt den Wert True/False ändern kann .
so etwa nur das es falsch ist
BlocklyJavascriptTypeScript Skript läuft nicht 13:43:02.256 info javascript.0 Stop script script.js.common.milight-test Ausgewählte Blöcke exportieren <xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="%jCw~L#4N0zp0S+ckKh!" x="-362" y="-212"> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="}q*Y+Q=G?dlNXxBC,es9"> <value name="IF0"> <block type="logic_compare" id="c_5km@iv_$eUTk~_^PE="> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="A^qFGNIsgBr`oOq!8h-8"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="%YKl0:.qf:@o1ZCK$Ob#"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.0</field> </block> </value> <value name="FIND"> <shadow type="text" id="?).tM_iUlCX{0Sk]A`0+"> <field name="TEXT">{"state":"ON"}</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S4bM^)qJZ^OGY-nA%zUC"> <mutation delay_input="true"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.onoff</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="RZOsT6ym3.4,3{SLUA(G"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml> <xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="%jCw~L#4N0zp0S+ckKh!" x="-362" y="-212"> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="}q*Y+Q=G?dlNXxBC,es9"> <value name="IF0"> <block type="logic_compare" id="c_5km@iv_$eUTk~_^PE="> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="A^qFGNIsgBr`oOq!8h-8"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="%YKl0:.qf:@o1ZCK$Ob#"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.0</field> </block> </value> <value name="FIND"> <shadow type="text" id="?).tM_iUlCX{0Sk]A`0+"> <field name="TEXT">{"state":"ON"}</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S4bM^)qJZ^OGY-nA%zUC"> <mutation delay_input="true"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.onoff</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="RZOsT6ym3.4,3{SLUA(G"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
Soweit Funktioniert der Skript, jetzt fehlt noch ein Widgets .
BlocklyJavascriptTypeScript Protokoll Ausgewählte Blöcke exportieren <xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="%jCw~L#4N0zp0S+ckKh!" x="-362" y="-212"> <field name="OID">mqtt.0.milight.states.0x8B4C.rgbw.1</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="#~LwQDZv;s`9}d1b31!D"> <value name="IF0"> <block type="logic_compare" id="ml[0rp4*`32z;f(Xn(yp"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="+hluwdt?P?HdmjYqn7o+"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="T{CtVxufq?]ZOMyH!j^/"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> </block> </value> <value name="FIND"> <shadow type="text" id="I0@ht-D6/ho-^j!PcXi`"> <field name="TEXT">{"state":"ON"</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="ZAJ,lw=wCeRXF-7pT,Rb"> <mutation delay_input="false"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.ON-vis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="f{3dvxe1/3UH*Oe(.0nr"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="=Pe$=o0Z){n[a;8Uc!1C"> <value name="IF0"> <block type="logic_compare" id="4DMLBm_zpY66Z7hbBgO!"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="TFQVxOrzqAc%kK0=(jfy"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="6F21.nAl#2wziFbKLg(t"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> </block> </value> <value name="FIND"> <shadow type="text" id="XSv,%Om4w_hSKgH`ZH%$"> <field name="TEXT">{"state":"OFF"</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="NE:@ofbcXgHP)8TDyJwI"> <mutation delay_input="false"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.ON-vis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{21,w2p;-)=w$(a4m-5v"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml> <xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="%jCw~L#4N0zp0S+ckKh!" x="-362" y="-212"> <field name="OID">mqtt.0.milight.states.0x8B4C.rgbw.1</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="#~LwQDZv;s`9}d1b31!D"> <value name="IF0"> <block type="logic_compare" id="ml[0rp4*`32z;f(Xn(yp"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="+hluwdt?P?HdmjYqn7o+"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="T{CtVxufq?]ZOMyH!j^/"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> </block> </value> <value name="FIND"> <shadow type="text" id="I0@ht-D6/ho-^j!PcXi`"> <field name="TEXT">{"state":"ON"</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="ZAJ,lw=wCeRXF-7pT,Rb"> <mutation delay_input="false"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.ON-vis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="f{3dvxe1/3UH*Oe(.0nr"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="=Pe$=o0Z){n[a;8Uc!1C"> <value name="IF0"> <block type="logic_compare" id="4DMLBm_zpY66Z7hbBgO!"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="TFQVxOrzqAc%kK0=(jfy"> <field name="END">FIRST</field> <value name="VALUE"> <shadow type="text" id="Wuctg26#/+xe=J4=,mTC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="6F21.nAl#2wziFbKLg(t"> <field name="ATTR">val</field> <field name="OID">mqtt.0.milight.updates.0x8B4C.rgbw.1</field> </block> </value> <value name="FIND"> <shadow type="text" id="XSv,%Om4w_hSKgH`ZH%$"> <field name="TEXT">{"state":"OFF"</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="NE:@ofbcXgHP)8TDyJwI"> <mutation delay_input="false"></mutation> <field name="OID">milight-smart-light.0.Wohnzimmer.rgbw-1.ON-vis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{21,w2p;-)=w$(a4m-5v"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@bigd-73 hallo,
keine ahnung ob du hier noch aktiv bist,
hast du zeit und kannst du mir bei meinem problem helfen?
komme nicht weiter https://forum.iobroker.net/topic/26275/mqtt-milight-hub-newbieDanke