NEWS
Zigbee2Mqtt Geräte in ioBroker integrieren
-
Hallo,
nach dem Umzug meines ioBrokres auf einen Nuc versuche ich die Zigbee Geräte die über einen Raspbee Adapter von meinem alten Raspberry entgegen genommen werden zu integrieren. Soweit klappt alles. Zigbee2Mqtt überträgt jedoch einen kompletten JSON String in dem alle Werte drin sind. Weiß jemand ob man die Werte auch in einzelnen MQTT Messages übertragen lassen kann? Oder muss man alle Werte aus dem JSON String ziehen? Wie geht sowas? -
@tobi82 Die Übertragung via JSON ist die effizienteste. Normalerweise kann man das so lassen und extrahiert den benötigten Wert bei Bedarf. Man kann auch einen Alias erstellen, um einen häufig benötigten Wert zu extrahieren oder Du nimmst meinen Node-Red Flow, der zerlegt jeden JSON in einzelne Datenpunkte
-
Ich versuche es grade so:
const idSensor1 = "mqtt.0.mqtt.0.zigbee2mqtt.0x00158d0002bfe45d"; // bei Bedarf korrigieren const path = 'javascript.' + instance + '.Aquara Sensoren' + '.Sensor1.'; const idbattery = path + 'battery'; const idcontact = path + 'contact'; const iddevice_temperature = path + 'device_temperature'; const idlinkquality = path + 'linkquality'; const idvoltage = path + 'voltage'; if(!existsState(idbattery)) { // Datenpunkte erzeugen createState(idbattery, 'leer', {type: 'string'}); createState(idcontact, 'leer', {type: 'string'}); createState(iddevice_temperature, 'leer', {type: 'string'}); createState(idlinkquality, 'leer', {type: 'string'}); createState(idvoltage, 'leer', {type: 'string'}); }; on(idSensor1, function(dp) { // triggert bei Wertänderung let obj = JSON.parse(dp.state.val); setState(idbattery, obj.battery, true); setState(idcontact, obj.contact, true); setState(iddevice_temperature, obj.device_temperature, true); setState(idlinkquality, obj.linkquality, true); setState(idvoltage, obj.voltage, true); });
Sieht jemand auf anhieb den Fehler? Die Datenpunkte werden erstellt, jedoch zieht er die Werte nicht.
-
@tobi82 bevor du weiter was baust was halbwegs funktioniert
wir haben da was neues