Aqara Fensterkontakte - LOWBAT auslesen und Servicemeldung ausgeben

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

chrisrockkz
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

Beitrag von chrisrockkz » 04.07.2022, 12:09

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.

chrisrockkz
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

Beitrag von chrisrockkz » 19.10.2022, 09:01

Keiner der auch Aqara Fensterkontakte nutzt? :-)

Samhain
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

Beitrag von Samhain » 03.11.2022, 12:41

Haufenweise.

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];
}
Dateianhänge
Screenshot.jpg

chrisrockkz
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

Beitrag von chrisrockkz » 03.11.2022, 14:09

Samhain hat geschrieben:
03.11.2022, 12:41
Haufenweise.

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];
}
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?
Vor allem mit was liest du die Geräte aus? Bei mir sieht die zigbee-Converter Node anders aus :roll: :oops:

Samhain
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

Beitrag von Samhain » 03.11.2022, 15:56

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 ;)

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];
}

chrisrockkz
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

Beitrag von chrisrockkz » 03.11.2022, 16:11

Ich danke dir! Dann werde ich mich wieder mal reinlesen müssen :-) ist mir auf jeden Fall eine große Hilfe!

Samhain
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

Beitrag von Samhain » 03.11.2022, 16:38

Wenn ich noch helfen kann, dann melde Dich einfach.

Viel Erfolg beim Basteln :)

chrisrockkz
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

Beitrag von chrisrockkz » 03.11.2022, 21:25

Samhain hat geschrieben:
03.11.2022, 16:38
Wenn ich noch helfen kann, dann melde Dich einfach.

Viel Erfolg beim Basteln :)
Ich bekomme leider nur "undefined" raus :-( keine Ahnung was ich damit anfangen soll. :cry:

Samhain
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

Beitrag von Samhain » 04.11.2022, 21:09

bei "undefined" Stimmen die Abfrageparameter nicht. Kannst Du mal bitte ein Bild posten wie Du die Abfrage machst und wie die Verschaltung aussieht?

chrisrockkz
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

Beitrag von chrisrockkz » 05.11.2022, 08:45

Samhain hat geschrieben:
04.11.2022, 21:09
bei "undefined" Stimmen die Abfrageparameter nicht. Kannst Du mal bitte ein Bild posten wie Du die Abfrage machst und wie die Verschaltung aussieht?
Bildschirmfoto 2022-11-05 um 08.42.34.png
Habe folgende Funktionen, von oben nach unten. Natürlich zum Testen und verstehen (was ich leider noch nicht tue :roll: )

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 };
Dieser funktioniert ja:

Code: Alles auswählen

return { payload: msg.payload.contact };

Antworten

Zurück zu „RedMatic“