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? -
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
-
@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.
-
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
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