NEWS
[Gelöst] Hilfe bei MQTT Daten String / Parsen
-
Hallo,
Leider habe ich hier keine Einzelnen Datenpunkte für die Werte Motion & Lux im Mqtt Adapter.
Ich benötige aus dem unteren Datenstring 3 Datenpunkte.
Diese müsste allerdings im Script zuvor auch noch angelegt werden.
(Evtl. Im Ordner javscript.0 /motioneye)
Ich kenne mich leider nur etwas mit Blockly aus, kann mir da bitte jemand Helfen?1.) motion: true oder false
2.) lux: xxx (Wert)
3.) bat: xx (Wert){"motion":false,"timestamp":1617591740,"active":true,"vibration":false,"lux":10,"bat":98}
{"motion":true,"timestamp":1617623154,"active":true,"vibration":false,"lux":243,"bat":98}
Ordner für die 3 Neuen Datenpunkte:
-
@yoda sagte in Hilfe bei MQTT Daten String / Parsen:
{"motion":true,"timestamp":1617623154,"active":true,"vibration":false,"lux":243,"bat":98}
Entsprechend für die anderen Werte anpassen.
-
@mcu Danke für deine schnelle Hilfe,
ist es möglich da du mir den Bildausschnitt per code hier postest?
- So wie ich das verstehe müsste ich dann für jeden Wert einmal den setzte Befehl machen.
Und der Datenpunkt heißt in deinem Beispiel "test" und es steht dort der wert von Lux drin?
- So wie ich das verstehe müsste ich dann für jeden Wert einmal den setzte Befehl machen.
-
-
@yoda sagte: für jeden Wert einmal den setzte Befehl machen.
Jeden Wert in einen virtuellen Datenpunkt schreiben.
-
@MCU & @paul53 ich Danke euch beiden für die ansetzte.
Ich habe bei beiden Vorschlägen aber ein Problem bei der Objekt Abfrage.
{"motion":false,"timestamp":1617648481,"active":true,"vibration":false,"lux":11,"bat":98}
Da sich die Zeiten und auch die Lux ständig ändern, habe ich Massiven datentraffic.
Musste grade den Stecker vom Raspi ziehen um wieder in die Einstellung zu kommen.Was ich möchte wäre eigentlich nur einen Daten punkte
- Motion Status: Mit dem Aktuellen Wert True oder False.
Diesen kann ich dann später weiter verwenden um Beispielweise eine Lampe zu schalten.
Ist Objekt Shelly-Bewegung1 = True dann .....
Zur Ergänzung dann noch die Abhängigkeit der Wert "Lux" ( zb. ist der Wert kleiner als .... dann ...)
Bat - Soll eine reiner Info wert in Vis Werden.<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="PuvRy#0hgHV,?G;E_laZ" x="113" y="-137"> <field name="COMMENT">status</field> <next> <block type="on_ext" id="Yo#F?^4-0=GZ6^)MpcRc"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="p;PD%8nm~Exy_*S6~rQ9"> <field name="oid">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Cf%35qRbv`!_:sS)r;M$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="hSLi_es)=h1K,M|66xZ/"> <value name="PATH"> <shadow type="text" id="a6XOXOwYi=1{zJv#,Xw?"> <field name="TEXT">motion</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="yqE%o(Y}4aWCA2vBk4,q"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="LBg+;y=*=8zJQDH|uj0e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="Ndk,bvgHAQOBunf!?j^1"> <value name="PATH"> <shadow type="text" id="+n.O)g9Vx@#/DKS6/,vK"> <field name="TEXT">lux</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="mPbXlKh-j-5YSKe@KTho"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="wM+r2=S3waZ?M.:f.QFE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="i_P:79X~f[7MF{vG:%N4"> <value name="PATH"> <shadow type="text" id="N1LMn=AbwunK_2wV|rCY"> <field name="TEXT">bat</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="pl[!U+-KU;@4*^1hOy8^"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="k:VP:NIr1fmGrfBdDU2v"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="{VC+[{X]R;Tc@_M.^Yp6"> <field name="oid">default</field> </shadow> <block type="get_attr" id="%6,Ue~IZ%O+{:2D;.b4*"> <value name="PATH"> <shadow type="text" id="OXru=kBzv~75E~!;R$c("> <field name="TEXT">motion</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="u3Du/[^Zt`d#*,SN^pF="> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="control" id=")U@k`l,:5~;+warR[I;2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Manni-Objekte.0.Sensor.Shelly-Bewegung1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?nSbKB=fA$s]k*;I%hC`"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="control" id="FLruE!B}m7/#fe:][#vr"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Manni-Objekte.0.Sensor.Shelly-Bewegung1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]|(d#~8yi@;R_gL[#+;%"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </xml>
- Motion Status: Mit dem Aktuellen Wert True oder False.
-
@yoda
Du musst 3 eigene Datenpunkte erstellen (unter "0_userdata.0" oder "javascript.0"), in die der jeweilige Wert geschrieben wird: Einmal Typ "Logikwert" für Motion und zweimal Typ "Zahl" für Lux und Bat. -
@paul53 Danke für deine Zeit!
Die 3 Punkte habe ich entsprechend erstellt 1 x Logik - 2 x Zahl.
Nur wen ich das Skript starte verstehe ich noch nicht ganz wie diese mit dem Status und werten ergänzt werden sollen?
Denke ehr ich würde den Raspi so wieder überforderen...<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="PuvRy#0hgHV,?G;E_laZ" x="113" y="-137"> <field name="COMMENT">status</field> <next> <block type="on_ext" id="Yo#F?^4-0=GZ6^)MpcRc"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="p;PD%8nm~Exy_*S6~rQ9"> <field name="oid">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Cf%35qRbv`!_:sS)r;M$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="hSLi_es)=h1K,M|66xZ/"> <value name="PATH"> <shadow type="text" id="a6XOXOwYi=1{zJv#,Xw?"> <field name="TEXT">motion</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="yqE%o(Y}4aWCA2vBk4,q"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="LBg+;y=*=8zJQDH|uj0e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="Ndk,bvgHAQOBunf!?j^1"> <value name="PATH"> <shadow type="text" id="+n.O)g9Vx@#/DKS6/,vK"> <field name="TEXT">lux</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="mPbXlKh-j-5YSKe@KTho"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="wM+r2=S3waZ?M.:f.QFE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="i_P:79X~f[7MF{vG:%N4"> <value name="PATH"> <shadow type="text" id="N1LMn=AbwunK_2wV|rCY"> <field name="TEXT">bat</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="pl[!U+-KU;@4*^1hOy8^"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> <block type="field_oid" id="-.{yqpq4:P:_gzl|,J!C" x="138" y="188"> <field name="oid">javascript.0.Shelly.Motion</field> </block> <block type="field_oid" id="3Y[|aA2p(e:Ok%g`S@sL" x="138" y="238"> <field name="oid">javascript.0.Shelly.Lux</field> </block> <block type="field_oid" id="9O3.RRI6RZ(jbCW5(KqW" x="137" y="287"> <field name="oid">javascript.0.Shelly.Bat</field> </block> </xml>
-
- aktualisiere javascript.0.Shelly.Motion mit Attribut motion
- aktualisiere javascript.0.Shelly.Lux mit Attribut lux
- aktualisiere javascript.0.Shelly.Bat mit Attribut bat
-
@paul53 super klasse es läuft - ich Danke dir für die Hilfe!!!
Der Shelly Motion kann so nun über mqtt weiter verwendet verwendet werden.
So Richtig lief dieser leider nicht im Shelly Adapter,
Ich hatte dieses dort zuletzt als Gerät entfernt, und bekam ihn dort seit dem auch nicht wieder rein.
Über dieses Umweg klappt es nun aber auch.
Ich hoffe das Ding hat nur kein weg - musste Ihn nun grade erst wieder überreden das er Online geht - mal abwarten.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="PuvRy#0hgHV,?G;E_laZ" x="113" y="-137"> <field name="COMMENT">status</field> <next> <block type="on_ext" id="Yo#F?^4-0=GZ6^)MpcRc"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="p;PD%8nm~Exy_*S6~rQ9"> <field name="oid">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Cf%35qRbv`!_:sS)r;M$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Motion</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="hSLi_es)=h1K,M|66xZ/"> <value name="PATH"> <shadow type="text" id="a6XOXOwYi=1{zJv#,Xw?"> <field name="TEXT">motion</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="yqE%o(Y}4aWCA2vBk4,q"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="LBg+;y=*=8zJQDH|uj0e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Lux</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="Ndk,bvgHAQOBunf!?j^1"> <value name="PATH"> <shadow type="text" id="+n.O)g9Vx@#/DKS6/,vK"> <field name="TEXT">lux</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="mPbXlKh-j-5YSKe@KTho"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="wM+r2=S3waZ?M.:f.QFE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Bat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="i_P:79X~f[7MF{vG:%N4"> <value name="PATH"> <shadow type="text" id="N1LMn=AbwunK_2wV|rCY"> <field name="TEXT">bat</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="pl[!U+-KU;@4*^1hOy8^"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>