Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
wianle
Beiträge: 8
Registriert: 02.06.2022, 13:09
System: CCU
Hat sich bedankt: 5 Mal

Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von wianle » 13.06.2023, 18:16

Hallo zusammen,

für einzelne batteriebetriebene HM-Geräte kann ich den Batteriestatus (boolean) abfragen mit:

Code: Alles auswählen

dom.GetObject("BidCos-RF.XXXXXXXXX:0.LOWBAT").Value()
Wie muss ich ein Script aufbauen um nach Geräten zu filtern, welche nicht HMIP und nicht netzspannungsbetrieben sind und abfragen ob und an welchem Gerät der Status LowBat = true ist, also die Batterie zeitnah gewechselt werden sollte?

Hat mir dafür bitte jemand einen Vorschlag?

Ganz herzlichen Dank vorab für die Mühe

Andi

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von NickHM » 13.06.2023, 18:39


alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von alchy » 16.06.2023, 20:53

Genau, denn ein batteriebetriebenes Gerät mit BATLOW vermeldet über die Alarmdatenpunkte eine Servicemeldung und das ist der Punkt wo du ansetzen solltest statt permanent ein Script laufen zu lassen, welches prüft ob BATLOW true ist.

Und falls es dir um die einzelnen Batteriespannungen gehen sollte, auch da gibt es etwas von mir, nämlich >> Batteriewerte der Geräte abfragen per Script<< usw. wie zu fast jedem Problem was es auf der CCU so gibt.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

MarKiesCo
Beiträge: 71
Registriert: 11.04.2023, 21:07
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von MarKiesCo » 12.11.2023, 12:07

Hallo Gemeinde, hab zu diesem Thread mal eine weiterführende Frage.

Ich hatte das Thema 'Batteriespannung' auch vor einiger Zeit als Teil meiner Smarthome-Einrichtung (CCU3, org Soft, akt. FW 3.71.12) auf dem Schirm, und über die Recherchen im Forums erfolgreich zum Abschluss bringen können, ihr hab ja da wirklich viel hilfreiches Material dazu.

Ich habe jetzt eine Kombi aus dem Script von alchys *allinclusive* und einem eigens aufgesetztem Programm, was einmal täglich den Status zu 'LOW_BATT' abfragt (Gewerke 'Batterie' dazu angelegt).

Meine Beobachtung war, dass bei manchen Geräten das *allinclusive* eine Batteriewarnung ausgibt, die aber nur einmalig kam, und dann tagelang nix mehr. Mein zweites Programm registiert dieses Batteriewarnung dann nicht, weil sich der Status zu 'LOW_BATT' in der Zwischenzeit von true wieder auf false geändert hat.

Die Frage dazu:
Macht es eigentlich Sinn mein zweites Programm einmal täglich laufen zu lassen, um zu identifizieren, ob sich der Batteriestatus über einen längeren Zeitraum (Stunden) manifestiert hat, und erst DANN die Batterie zu wechseln?
oder
ist das zweite Programm unter Umständen durchaus sinnvoll, um eben auch low batt Schwankungen durch zB. starke Temperaturschwankungen (Kälte) abzufedern, um nicht gleich bei der ersten Servicemeldung ( alchys *allinclusive*) die Batterie wechseln zu müssen?

Zusatzfrage :mrgreen: : Ich sehe das doch richtig? - dass so ein Zusatzprogramm, welches den Status 'LOW_BATT' abfragt, grundsätzlich keine Leistungseinbußen zu CCU ReGa oder Duty cycle hat, natürlich vorrausgesetzt es ist vernünftig programmiert? 'Man' könnte es theoretisch auch stündlich laufen lassen, solange es den Status der CCU abfragt (value) und nicht den des Aktors über 'state', korrekt?

vielen Dank im Vorraus
cheers

Xel66
Beiträge: 14170
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von Xel66 » 12.11.2023, 13:34

MarKiesCo hat geschrieben:
12.11.2023, 12:07
Die Frage dazu:
Macht es eigentlich Sinn mein zweites Programm einmal täglich laufen zu lassen, um zu identifizieren, ob sich der Batteriestatus über einen längeren Zeitraum (Stunden) manifestiert hat, und erst DANN die Batterie zu wechseln?
Mein eigenes Low-Bat-Programm triggert auf LOW_BAT-Ereignisse jedes einzelnen verODERten Geräts (ist ein Mal eine mächtige Klickarbeit) und ein Mal täglich um 10:00 Uhr. Es dient mir nur als Info und ich wechsle die Zellen nach der ersten Meldung. Warum? Kleine Story: Ich hatte/habe einen TFK, der über mehrere Wochen immer wieder ein LOW_BAT abgesetzt hat, welches aber immer wieder verschwand. Also habe ich es hingenommen und wollte warten, bis sich die Meldung persistiert und dann wechseln. Man will ja sparen. ;-)

Als ich mal wieder nicht zu Hause war und die Einbruchsversuchsmeldefunktion aktiv war, ging die Push-Alarmierung meines Smartphones los und meldete eine Öffnung eines Fensters bei Abwesenheit. Als derzeit einziger Bewohner des Hauses konnte ich Mitbewohner als Ursache ausschließen. Glücklicherweise war das ein Fenster, welches ich per Cam verifizieren konnte (war unversehrt und geschlossen), was meinen Blutdruck wieder auf Normalwerte senkte. Long story short: Die Zelle hatte aufgegeben (Spannungszusammenbruch) und der TFK hat als letztes ein "bin offen" abgesetzt (warum auch immer). Seitdem wechsle ich kurzfristig die Zellen nach der ersten Meldung. Ist meinem Blutdruck sehr dienlich. Allerdings hatte ich auch kürzlich zwei Bewegungsmelder, die kurz nacheinander die Funktion einstellten, ohne je ein LOW_BAT abgesetzt zu haben (per Historian geprüft).
MarKiesCo hat geschrieben:
12.11.2023, 12:07
Zusatzfrage :mrgreen: : Ich sehe das doch richtig? - dass so ein Zusatzprogramm, welches den Status 'LOW_BATT' abfragt, grundsätzlich keine Leistungseinbußen zu CCU ReGa oder Duty cycle hat, natürlich vorrausgesetzt es ist vernünftig programmiert?
Da nur die bei jeder Statusübermittlung auf der CCU zwischengespeicherte Daten dabei abgefragt werden, hat es auf den Duty Cycle keinen Einfluss. Gilt zumindest für Sensoren. Aktoren könnten theoretisch durchaus bei falscher Verwendung angesprochen werden. Darum immer mit .Value() und nicht mit .State() abfragen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

MarKiesCo
Beiträge: 71
Registriert: 11.04.2023, 21:07
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von MarKiesCo » 12.11.2023, 13:45

Xel66 hat geschrieben:
12.11.2023, 13:34
...als ich mal wieder nicht zu Hause war und die Einbruchsversuchsmeldefunktion aktiv war, ging die Push-Alarmierung meines Smartphones los und meldete eine Öffnung eines Fensters bei Abwesenheit. Als derzeit einziger Bewohner des Hauses ....
cooly Story, aus dem Leben gegriffen... :+1:
Xel66 hat geschrieben:
12.11.2023, 13:34
...Die Zelle hatte aufgegeben (Spannungszusammenbruch) und der TFK hat als letztes ein "bin offen" abgesetzt (warum auch immer) ....
das dachte ich mir auch so, aus dem Grund wollte ich auf die eierlegende Wollmilchsau von Alchys *allinclusive* auf gar keinen Fall verzichten, da die Notwendigkeit auf der Hand liegt.
Warum der status einer Batterie dann überhaupt zurück auf 'false' springt, wenn der Schwellwert dauerhaft unterschritten ist, erschließt sich mir dann noch nicht so ganz. Ist aber zweitrangig hier...

MarKiesCo
Beiträge: 71
Registriert: 11.04.2023, 21:07
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von MarKiesCo » 12.11.2023, 14:11

Xel66 hat geschrieben:
12.11.2023, 13:34
Mein eigenes Low-Bat-Programm triggert auf LOW_BAT-Ereignisse jedes einzelnen verODERten Geräts (ist ein Mal eine mächtige Klickarbeit) ...

Gruß Xel66
Das 'ODER' Programm hat den Nachteil nur den ersten Alert rauszuhauen, Nachfolgende werden ignoriert. Das ist Alchys schon zuverlässiger.

Kleiner Zusatz,
siehe wie folgt das Script was ich aufgesetzt habe, läuft einmal am Tag. Weniger klickarbeit, vielleicht hilft es dir ja:
(Kanal 0 der Batterieaktoren muss dem Gewerke 'Batterie' zugeordnet sein)

Code: Alles auswählen

var myAssembly = dom.GetObject("Batterie");
string itemID;
string low;
string device;
var item;
boolean flag=0;
boolean flag2=1;
integer runde=0;
string name="";
string temp="";

string liste = "57179;Aktion: Batteriewechsel Garage: Smarthome-speaker!;"
+ "8201;Aktion: Batteriewechsel Flur Bew-Melder Badlicht!;"
+ "1697;Aktion: Batteriewechsel Wohnhaus Bad: Fensterkontakt!;"
+ "13420;Aktion: Batteriewechsel Wohnhaus Flur: WLAN modul Klingel!;"
+ "1501;Aktion: Batteriewechsel Garage Aussen Torbereich: Aussenthermometer!;"
+ "11217;Aktion: Batteriewechsel Wohnhaus Schlafz.: Wandthermometer an Balken!);";

foreach(itemID, myAssembly.EnumUsedIDs()){

    item = dom.GetObject(itemID);
    device = dom.GetObject(item.Device());

    if(dom.GetObject(item).DPByHssDP("LOW_BAT").State()==true){

      while(flag2){
		  
        temp=liste.StrValueByIndex(";",runde);
        if(temp==itemID){
          name=liste.StrValueByIndex(";",runde+1);
        }
        runde=runde+2;
        if(temp==""){
            flag2=0;
            runde=0;
        }
      }

      if(name==""){name=device.Name().ToString();}
      if(flag==0){low=low+name;}
      if(flag){low=low+", "+name;}
      flag=1;
      flag2=1;
      name="";
    }
}

if(flag){
  string nachricht = low;
  dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=ABC -d user=XYZ -d message='"#nachricht#"' -d sound=SH_Stnd_Message http://api.pushover.net/1/messages.json");
  dom.GetObject("Batterie_Log").State(nachricht);

  }else{
  dom.GetObject("Batterie_Log").State("Keine_Batteriewarnungen!");
}
cheers, MarKiesCo
Zuletzt geändert von MarKiesCo am 12.11.2023, 14:23, insgesamt 1-mal geändert.

Xel66
Beiträge: 14170
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von Xel66 » 12.11.2023, 14:22

MarKiesCo hat geschrieben:
12.11.2023, 13:45
Warum der status einer Batterie dann überhaupt zurück auf 'false' springt, wenn der Schwellwert dauerhaft unterschritten ist, erschließt sich mir dann noch nicht so ganz. Ist aber zweitrangig hier...
Naja, es ist mit dem "dauerhaft" nur die halbe Wahrheit. Die "Messung" findet im Aktor selbst statt. Dieser übermittelt die Werte beim Ansprechen oder bei der zyklischen Statusmeldung. Das Funken benötigt auch etwas Strom, was die Spannung weiter zusammenbrechen lässt. Solche Werte werden übermittelt, der LOW_BAT ist aber abhängig von der internen Messung vor dem Funkpaket und besitzt sicherlich auch eine Hysterese, die sowas eigentlich verhindern soll, aber das Spannungsverhalten ist auch zelltypabhängig. Danach erholt sich die Spannung wieder und ist auch etwas abhängig von den Umgebungstemperaturen. Darum melden Rauchmelder auch ihre leeren Batterien "grundsätzlich" nachts, weil da meist die Raumtemperatur etwas durch die Heizungsabsenkung geringer ist. Beim Rauchmelder ist der kurze Verbrauch die zyklische Messung in der Rauchkammer. Aber anderes Thema, aber vergleichbare Ursache.

Übrigens: Mein LOW_BAT-Ansage-Script hat allein 53 verODERte Trigger (und das sind nur die Geräte, die einen triggernden LOW_BAT/LOWBAT-Datenpunkt besitzen). Aber das ist relativ übersichtlich. Hier wird im Script $src$ ausgewertet und mit einem Ansagetext und dem extrahierten Kanalnamen versehen und an das Echo-Script zur Ansage übergeben.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
robbi77
Beiträge: 13865
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von robbi77 » 12.11.2023, 14:36

findet im Aktor
/Sensor
So viele Batteriebetriebene Aktoren wird es nicht geben.

Xel66
Beiträge: 14170
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Abfrage Batteriestatus LowBat an BidCos-RF Geräten

Beitrag von Xel66 » 12.11.2023, 14:50

robbi77 hat geschrieben:
12.11.2023, 14:36
So viele Batteriebetriebene Aktoren wird es nicht geben.
Oh, Heizkörperthermostate, Keymatic/DLD, diverse PBC-Aktoren für Batteriebetrieb, Innensirene, auch den Garagentaster kann man Batterie-only betreiben. Es fallen mir bestimmt noch welche ein. Auch Rauchmelder sind letztendlich Aktoren (Alarmverteilung), obwohl ihre Hauptaufgabe eher sensorisch ist. Aber Du hast Recht "Sensoren/Aktoren" wäre richtiger. Aber der Sachverhalt bleibt gleich. Ich habe sogar einige netzversorgte Aktoren, die LOWBAT-Datenpunkte besitzen. ;-)

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“