Batteriestatus und Speicherung des letzten Wechsel

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

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: Amenophis86 am 15 Januar 2018, 18:31:15
Hab gerade mal auf github geschaut und finde den von dir angesprochenen Fehler nicht.

Bitte schön , gerade eben von github geholt. Zwave & Xiaomi sind OK da $Device vorhanden,
die anderen drei sind IMHO fehlerhaft da später immer das gleiche Reading überschrieben wird ohne Devicename

  # HM Devices with battery
  fhem("setreading $BatteryChanged $text_changed");
  # HM Devices with batteryLevel
  fhem("setreading $BatteryChanged $text_changed");
  # ZWave Devices
  fhem("setreading $BatteryChanged $Device $text_changed");
  # XiaomiFlowerSens Devices
  fhem("setreading $BatteryChanged $Device $text_changed");
  # MAX! Devices
  fhem("setreading $BatteryChanged $text_changed");
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Firetic

Ich glaube durch die "BatteryStart()" Funktion wird das notifiy falsch definiert?!

Es müsste doch {BatteryStatusFunction(\$NAME, \$EVENT)} anstatt {BatterieStatusFunction(\$NAME, \$EVENT)} heißen...


Gruß Firetic

Amenophis86

Zitat von: Wzut am 16 Januar 2018, 10:00:54
Bitte schön , gerade eben von github geholt. Zwave & Xiaomi sind OK da $Device vorhanden,
die anderen drei sind IMHO fehlerhaft da später immer das gleiche Reading überschrieben wird ohne Devicename

  # HM Devices with battery
  fhem("setreading $BatteryChanged $text_changed");
  # HM Devices with batteryLevel
  fhem("setreading $BatteryChanged $text_changed");
  # ZWave Devices
  fhem("setreading $BatteryChanged $Device $text_changed");
  # XiaomiFlowerSens Devices
  fhem("setreading $BatteryChanged $Device $text_changed");
  # MAX! Devices
  fhem("setreading $BatteryChanged $text_changed");


Da hat mich meine Suche gestern doch echt überlistet. Habe es jetzt gefixt, hoffe ich habe nicht wieder eins übersehen.

Zitat von: Firetic am 16 Januar 2018, 12:40:57
Ich glaube durch die "BatteryStart()" Funktion wird das notifiy falsch definiert?!
Es müsste doch {BatteryStatusFunction(\$NAME, \$EVENT)} anstatt {BatterieStatusFunction(\$NAME, \$EVENT)} heißen...
Gruß Firetic

Oh, da war noch eine alte Version im git gepusht. Muss da echt noch mit üben, sry. Habe ich auch gefixt.


Ich hoffe, dass ich am Wochenende dazu kommen mal das temporäre einzubauen. Aktuell bin ich zeitlich ziemlich eingespannt.
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...

Amenophis86

So, habe mal TelegramBot / Pushover und den msg Befehl eingebaut. Muss man halt auf seine Bedürfnisse anpassen den String.

Bezüglich Max dauert noch ein bisschen.
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...

Amenophis86

Ich überlege aktuell wie man das MAX Problem lösen kann, komme aber einfach nicht weiter. Mir fehlt die Logik, wie man es prüfen kann. Entweder ist das Problem, dass es "ok" meldet, weil kein Batterie wechsel stattgefunden hat und es nur eine verfrühte Meldung war, oder es ist "ok", weil ein Batteriewechsel stattgefunden hat. Das lässt sich jedoch in keinem Fall unterscheiden. Daher sehe ich aktuell keine Möglichkeit, wie es automatisiert werden kann, dass der Batteriewechsel sicher gespeichert wird.
Auch eine verzögerte Abfrage hilft nicht viel, weil man genau den Zeitpunkt des Wechsels abpassen müsste, sonst bekommt man wieder nur ein "ok" und weiß nicht warum.

Man müsste quasi anders merken, dass die Batterie gewechselt wurde. Gibt es ein Reading bei Max was sich quasi nur ändert, wenn die Batterie gewechselt wurde. Habe gerade mal bei meinen HM-CC-RT-DN geschaut, da gibt es ein Reading powerOn, da muss ich die Tage mal testen, ob das ist wann er das letzte mal eingeschaltet wurde. Das wäre für den Batteriewechsel natürlich top. Hat MAX! das auch?
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...

SibbeH

#20
Bei mir ist es so das bei einen Batterie-wechsel das Group-ID auf 0 zurück wird gesetzt. Sollte man als Lösung für deines Problem Group-ID brachen muss es nach ein Batterie-wechsel neu eingestellt werden.

Grüss
Sibbe
Raspberry Pi, CULV3, 3xCUNO, MAX Thermostat, MAX Wandthermostat, HM, HmIP. UWZ, WeekProfile

Amenophis86

Kannst du mir mal ein list von einem MAX Thermostat posten, dass ich das sehen kann. Danke für die Info. Dh aber auch, dass die bei 0 ist, wenn man sie nie verändert hat?
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...

SibbeH

Ich habe jeder Raum ein eigenes Group-ID vergeben.
Wohnzimmer 1
Kuche 2
usw

Internals:
   DEF        HeatingThermostat 0f8955
   IODev      cm
   LASTInputDev cm
   MSGCNT     9954
   NAME       MAX_CV_Keuken
   NR         278
   RSSI       -60
   STATE      15.0 °C
   TYPE       MAX
   addr       0f8955
   backend    cm
   cm_MSGCNT  9954
   cm_TIME    2018-01-20 21:09:26
   dstsetting 1
   mode       0
   rferror    0
   type       HeatingThermostat
   READINGS:
     2018-01-20 21:09:26   RSSI            -60
     2015-11-06 21:11:18   TimeInformationHour 2
     2018-01-20 21:09:26   battery         ok
     2015-11-06 21:54:01   boostDuration   5
     2015-11-06 21:54:01   boostValveposition 80
     2015-11-06 21:54:01   decalcification Sat 12:00
     2018-01-20 21:09:26   desiredTemperature 15.0
     2017-02-17 15:13:45   firmware        1.0
     2017-02-17 15:31:59   groupid         2
     2015-11-06 22:57:47   maxValveSetting 100
     2018-01-20 21:09:26   mode            auto
     2018-01-20 15:12:13   msgcnt          124
     2016-05-20 21:21:30   onlyAutoMode    0
     2018-01-20 21:09:26   state           15.0 °C
     2018-01-20 19:00:35   temperature     19.6
     2017-02-17 15:13:45   testresult      161
     2015-11-06 21:54:01   valveOffset     0
     2018-01-20 21:09:26   valveposition   0
     2016-05-27 19:36:51   weekprofile-0-Sat-temp 15.0 °C  /  19.0 °C  /  15.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-0-Sat-time 00:00-07:30  /  07:30-22:00  /  22:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-1-Sun-temp 15.0 °C  /  19.0 °C  /  15.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-1-Sun-time 00:00-07:30  /  07:30-22:00  /  22:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-2-Mon-temp 15.0 °C  /  19.0 °C  /  17.0 °C  /  19.0 °C  /  17.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-2-Mon-time 00:00-05:15  /  05:15-07:30  /  07:30-16:00  /  16:00-19:00  /  19:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-3-Tue-temp 15.0 °C  /  19.0 °C  /  17.0 °C  /  19.0 °C  /  17.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-3-Tue-time 00:00-05:15  /  05:15-07:30  /  07:30-14:00  /  14:00-19:00  /  19:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-4-Wed-temp 15.0 °C  /  19.0 °C  /  15.0 °C  /  19.0 °C  /  17.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-4-Wed-time 00:00-05:15  /  05:15-07:30  /  07:30-14:00  /  14:00-19:00  /  19:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-5-Thu-temp 15.0 °C  /  19.0 °C  /  17.0 °C  /  19.0 °C  /  19.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-5-Thu-time 00:00-05:15  /  05:15-09:00  /  09:00-15:00  /  15:00-19:00  /  19:00-23:55  /  23:55-00:00
     2016-05-27 19:36:51   weekprofile-6-Fri-temp 15.0 °C  /  17.0 °C  /  19.0 °C  /  15.0 °C
     2016-05-27 19:36:51   weekprofile-6-Fri-time 00:00-07:30  /  07:30-19:00  /  19:00-23:55  /  23:55-00:00
   internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      cm
   room       Keuken


Sibbe
Raspberry Pi, CULV3, 3xCUNO, MAX Thermostat, MAX Wandthermostat, HM, HmIP. UWZ, WeekProfile

Amenophis86

Und man muss wirklich jedes Mal nach dem Batteriewechsel die Groupid neu vergeben? Dann könnte man darauf aufbauen. Danke für die Info und das list.
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...

Wzut

Das mit der groupid klimgt gut. Ich muss gestehen die noch nie bei einem meiner Geräte gesetzt zu haben da ich sie nicht brauche.
Gerade mal mit meinem WT am Schreibtisch getestet : groupid auf einen Wert != 0 , Reading ändert sich. Bat raus und wieder rein, groupid == 0 :)
Also würde ich folgenden Ansatz wählen :
1. Bei einem Bat low && groupid != 0 && Level == 100 , Bat Level auf 50 runtersetzen und ggf Warn Meldung mit "müsste demnächst gewechselt werden".
2. Bat wird wieder zu ok aber groupid bleibt auf >0 , Status OK aber Level auf  50 stehen lassen als Merker "da war schon mal was"  , temporäres at löschen.
3. Bat low && groupid != 0 && Level < 100 , wieder Warn Meldung und ein temoräres at erzeugen mit einer Laufzeit von 24 Stunden.

Schritt 2 & 3 werden sich nun ein paar Mal wiederholen , irgendwann verschwindet das low aber nicht mehr , da es nun keinen Bat event mehr gibt schlägt das temoräre at zu und setzt den Level auf 0 und die Bat leer Meldung.
Auch jetzt könnte sich 2 & 3 wiederholen was aber ok wäre
4. Es kommt eine Bat OK Meldung Level < 100 aber groupid == 0 : Level zurück auf 100 und Eintrag in die Wechsel Liste.

Bei dem Spiel gehe ich davon aus das an jedem Device event-on-change-reading zumindest für battery gesetzt ist.
Man sollte sich auch mal überlegen wie es auschauen würde wenn es nicht so wäre und jeder Bat Event zum Überwachugs notify durch geht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Amenophis86

So war auch meine Logik, muss nur schauen, wann ich dazu komme. Aber zumindest sind wir jetzt ein bisschen weiter :)
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...

SibbeH

@ Amenophis86
Gerne gemacht

Bei mir kommt die Meldung Bat low, wenn der Entkalkungsfarhrt ausgeführt wird. Das Motorchen von das HT zieht dann so viel Strom, dass die Batteriespannung unter 2,4 V kommt. Ich habe gelesen das darum auch kein wiederaufladbare Batterien gebraucht werden können, weil sie ein Spanning von nur 1,2 V haben.
Später wird die Meldung Bat low auch dann ausgegeben, wenn das Motorchen von das HT eine "längere Fahrt" für das Heizventil machen sollte.

@Wzut
Wunsch für die Zukunft:
5. Wenn das Level wieder auf 100 zurückgesetzt wurde und die Wechselung in der Liste verarbeitet wurde, sollte Groupid wieder auf den alten Wert zurückgesetzt werden.

Grüss
Sibbe
Raspberry Pi, CULV3, 3xCUNO, MAX Thermostat, MAX Wandthermostat, HM, HmIP. UWZ, WeekProfile

Wzut

Zitat von: SibbeH am 21 Januar 2018, 14:28:28
5. Wenn das Level wieder auf 100 zurückgesetzt wurde und die Wechselung in der Liste verarbeitet wurde, sollte Groupid wieder auf den alten Wert zurückgesetzt werden.
Das sollte kein großes Problem sein. Lässt sich IMHO recht elegant mit einem userattr groupid an jedem MAX Device lösen, das bleibt einmal gesetzt schön dauerhaft in der config. U.a. kann man dann auch die ganze MAX Batterie Überwachung daran festmachen, D.h. gesetzt wird das Device berücksichtigt, nicht gesetzt wird es links liegen gelassen. Mal schauen, vermutlich werde ich im Laufe der nächsten Woche etwas Zeit zum basteln haben.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

MadMax-FHEM

Zitat von: SibbeH am 21 Januar 2018, 14:28:28
Bei mir kommt die Meldung Bat low, wenn der Entkalkungsfarhrt ausgeführt wird. Das Motorchen von das HT zieht dann so viel Strom, dass die Batteriespannung unter 2,4 V kommt. Ich habe gelesen das darum auch kein wiederaufladbare Batterien gebraucht werden können, weil sie ein Spanning von nur 1,2 V haben.
Später wird die Meldung Bat low auch dann ausgegeben, wenn das Motorchen von das HT eine "längere Fahrt" für das Heizventil machen sollte.

Sollte ja beim verwendeten Code nicht passieren, da für die Heizköper- und Wandthermostate (ok, nur von HomeMatic) ja anhand der LowBatLimit (HT: 2,1V / WT: 2,2V) "gerechnet" wird.
Das "normale" battery Reading wird dort gar nicht ausgewertet...

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)

SibbeH

Ich wollte nur angeben warum bei MAX die Meldung Bat low so often wechselt....
Raspberry Pi, CULV3, 3xCUNO, MAX Thermostat, MAX Wandthermostat, HM, HmIP. UWZ, WeekProfile