Code Aufbau Max Fensterkontakt um Batteriezustand zu ermitteln?

Begonnen von schmello, 02 November 2018, 21:28:54

Vorheriges Thema - Nächstes Thema

schmello

Hallo zusammen...

Ich nutze FHEM mit einigen Max Geräten...
Doch suche ich den Code Aufbau von den Fensterkontakten um mir den Zustand in meiner CCU über Cuxd anzeigen zu lassen.
Weiß jemand welcher Coder versendet wird? Den Zustand offen geschlossen funktioniert in der CCU schon.
Ich hoffe das ist ok das ich hier Frage obwohl ich es nicht direkt über FHEM nutzen möchte.

Wzut

Batterie ok/low steckt doch mit open/close zusammen in jedem Status Telegramm.
Wenn du bereits in der Lage bist den Open Status aus dem Telegramm zu ziehen sollte die Batterie doch auch kein Problem mehr sein :
elsif($msgtype eq "ShutterContactState"){
    my $bits = pack("H2",$args[0]);
    my $isopen = vec($bits,0,2) == 0 ? 0 : 1;
    my $unkbits = vec($bits,2,4);
    my $rferror = vec($bits,6,1);
    my $batterylow = vec($bits,7,1);

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

schmello

Danke erstmal für deine Antwort :)

Ich verarbeite in der CCU die Open/Close Meldungen mit z.b. folgenden Code
ZU Z0B9506300FF4451234560010
AUF Z0B9506300FF4451234560012

Ich denke für die Batteriezustände werden sich irgendwelche Zahlen ändern. :) Nur weiß ich nicht welche.
Mit deiner Antwort kann ich leider nicht viel Anfangen ^^

Wzut

ahh , ok :) Wenn du noch zwei Wochen Zeit hast kann ich dir ein Beispiel zeigen, z.Z. bin ich noch im Urlaub mit nur beschränkten Zugriff.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

schmello


schmello

Zitat von: Wzut am 03 November 2018, 19:54:46
ahh , ok :) Wenn du noch zwei Wochen Zeit hast kann ich dir ein Beispiel zeigen, z.Z. bin ich noch im Urlaub mit nur beschränkten Zugriff.

Hast du noch ein Beispiel  ::)

Wzut

Zitat von: schmello am 03 November 2018, 19:15:35
Ich verarbeite in der CCU die Open/Close Meldungen mit z.b. folgenden Code
ZU Z0B9506300FF4451234560010
AUF Z0B9506300FF4451234560012

Ich denke für die Batteriezustände werden sich irgendwelche Zahlen ändern. :) Nur weiß ich nicht welche.
dann schauen wir uns doch mal an was Z0B9506300FF4451234560010 überhaupt bedeutet :)
Z = es ist eine Max Nachricht
0B ( in Hex) : die Länge der Nachricht
95 : Message Counter
06 : Message Flag
30 : Message Typ raw
0FF445 : Quell ID -> damit wirst du vermutlich deine verschiedenen FKs unterscheiden
123456 : Ziel ID -> der Parameter vom CUL_MAX Device
00 : Group ID
10 : ( in Hex) Payload , d.h hier steht drin was der FK mitzuteilen hat

den Payload (10 bei auf , 12 bei zu ) müssen wir nun binär zerlegen :
hex 10  = 0001 0000
hex 12  = 0001 0010

schauen wir uns nun die Bits einzeln an von rechts nach links : 00 = zu  10 = auf
Die nächste Gruppe hat vier Bits (0100) und wird im 10_Max.pm als unkbits bezeichnet (vermutlich für unbekannt)
Dann Bit Nr. 6 = rferror , hier auch 0 kann aber auch durchaus mal gesetzt sein
und last but not least Bit Nr. 7 = Battery ok/low

Da du auf ganze Telegramme  schaust müsste dein Beispiel FK bei Bat Low und offen und ohne rf Error
Z0B9506300FF4451234560090 senden und bei Bat Low und zu und ohne Error Z0B9506300FF4451234560092
Z0B9506300FF4451234560050  / Z0B9506300FF4451234560052  = auf/zu , rf error , Bat ok
Z0B9506300FF44512345600D0 / Z0B9506300FF44512345600D2  = auf/zu , rf error , Bat low
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher