Batteriestatus und Speicherung des letzten Wechsel

Begonnen von Amenophis86, 12 Januar 2018, 19:23:20

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#60
Hallo,

ich bin ja nicht sicher, ob das jetzt mit dem "temp-at" und dem "Fragezeichen" geklärt ist aber ich nutze das beispielsweise für die Waschmaschinenbenachrichtigung und die "Tür wurde geöffnet Prüfung".

D.h. ich definiere einen relativen "one shot timer":

defmod at$Devname at +00:10:00 {my_CheckSomething(\"$Devicename\")}

Somit kann ich dann in der Sub "my_CheckSomething" den at-Namen wieder "ermitteln" und weiß auch welches Gerät zu behandeln ist.

Wenn der Timer aus der "Timer-Sub" heraus wieder benutzt werden soll (also quasi sich selber wieder nach einer bestimmten Zeit aufrufen soll), dann muss der (experimentell ermittelt ;)  ) zuerst gelöscht werden und dann mit obigem defmod erneut angelegt werden.
Ansonsten, wenn er nur "außerhalb" gesetzt/defined wird ist er nach dem jeweils einen Aufruf "einfach weg"...

Fragezeichen bzgl. "save config" hatte ich noch nie...


sub my_CheckSomething($)
{
  my ($Devcename) = @_;

  fhem("delete at$Devicename"); # wenn von hier erneut aufgerufen werden soll
 
  # Perform Checks

  fhem("defmod at$Devicename at +00:15:00 {my_CheckSomething{\"$Devicename\")}"); # wenn erneut nach einiger Zeit geprüft werden soll
}


Was ich zugegebenermaßen noch nicht geprüft habe: was passiert wenn der Timer angelegt ist und das System neu gestartet wird während der Timer läuft...

EDIT: die durchzuführenden Checks sollten sich möglichst für alle Geräte (evtl. wie eh schon per "Abfrage des Typs" etc.) in einer Sub durchführen lassen, somit hätte man nur eine weitere Sub für "zyklische Tests" die jeweils pro zu prüfendes Gerät eben mit dem Gerätenamen (oder weiteren/anderen "Kennungen") per "eigenem" at aufgrufen wird...

EDIT2: toll was hier aus ein wenig Code wird!! :)   Vielen Dank!!! Und nat. viel "Spaß" weiterhin damit!

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)

nils_

Zitat von: MadMax-FHEM am 24 Januar 2018, 10:54:23
ich bin ja nicht sicher, ob das jetzt mit dem "temp-at" und dem "Fragezeichen" geklärt ist aber ich nutze das beispielsweise für die Waschmaschinenbenachrichtigung und die "Tür wurde geöffnet Prüfung".

zur Fragezeichen-Kalte-Warme-Füße-Problematik:
https://fhem.de/commandref_DE.html#at

ZitatHinweise:
wenn kein * angegeben wird, wird der Befehl nur einmal ausgeführt und der entsprechende at Eintrag danach gelöscht. In diesem Fall wird der Befehl im Statefile gespeichert (da er nicht statisch ist) und steht nicht im Config-File (siehe auch save).

grüße
nils_
viele Wege in FHEM es gibt!

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

MadMax-FHEM

Also ich meinte geklärt im Sinne: von hier unter den beteiligten Codern ;)

Mir war das mit dem Fragezeichen (also dass es nicht kommt und warum) schon klar ;)

Aber nun weiß ich auch, dass er nicht "verloren geht" bei einem Neustart...

Danke, 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)

_fhemuser_

Zitat von: Amenophis86 am 23 Januar 2018, 11:37:21
Du musst den Namen des Telegram empfängers eingeben. Also wenn dein Telegramdevice TelegramBot heißt und dein Account auf welchem du die Nachrichten empfängst hans dann my $msg = "set TelegramBot message \@\@hans ";
Damit funktioniert die Benachrichtigung leider auch nicht.
Meine Defininiton des TelegramBot:defmod fhembot TelegramBot
attr fhembot allowUnknownContacts 0
attr fhembot cmdKeyword FHEM
attr fhembot cmdRestrictedPeer XXXXXX    <= Peernummer anonymisiert
attr fhembot defaultPeer XXXXXXX
attr fhembot pollingTimeout 120

In der 99_myutils steht:
# TelegramBot
  my $msg = "set fhembot message \@\@xXXXXx_bot ";   <= botname anonymisiert
#
# msg-command
# my $msg = "msg \@User title='Battery Check' ";
#
# Pushover
# my $msg = "set Pushover msg device=User title='Battery Check' ";

Wenn ich in der Kommandozeile eingebe: set fhembot message \@\@xXXXXx_bot also das was im Programm steht, erhalte ich die Meldung: \@\@xXXXXx_bot

Dort sollte aber wohl der Botname nicht mit angezeigt werden. Und Nachrichten über leere Batterien erhalte ich auch nicht.
Bei set fhembot message heute ist Mittwoch, erhalte ich den Text: heute ist Mittwoch
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Amenophis86

Wenn du es in die Commandozeile eingibst musst du die @ nicht escapen. Dann ist die Frage, wenn du einen Standard Nutzer im fhembot hinterlegt hast, der Nachrichten erhalten soll musst du keinen mehr definieren der die Nachricht erhalten soll. Und das @@User ist NICHT der Name deines Telegrambot, sondern der Name des Geräts welches die Nachricht empfangen soll. Also der Nutzer mit dem du zB auf deinem Handy bei Telegram eingeloggt bist.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

_fhemuser_

#66
OK, wenn der Botname nicht angegeben werden muss in meinem Fall, dann müsste die Meldung mit dem Botnamen und dem Text bitte Batterie tauschen übermittelt werden.

Aber es kommt bei Telegram nichts an und im Log steht weiterhin: Die Batterien von Buro sollten bald gewechselt werden! : Unknown command Die, try help.Das deutet darauf hin, dass "Die" kein Befehl ist.
Dann muss der Fehler an einer anderen Stelle im Code sein.
an 4 Stellen im Code steht jeweils:        #send message via TelegramBot
       fhem($msg." ".$text_soon);
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Amenophis86

Jain, also nochmal von vorne. Der Code my $msg = "set TelegramBot message \@\@hans "; ist der erste Teil der Nachricht. Der zweite Teil ergibt sich aus den Variablen $text_xxx. Wenn bei deinem TelegramBot ein Standarduser für Nachrichten hinterlegt ist, dann musst du nur den Teil mit \@\@User weglassen. Soll heißen in deiner Sub muss stehen: my $msg = "set TelegramBot message  ";.

Ob das klappt kannst du testen, wenn du in deiner Commandzeile folgendes eingibst:
set TelegramBot message Hallo Wenn diese Nachricht bei dir nicht ankommt, dann musst du den user noch mit angeben, wie in der Sub vordefiniert. Den richtigen Usernamen findest du im Reading "Contacts" im TelegrambotDevice. Der Name beginnt immer mit @ und muss zum senden in einer sub mit einem zweiten @ geschrieben werden, die wiederum escaped werden muss durch \. Es handelt sich somit nicht um einen Fehler im Code, sondern um einen Verständnisfehler.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

_fhemuser_

Zitat von: Amenophis86 am 24 Januar 2018, 17:46:29
Ob das klappt kannst du testen, wenn du in deiner Commandzeile folgendes eingibst:
set TelegramBot message Hallo
Das funktioniert problemlos.

Da die Benachrichtigung nur einmal versandt wird, muss ich erst wieder volle Batterien einsetzen und dann wieder leere.

Bei dem ganzen Testen mit Batterien und Netzteil scheint sich heraus zu stellen, dass einige MAX!Geräte anders reagieren. Eventuell ist das auf eine Änderung der Hardwererevision oder Firmwarerevision zurück zu führen.
Bei einem HT, ich glaube der hat die zweite Hardwarerevision, ändert sich innerhalb von bis jetzt 2 Stunden der Batteriezustand nicht auf Voll obwohl die Batterispannung 3 Volt hat. Wenn die Batterien komplett entfernt werden und die Adaptierfahrt durchgeführt wird ist die Batteriewarnung gelöscht. Bei dem HT werde ich vorerst die Batterien nicht tauschen um zu sehen, ob die Batteriewarnung sich später selbst löscht.
Den Effekt, dass die Bateriewarnung schwankt, kann ich mit dem HT und dem Netzteil nicht nachstellen.
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Amenophis86

Zitat von: _fhemuser_ am 24 Januar 2018, 18:01:15
Das funktioniert problemlos.
Dann musst du den Code nur wie folgt anpassen:
my $msg = "set TelegramBot message  ";

Zitat
Bei einem HT, ich glaube der hat die zweite Hardwarerevision, ändert sich innerhalb von bis jetzt 2 Stunden der Batteriezustand nicht auf Voll obwohl die Batterispannung 3 Volt hat. Wenn die Batterien komplett entfernt werden und die Adaptierfahrt durchgeführt wird ist die Batteriewarnung gelöscht.
Soll heißen das Reading Battery bleibt auf low stehen, obwohl du neue volle Batterien einfügst?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Intruder1956

ich habe auch einen Sensor CUL_TCM Auriol der lässt sich nicht auf battery ok bewegen.
battery
low
2018-01-20 15:15:30
mode
normal
2018-01-20 15:16:03
other
10.2
2018-01-24 18:55:16
state
T: 10.2
2018-01-24 18:55:16
trend
rising
2018-01-24 11:10:31


habe mit neuen Batterien und frisch geladene Akkus probiert und zu letzt wieder neue Batterien, immer auf "low"
Ich denke da wird was im Modus nicht richtig interpretiert.

Gruß
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Amenophis86

#71
Wenn du meinst, dass er nicht erfasst wird und keine Meldungen absetzt, dann ist das richtig. Aktuell werden nur die im ersten Post genannten Device unterstützt. Aber eigentlich könnte man auch einen allgemeinen Teil einsetzen, welcher nur auf low und ok hört. Setze mich da mal dran.

Edit:
Ich habe mal einen Test-Branche auf dem git erstellt. Dieser unterstützt nun LaCrosse in einem extra Block, damit wir hier noch mit ReadingsAge arbeiten können und alle anderen, welche nur low/ok senden. Habe es noch nicht testen können, aber da kann sich ja jeder dran beteiligen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

MadMax-FHEM

Bei nur low und ok müssen (sollten) die HM Geräte die auch battery_level senden "ausgefiltert" werden, sonst werden die doppelt behandelt weil die zusätzlich low/ok senden...

Kurz da nur Handy...

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)

Amenophis86

Hat mich jetzt gerade echt einen Moment gekostet zu verstehen wieso du das schreibst, weil ich dachte es ist ja die letzte elseif Abfrage und die müssten vorher schon abgefangen worden sein. Aber stimmt die werden nur bei der Meldung mit batteryLevel abgefangen und nicht bei battery, da sind sie vorher ins leere gelaufen. Ok dann muss ich das noch ändern, danke für den Hinweis. Schaffe ich aber heute leider nicht mehr.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

MadMax-FHEM

Sorry für die Kürze und auch für die zusätzliche Arbeit...

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)