[gelöst] Batteriewert an Dummy

Begonnen von theophilou85, 03 Februar 2018, 01:55:15

Vorheriges Thema - Nächstes Thema

theophilou85

Hallo

Die Readinggrouplösung mit den Ausnahmen, da manche Geräte battery und batteryLevel haben, gefällt mir nicht, also mach ichs per Hand.

define bat dummy
attr bat readingList the00 the01 sed00 sed01 con00 con01 smo00 mod00 ins00

define the00_batteryLevel_n0 notify the00:batteryLevel:.* set bat the00 $EVENT
...
define con00_battery_n0 notify con00:battery:.* set bat con00 $EVENT


Ergibt:
con00
battery: ok
2018-02-03 01:45:40
sed00
batteryLevel: 2.6
2018-02-03 01:50:17
sed01
batteryLevel: 2.3
2018-02-03 01:51:27
smo00
battery: ok
2018-02-03 01:49:18
state
initialized
2018-02-03 01:46:11
the00
batteryLevel: 2.3
2018-02-03 01:45:40


Kann mir jemand sagen wie ich mein notify so umbauen kann dass das "battery:" bzw. "batteryLevel:" nicht in meinen dummyreadings erscheint?

Des weiteren wäre ich noch für einen Tipp dankbar, wie ich regelmäßig testen könnte ob das Device überhaupt was meldet (Die Fensterkontakte sind whs die "fadesten") und nach einer zu langen Ruhepause das Reading auf "no answer" oder so stelle.

Gibt es vielleicht schon ein Modul von irgendjemandem? Hab danach gesucht, aber nichts gefunden.

CBSnake

Moin,
notify ist nicht so meins aber du suchst $eventpart oder so ähnlich, die Suche hilft da weiter.
Welche Hardware hast du denn? Manche bringen eine Lebenszeichen Überwachung mit z.b. Homematic.

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

MadMax-FHEM

#2
Meinst du mit readingsGroup Lösung das hier:

https://forum.fhem.de/index.php/topic,82637.0.html

wenn ja, du kannst den Code nat. nach deinen Bedürfnissen anpassen und in den "Batterie-Dummy" eintragen was du willst...

Wenn du was anderes meinst vielleicht ist das verlinkte Beispiel dann was...

Bei deiner Lösung hast du einen Haufen Notify so wie ich das sehe...

Ich verstehe noch nicht so ganz was ist der Ursprung für den Batteriewert?
Kommt der von einem oder von Geräten?
Wenn (wie bereits gefragt): welche

Und was bezweckst du mit dem Dummy?

Wenn du ein genau passendes Notify zu einem Event brauchst:

EventMonitor öffnen

Warten bis gewünschter Event auftaucht

Ganze Zeile markieren

Und dann "create/modify"...

Dann mal als erste "Reaktion" eine Logausgabe von $EVENT, $EVTPART0 usw. dann siehst du was wo drin steht.
Ich vermute auch, dass du $EVTPART0 oder $EVTPART1 oder so brauchen wirst.

Ansonsten noch mal die Anmerkung: ein Notify und dann evtl. in einer Sub in myUtils entscheiden was in welchen Dummy...
Mit der verlinkten Lösung werden neue Geräte "automatisch" erfasst.
Bei deiner Lösung brauchst du doch vermutlich immer auch ein neues passendes Notify!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

theophilou85

Mit readinggroup meinte ich folgenden Code:

#Batteriestatus aller Devices im Raum Zentral anzeigen
define ZE.Batterie readingsGroup .*:[Bb]attery\
.*:[Bb]atteryLevel
attr ZE.Batterie notime 1
attr ZE.Batterie room Zentral
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'}


Der ist ja ganz nett, aber wenn ein Gerät "battery" und "batteryLevel" hat wird es doppelt aufgenommen. Dann kann man natürlich eine Ausnahme für spezielle Readings einführen, nur dann kann ich es ja gleich Device für Devive machen.

con00, con01, mod00... sind bei mir alles Homematic-Geräte, die entweder battery/batteryLevel oder beides haben. Ich möchte immer nur eines der beiden verwenden, bevorzugt batteryLevel da es genauer ist.
Damit ich im FHEM alle meine Batteriestatus an einem Fleck habe (zwecks Übersicht), möchte ich die Readings eines Dummies beschreiben (<-- macht man das so, wenn man irgendwelche Werte irgendwo gesammelt in der Oberfläche platzieren möchte?)

Mein Batteriedummy soll also am Ende für jedes Gerät einen Eintrag haben, bevorzugt "batteryLevel", zur Not "battery" und in weiterer Folge bastel ich mir dann ein "wenn eines der readings low oder xx Volt, dann sende mir eine Nachricht mit dieser Info". That's the plan :D

MadMax-FHEM

Dem Link mal gefolgt?
Gelesen!?

Was dort verlinkt ist macht genau das...

Musst ja nicht alles verwenden, kannst ja auch nur den HomeMatic Teil verwenden...

So habe ich genau aus dem von dir genannten Grund (wenn ich ihn richtig verstanden hab) angefangen...
Dann kam halt ZWave und weitere hinzu und jetzt wo es hier im Forum ist wächst und gedeit es... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

theophilou85

Doch doch, hab den Link angeklickt und auch gelesen und muss mich jetzt damit spielen. Wollte nur nochmal beschreiben worum es mir geht. Hat mich eh gewundert dass ich dafür nichts gefunden hab, gibt inzwischen ja schon für alles Module ;)

theophilou85

Sodala. Die Lösung für mich war mal $EVTPART1.

Das Modul hab ich mir auch angesehen, mich dann aber für meine Minilösung entschieden, da ich den Großteil der Funktionen nicht brauche. Dass es aber einen Xiaomi-Flowersensor gibt, wusste ich nicht und wird bestellt :D

Was ich im Überfliegen des Codes nicht finden konnte war eine Routine, die "tote/nicht ansprechbare HM-Devices" erkennt. Vermutlich auch gar nicht gewollt. Gibt es dafür schon irgendwas fertiges?

Vielen Dank für den super Support, in gewohnter FHEM-Forum-Qualität ;)

MadMax-FHEM

ActionDetector und dann ein Notify auf 'dead'...

So mache ich das.
Die Batteriewarnung heißt: Batterien kaufen...

Die "Totmeldung" dann (meist) tauschen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KernSani

Zitat von: theophilou85 am 04 Februar 2018, 11:58:22
Sodala. Die Lösung für mich war mal $EVTPART1.
Wenn's dann gelöst ist, bitte noch [Gelöst] vor das Subject des ersten Post schreiben :-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

theophilou85

Könntest du das ein Bisschen ausführen Joachim.

Ich habe einige HM-Geräte mit Batterie, die mir alle im ActionDetector angezeigt werden:

state
alive:7 dead:0 unkn:0 off:0
2018-02-05 15:47:01
status_con00
alive
2018-02-05 15:47:01
status_con01
alive
2018-02-05 15:47:01
status_sed00
alive
2018-02-05 15:47:01
status_sed01
alive
2018-02-05 15:47:01
status_smo00
alive
2018-02-05 15:47:01
status_the00
alive
2018-02-05 15:47:01
status_the01
alive
2018-02-05 15:47:01


Aber die HM-Geräte ohne Batterie, wie z.B Schaltaktoren mit Taster die sich mit den 230V versorgen, erscheinen dort nicht. Die könnten genauso "gestorben" sein. Wie kann ich diese erkennen?

MadMax-FHEM

ActionDetector prüft zyklisch (Attribut actCycle glaube ich) bestimmte (welche weiß ich ehrlich gesagt gar nicht) Readings und wenn die dann nicht entsprechend aktualisiert werden gehen die Geräte auf unknown bzw. dead...

https://wiki.fhem.de/wiki/HomeMatic


https://forum.fhem.de/index.php?topic=15277.0
Theoretisch könntest du wohl auch bei denen das Attribut setzen (sofern vorhanden).
Wenn sie allerdings das zu prüfende Reading nicht haben oder entsprechend aktualisieren gehen sie wohl auf dead obwohl sie noch tun...

Batterie betriebene Geräte wachen wohl immer mal wieder auf (sonst würden sie ja nichts mitkriegen) und schicken dann wohl meist/oft mal einfach was...

Welche mit Spannungsversorgung wohl nicht.
Außer es gibt was...
Mithören tun sie ja eh dauernd...

Es gibt noch das "monitoring-Modul" vielleicht macht das eher was du suchst/brauchst...

https://forum.fhem.de/index.php?topic=68765.0

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

theophilou85

das mit actcyle hat super geklappt, für die homematic-geräte zumin.
wollte jetzt das monitoring für meine anderen geräte einsetzen, aber dafür eignet es sich nur bedingt, da ich mqtt-geräte und andere dinge wie tv und yamaha-receiver habe, die total unterschiedlich reagieren und unterschiedliche readings überwacht werden müssen.

also wieder alles per notify und watchdog in einen dummy namens: monitoring_others :D

was mir jetzt natürlich abgeht ist dass der "state" des dummies, gleich wie beim actiondetector "unknown:9, alive:2, dead:3" anzeigt.
gibt es ne möglichkeit fhem zu sagen: "zähle alle readings eines dummies mit xxx und schreibe xxx:anzahl xxx als state"?

MadMax-FHEM

Dafür würde ich einen neuen Thread aufmachen...

Hier "unpassend" und mit [gelöst] "findet" das wohl niemand...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)