[Gelöst] Batteriezustand Flamingo FA20RF Rauchmelder überwachen

Begonnen von thgorjup, 05 Juni 2017, 14:24:08

Vorheriges Thema - Nächstes Thema

thgorjup

Hallo,
ich habe einige Flamingo FA20RF Rauchmelder, deren Funkverkehr ich über einen SIGNALduino mitverfolge.
Jetzt möchte ich über einen DOIF, einen Dummy und einer readingsGroup abschätzen ob die Batterie noch "ok" ist.

Also wenn in Log die ID des Rauchmelders auftaucht, dann soll das DOIF den Status des Dummy auf "ok" setzen.
Mit DOELSEIF soll der Status auf "low " gesetzt werden, wenn länger als einen Tag kein Signal empfangen wurde.
Die readingsGroup zeigt den zustand aller Geräte an, die ein "battery" Reading haben.

Hier meine Versuche, aber es fängt schon damit an, dass das DOIF den Status nicht setzt, obwohl das Reading erneuert wird.

Log:

2017.06.05 13:53:42 4: sduino: decoded matched MU Protocol id 63 dmsg u63A549254A9552A492A5 length 72 RSSI = -41


Reading DOIF

e_sduino_DMSG u63A549254A9552A492A5 2017-06-05 13:53:42



Dummy

defmod Rauchmelder_2 dummy
attr Rauchmelder_2 alias Rauchmelder2 EG-Flur
attr Rauchmelder_2 group Rauchmelder
attr Rauchmelder_2 icon secur_smoke_detector
attr Rauchmelder_2 userReadings battery { ReadingsVal("Rauchmelder_2","state",0);; }


DOIF

defmod DetectRauchmelder2 DOIF ([sduino:&DMSG] =~ "u63A952AA549254A") (set Rauchmelder_2 ok)
attr DetectRauchmelder2 do always
attr DetectRauchmelder2 group Rauchmelder



readingsGroup

defmod ZE.Batterie readingsGroup .*:battery
attr ZE.Batterie notime 1
attr ZE.Batterie room 11_Drinnen
attr ZE.Batterie valueFormat {return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );; return "25" if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE < 2.5 );; return "100"}
attr ZE.Batterie valueIcon {'battery.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}


Danke für eure Hilfe.
Gruß Thomas
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

KernSani

Der einfachste Weg wäre wahrscheinlich einfach das Monitoring Modul zu verwenden.


In deinem DOIF fragst du das internal DMSG ab... du brauchst aber ein Event, um das DOIF zu triggern... was sagt denn der Eventmonitor?



RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

thgorjup

Eventmonitor sagt:

2017-06-05 14:31:41 SIGNALduino sduino DMSG u63549254A9552A492A5
2017-06-05 14:31:41 SIGNALduino sduino UNKNOWNCODE u63549254A9552A492A5
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

KölnSolar

Bist Du sicher, dass die RM überhaupt regelmäßig etwas senden? Mit dem RFXTRX kommen nur Alarme und pairing requests als events an :-\
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

thgorjup

#4
Hallo Markus, naja ich dachte solange pairing requests kommen, ist die Batterie noch ok.
Das wollte ich nutzen um es zu triggern um ggf. ein pushover auszulösen oder es in der readingsGroup anzuzeigen.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

thgorjup

#5
Ok, der Status des Dummy wird jetzt gesetzt. Habe den Tipp von KernSani befolgt und folgendes gesetzt:

defmod DetectRauchmelder2 DOIF ([sduino:"u634A952AA549254A"]) (set Rauchmelder_2 ok)


Jetzt fehl nur noch der Vergleich mit dem ReadingsTimestamp von 'e_sduino_events'.
Folgendes habe ich gefunden, weiß aber nicht, wie ich es einbauen kann.


my $lastChange = ReadingsTimestamp($deviceName, $readingName, $default);
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

KölnSolar

Zitatsolange pairing requests kommen,
aber, die kommen doch nur(recht laut), wenn Du Tasten drückst. Im Normalbetrieb kommt da nix. Zumindest bei meinem RFXTRX.

Ich will Dir ja nur vergebliche Mühen sparen oder muss mir einen Signalduino zulegen  ;)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

thgorjup

Ich habe doch einen SIGNALduino (siehe Post 1) und es kommen rund um die Uhr Meldungen ohne mein zutun.

Siehe hier:

2017-06-05 14:31:14 SIGNALduino sduino DMSG u63A549254A9552A492A5
2017-06-05 14:31:14 SIGNALduino sduino UNKNOWNCODE u63A549254A9552A492A5
2017-06-05 14:31:41 SIGNALduino sduino DMSG u63549254A9552A492A5
2017-06-05 14:31:41 SIGNALduino sduino UNKNOWNCODE u63549254A9552A492A5
2017-06-05 14:31:46 SIGNALduino sduino DMSG u63A492A54AA95249528
2017-06-05 14:31:46 SIGNALduino sduino UNKNOWNCODE u63A492A54AA95249528
2017-06-05 14:54:25 SIGNALduino sduino DMSG u63A4A952AA549254A
2017-06-05 14:54:25 SIGNALduino sduino UNKNOWNCODE u63A4A952AA549254A
2017-06-05 14:58:53 SIGNALduino sduino DMSG u63492A54AA95249528
2017-06-05 14:58:53 SIGNALduino sduino UNKNOWNCODE u63492A54AA95249528
2017-06-05 14:58:56 SIGNALduino sduino DMSG u630048400000000000000000000
2017-06-05 14:58:56 SIGNALduino sduino UNKNOWNCODE u630048400000000000000000000
2017-06-05 14:58:58 SIGNALduino sduino DMSG u63A492A54AA95249528
2017-06-05 14:58:58 SIGNALduino sduino UNKNOWNCODE u63A492A54AA95249528
2017-06-05 14:59:13 SIGNALduino sduino DMSG u63A4A952AA549254A
2017-06-05 14:59:13 SIGNALduino sduino UNKNOWNCODE u63A4A952AA549254A
2017-06-05 14:59:39 SIGNALduino sduino DMSG u6354A924A94
2017-06-05 14:59:39 SIGNALduino sduino UNKNOWNCODE u6354A924A94
2017-06-05 14:59:45 SIGNALduino sduino DMSG u63A492A54AA9524952A554A924A952AA549254A9552A492A54AA9
2017-06-05 14:59:45 SIGNALduino sduino UNKNOWNCODE u63A492A54AA9524952A554A924A952AA549254A9552A492A54AA9
2017-06-05 14:59:46 SIGNALduino sduino DMSG u63A4A952AA549254A
2017-06-05 14:59:46 SIGNALduino sduino UNKNOWNCODE u63A4A952AA549254A
2017-06-05 15:12:47 SIGNALduino sduino DMSG u63A549254A9552A492A5
2017-06-05 15:12:47 SIGNALduino sduino UNKNOWNCODE u63A549254A9552A492A5
2017-06-05 15:20:12 SIGNALduino sduino DMSG u63924A952AA549254A
2017-06-05 15:20:12 SIGNALduino sduino UNKNOWNCODE u63924A952AA549254A
2017-06-05 16:24:12 SIGNALduino sduino DMSG u6354A9552A492A5
2017-06-05 16:24:12 SIGNALduino sduino UNKNOWNCODE u6354A9552A492A5
2017-06-05 16:24:56 SIGNALduino sduino DMSG u6354A9552A492A5
2017-06-05 16:24:56 SIGNALduino sduino UNKNOWNCODE u6354A9552A492A5
2017-06-05 16:25:02 SIGNALduino sduino DMSG u639524952A554A924A94
2017-06-05 16:25:02 SIGNALduino sduino UNKNOWNCODE u639524952A554A924A94
2017-06-05 16:31:08 SIGNALduino sduino DMSG u639524952A554A924A94
2017-06-05 16:31:08 SIGNALduino sduino UNKNOWNCODE u639524952A554A924A94
2017-06-05 16:31:13 SIGNALduino sduino DMSG u634A952AA549254A
2017-06-05 16:31:13 SIGNALduino sduino UNKNOWNCODE u634A952AA549254A
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

KölnSolar

dann brauch ICH wohl demnächst nen Signalduino  ;)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Zitat von: thgorjup am 05 Juni 2017, 17:07:45
Jetzt fehl nur noch der Vergleich mit dem ReadingsTimestamp von 'e_sduino_events'.
Ein Vergleich ist garnicht notwendig, du willst ja nur wenn 24 Stunden nix passiert ist, etwas tun

erzeuge dir doch in deinem doif ein at, z.B. so:

defmod myAt +24:00 set  Rauchmelder_2 low

oder mach das Ganze mit dem wait-Attribut

defmod DetectRauchmelder2 DOIF ([sduino:"u634A952AA549254A"]) (set Rauchmelder_2 ok) (set  Rauchmelder_2 low)
attr  DetectRauchmelder2 wait 0,86400


ein watchdog wäre auch noch eine Möglichkeit...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

thgorjup

Danke sehr KernSani! Werd ich gleich mal ausprobieren.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

thgorjup

Funzt! Hier die Lösung:


define DetectRauchmelder2 DOIF ([sduino:"u634A952AA549254A"]) (set Rauchmelder_2 ok) (set Rauchmelder_2 low)
attr DetectRauchmelder2 do resetwait
attr DetectRauchmelder2 wait 0,86400
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

KölnSolar

Hi Thomas,
nachdem ich nun meinen nanoCUL als S'duino geflashed habe, bin ich etwas überrascht, dass ich eben keine permanenten Aussendungen der FA20RF's erhalte. Folglich muss ich meine Frage wiederholen
ZitatBist Du sicher, dass die RM überhaupt regelmäßig etwas senden?
Wie sehen denn Deine device-id des RM's und die Alarmmeldungen aus, dass Du glaubst, die geposteten Meldungen kämen von den RM's ? Ich habe keine u63er-messages  :-\
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt