NEWS
Script um JSON in states zu schreiben
-
Hallo zusammen,
ich habe mir einen zigbee2mqtt Stick angeschafft.
Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:{"contact":false,"linkquality":70,"battery":66,"voltage":2945}
Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:
// i = iobObject var obj = JSON.parse(getState(i).val); for (var prop in obj) { url = i + "." + prop; //console.log(url + " = " + obj[prop]); try { createState(url, obj[prop], true, { read: true, write: false, name: prop, role: "value", type: "mixed", def: false }); //console.log(getState(url)) } catch (e) { console.log('exception in getState [' + e + ']'); } }
Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...
javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
wie kann ich die Variable hier erstellen?
mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
Vielen Dank
-
Hallo zusammen,
ich habe mir einen zigbee2mqtt Stick angeschafft.
Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:{"contact":false,"linkquality":70,"battery":66,"voltage":2945}
Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:
// i = iobObject var obj = JSON.parse(getState(i).val); for (var prop in obj) { url = i + "." + prop; //console.log(url + " = " + obj[prop]); try { createState(url, obj[prop], true, { read: true, write: false, name: prop, role: "value", type: "mixed", def: false }); //console.log(getState(url)) } catch (e) { console.log('exception in getState [' + e + ']'); } }
Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...
javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
wie kann ich die Variable hier erstellen?
mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
Vielen Dank
@madjack84 sagte in Script um JSON in states zu schreiben:
ich habe mir einen zigbee2mqtt Stick angeschafft.
es gibt keinen zigbee2mqtt Stick .. zigbee2mqtt ist ein Projekt der Zigbee Geräte bedienen kann ...
ich Tippe auf einen cc2531 Stickaber warum nimmst du nicht den Zigbee Adapter ??
-
@madjack84 sagte in Script um JSON in states zu schreiben:
ich habe mir einen zigbee2mqtt Stick angeschafft.
es gibt keinen zigbee2mqtt Stick .. zigbee2mqtt ist ein Projekt der Zigbee Geräte bedienen kann ...
ich Tippe auf einen cc2531 Stickaber warum nimmst du nicht den Zigbee Adapter ??
@arteck korrekt.
Einfache Antwort: ich kannte den Adapter nicht 😢
Dachte ich kann von mqtt alles einfach abgreifen, da ich mqtt als dreh und Angelpunkt nutze. (shellies, tasmota, App)
Kommt auch daher weil ich RAM sparen will und so wenige Adapter wie möglich nutze.Das zigbee2mqtt Projekt nutze ich via docker... Auch etwas Spielerei dabei ;)
Gibt es im Javascript Umfeld eine Möglichkeit states im mqtt Client Adapter zu beschreiben?
-
Hallo zusammen,
ich habe mir einen zigbee2mqtt Stick angeschafft.
Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:{"contact":false,"linkquality":70,"battery":66,"voltage":2945}
Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:
// i = iobObject var obj = JSON.parse(getState(i).val); for (var prop in obj) { url = i + "." + prop; //console.log(url + " = " + obj[prop]); try { createState(url, obj[prop], true, { read: true, write: false, name: prop, role: "value", type: "mixed", def: false }); //console.log(getState(url)) } catch (e) { console.log('exception in getState [' + e + ']'); } }
Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...
javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
wie kann ich die Variable hier erstellen?
mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5
Vielen Dank
@madjack84 sagte:
wie kann ich die Variable hier erstellen?
Man sollte keine eigenen Datenpunkte im Instanzen-Namensraum erstellen, da die Instanzen ihre Datenpunkte verwalten, also auch löschen. Außerhalb von javascript.N kann man Datenpunkte nur manuell im Reiter "Objekte" erstellen.
-
@arteck korrekt.
Einfache Antwort: ich kannte den Adapter nicht 😢
Dachte ich kann von mqtt alles einfach abgreifen, da ich mqtt als dreh und Angelpunkt nutze. (shellies, tasmota, App)
Kommt auch daher weil ich RAM sparen will und so wenige Adapter wie möglich nutze.Das zigbee2mqtt Projekt nutze ich via docker... Auch etwas Spielerei dabei ;)
Gibt es im Javascript Umfeld eine Möglichkeit states im mqtt Client Adapter zu beschreiben?
@madjack84 Hab ich auch mal nach gesucht. Leider ist das bewusst blockiert.
Du kannst einen Adapter in Javascript erstellen. Der kann sowas ;-)Für Deine Zwecke sollte aber doch auch so ok sein, oder? Auslesen kannst du den Wert ja überall. Geht Dir nur um Kosmetik oder?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden