NEWS
mit Blockly json erstellen
-
Hallo,
ich würde gern einen payload für zigbee2mqtt als Blockly im json Format erstellen, da ich in javascript nicht fit bin!
der string würde so aussehen:{"warning": {"strobe": false,"duration": 5}}
und als json folgendermaßen:
{ "warning": { "strobe": false, "duration": 5 } }
ich habe bereits ein javascript geschickt bekommen, mit dem dieser Befehl funzt:
let zName = 'Rauchmelder Flur oben' // hier der Name des Geräts let payload = '{"warning":{"strobe":false, "duration":10}}' // hier der payload mit '' drum herum sendTo('mqtt.0', 'sendMessage2Client', {topic: 'zigbee2mqtt/'+zName+'/set', message: payload});
könnte mir jemand helfen daraus ein Blockly zu bauen?
Vorab besten Dank! -
-
@tt-tom sagte in mit Blockly json erstellen:
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="sendto_custom" id=":!bXD--l^tUatFozS-!:" x="-687" y="238"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation> <field name="INSTANCE">mqtt.0</field> <field name="COMMAND">sendMessage2Client</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text" id="}XlN[ocgy0!,?euv)Ik;"> <field name="TEXT">zigbee2mqtt/Rauchmelder Flur oben/set</field> </shadow> </value> <value name="ARG1"> <shadow type="text" id="pNN)1$R0xTXP9TBG@`9A"> <field name="TEXT">{"warning":{"strobe":false, "duration":10}}</field> </shadow> </value> </block> </xml>
Vielen Dank. Leider kommt bei dem Objekt undefined. Ich würde auch gerne lieber das payload von zigbee2mqtt nutzen. Wäre dies auch möglich, weil dann brauch ich keine 2 Adapter mehr.
{ "type": "state", "common": { "id": "send_payload", "name": "Send a raw json payload", "role": "json", "write": true, "read": false, "type": "string", "def": "{}" }, "native": {}, "from": "system.adapter.zigbee2mqtt.0", "user": "system.user.admin", "ts": 1690010038517, "_id": "zigbee2mqtt.0.0x0015bc003100c791.send_payload", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Danke dir.
-
@tschaeens
… schreib einfach den Text in den Darenpunkt -
… schreib einfach den Text in den Datenpunkt
das ist auch eine Möglichkeit, vielleicht auch die Einfachste
zigbee2mqtt.0.0x0015bc003100c791.send_payload"
das ist ja ein ganz anderes Topic, bzw. auch Adapter.
Wenn du per Blockly in diesen Datenpunkt immer wieder schreiben musst, kannst du das auch mit
-
@tt-tom
aber das Problem ist, dass ich mit einem json da reinschreiben muss. Und wenn ich einfach reinschreibe, dann ist es nur ein string und geht nicht durch leider.(o0shojo0o) added state send_payload to send a raw json payload
-
@tschaeens
Der datenpunkt ist ein String wenn du da ein JSON rein schreibst gibts zumindest eine Warnung.Kopiere {} incl. Klammern da rein
BTW da steht was der Datenpunkt tut nicht welches Format er akzeptiert.
-
@ticaki
Danke dir! Ich stand so auf dem Schlauch!
Ich musste einfach den Wert reinschreiben....{ "warning": { "strobe": false, "duration": 5 } }
viel zu einfach. Ich habe viel zu kompliziert gedacht!!