Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Moderator: Co-Administratoren
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Hallo,
ich besitze ein paar Aqara Fensterkontakte, welche ich in NodeRed zum Laufen gebracht habe. Jedoch beinhaltet der Payload nur contact (true oder false) und linkquality (von 0 bis 100). Ist es möglich mit den LOWBAT-Status aus den Kontakten auszulesen um damit eine Servicemeldung zum Laufen zu bringen?
Ich habe hier im Forum schon 2 Themen gefunden die das behandeln, jedoch wird darauf nicht mehr geantwortet und eine richtige Antwort blieb aus.
ich besitze ein paar Aqara Fensterkontakte, welche ich in NodeRed zum Laufen gebracht habe. Jedoch beinhaltet der Payload nur contact (true oder false) und linkquality (von 0 bis 100). Ist es möglich mit den LOWBAT-Status aus den Kontakten auszulesen um damit eine Servicemeldung zum Laufen zu bringen?
Ich habe hier im Forum schon 2 Themen gefunden die das behandeln, jedoch wird darauf nicht mehr geantwortet und eine richtige Antwort blieb aus.
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Keiner der auch Aqara Fensterkontakte nutzt?
-
- Beiträge: 382
- Registriert: 30.03.2017, 13:44
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 15 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Haufenweise.
Ich mache das so:
Funktion im Sammler:
Ich mache das so:
Funktion im Sammler:
Code: Alles auswählen
myObj = msg.payload;
var msg1 = { payload: myObj.topic };
var msg2 = { payload: myObj.battery };
if (msg.payload.battery < 20 && msg.payload.battery !== undefined ) {
msg.payload = { payload: msg.topic.substr(7,msg1.length) + ": " + String(myObj.battery) + "%"};
return [msg2,msg.payload];
}
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Danke dir Samhain!! Kanns aber leider nicht importieren (Error: Input not a JSON Array). Bin leider nicht sooo RedMatic-affin. Sammler? Muss ich da erst etwas hinzufügen?Samhain hat geschrieben: ↑03.11.2022, 12:41Haufenweise.
Ich mache das so:
Funktion im Sammler:
Code: Alles auswählen
myObj = msg.payload; var msg1 = { payload: myObj.topic }; var msg2 = { payload: myObj.battery }; if (msg.payload.battery < 20 && msg.payload.battery !== undefined ) { msg.payload = { payload: msg.topic.substr(7,msg1.length) + ": " + String(myObj.battery) + "%"}; return [msg2,msg.payload]; }
Vor allem mit was liest du die Geräte aus? Bei mir sieht die zigbee-Converter Node anders aus
-
- Beiträge: 382
- Registriert: 30.03.2017, 13:44
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 15 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Das wird leider so nicht klappen, denn ich habe keine RedMatic mehr laufen. Bei mir läuft die neueste Node Red als Add-On unter Homeassistant, da aufgrund des fehlenden Supports der RedMatic kein sinnvoller Betrieb mehr möglich war.
Wenn ich Dir jetzt einen Export von meiner Konfig für LowBat bereitstelle, dann kannst Du das sicherlich importieren. Es wird aber an der Peripherie bei Dir scheitern. Deshalb habe ich keinen Export des Flows gemacht, sondern lediglich die Funktion (in der Mitte) bereitgestellt.
Mir ging es in meinem Beispiel nur darum, dass das LOWBAT auslesen klappt.
Am Ende musst Du es für deine Architektur bauen.
Bei mir läuft für ZigBee ein seperater DeConz Server mit RaspBee II (ZigBee) Controller. Damit sieht dann auch die Anbindung in der Redmatic anders als üblich aus.
Wenn Du Dir die Aqara's in deiner Konfiguration ansiehst, dann kannst Du sicherlich z.B. nur die jeweilige Batteriespannung (bzw. % Status) auslesen.
Diese kannst Du dann via o.g. Funktion auswerten und dann auf einen Trigger schicken. Bei mir sind die Trigger dann Mail, Anzeige in der Homematic, Pushover Info.
Ich hatte mir (vor Nutzung des RaspBee II Controllers) noch eine Funktion (siehe unten) dafür gebastelt.
Diese liefert auf jeweils einem Ausgang dann sep. Temperatur, Luftfeuchtigkeit, Batterie Status (für z.B. den Temperatursensor von Aqara).
Selbst die Fensterkontakte liefern sogar Temperaturinformation
Wenn ich Dir jetzt einen Export von meiner Konfig für LowBat bereitstelle, dann kannst Du das sicherlich importieren. Es wird aber an der Peripherie bei Dir scheitern. Deshalb habe ich keinen Export des Flows gemacht, sondern lediglich die Funktion (in der Mitte) bereitgestellt.
Mir ging es in meinem Beispiel nur darum, dass das LOWBAT auslesen klappt.
Am Ende musst Du es für deine Architektur bauen.
Bei mir läuft für ZigBee ein seperater DeConz Server mit RaspBee II (ZigBee) Controller. Damit sieht dann auch die Anbindung in der Redmatic anders als üblich aus.
Wenn Du Dir die Aqara's in deiner Konfiguration ansiehst, dann kannst Du sicherlich z.B. nur die jeweilige Batteriespannung (bzw. % Status) auslesen.
Diese kannst Du dann via o.g. Funktion auswerten und dann auf einen Trigger schicken. Bei mir sind die Trigger dann Mail, Anzeige in der Homematic, Pushover Info.
Ich hatte mir (vor Nutzung des RaspBee II Controllers) noch eine Funktion (siehe unten) dafür gebastelt.
Diese liefert auf jeweils einem Ausgang dann sep. Temperatur, Luftfeuchtigkeit, Batterie Status (für z.B. den Temperatursensor von Aqara).
Selbst die Fensterkontakte liefern sogar Temperaturinformation
Code: Alles auswählen
myObj = msg.payload;
var msg1 = { payload: myObj.temperature };
var msg2 = { payload: myObj.humidity };
var msg3 = { payload: myObj.battery };
if (msg1 !== 0 && msg2 !== 0 && msg3 !== 0 ) {
return [msg1,msg2,msg3];
}
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Ich danke dir! Dann werde ich mich wieder mal reinlesen müssen ist mir auf jeden Fall eine große Hilfe!
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Ich bekomme leider nur "undefined" raus keine Ahnung was ich damit anfangen soll.
-
- Beiträge: 382
- Registriert: 30.03.2017, 13:44
- Hat sich bedankt: 175 Mal
- Danksagung erhalten: 15 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
bei "undefined" Stimmen die Abfrageparameter nicht. Kannst Du mal bitte ein Bild posten wie Du die Abfrage machst und wie die Verschaltung aussieht?
-
- Beiträge: 52
- Registriert: 25.10.2021, 21:17
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 1 Mal
Re: Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben
Habe folgende Funktionen, von oben nach unten. Natürlich zum Testen und verstehen (was ich leider noch nicht tue )
Code: Alles auswählen
myObj = msg.payload;
var msg1 = { payload: myObj.temperature };
var msg2 = { payload: myObj.battery };
if (msg1 !== 0 && msg2 !== 0 ) {
return [msg1,msg2];
}
Code: Alles auswählen
myObj = msg.payload;
var msg1 = { payload: myObj.topic };
var msg2 = { payload: myObj.battery };
if (msg.payload.battery < 20 && msg.payload.battery !== undefined ) {
msg.payload = { payload: msg.topic.substr(7,msg1.length) + ": " + String(myObj.battery) + "%"};
return [msg2,msg.payload];
}
Code: Alles auswählen
return { payload: msg.payload.temperature };
Code: Alles auswählen
return { payload: msg.payload.contact };