BatterieMonitor - Modul zum Überwachen von "Batterie-Variablen" (Lowbat, Low Battery)

Ho ho ho :smiley:

Unser täglich Geschenk gib uns heute :slight_smile:
Heute in Gestalt vom >> BatterieMonitor

Dieses Modul liest alle Batterie-Variablen von Aktoren aus, gibt die Informationen in einem Array zurück, stellt alle
Batterie-Aktoren in einer Tabelle dar und erzeugt eine 2. Tabelle mit allen Aktoren die eine leere Batterie haben.

Aktuell unterstützte Hersteller:

  • FHT
  • FS20 HMS
  • HomeMatic
  • Z-Wave

Benachrichtigung:
Je nachdem, ob eine Benachrichtigung per EMail/Push/Skript gewünscht ist, muss noch die entsprechende Instanz ausgewählt und auf aktiv
gesetzt werden (Haken setzen). Eine Benachrichtigung erfolgt IMMER wenn eine leere Batterie erkannt wird! Wechselt ihr eine Batterie nicht,
dann werdet ihr im Update-Intervall jeweils erneut benachrichtigt, bis die Batterien gewechselt wurden. Außerdem könnt ihr eine Boolean-Variable
definieren und damit die Benachrichtigungen steuern (Bool-Variable TRUE = Benachrichtigung, FALSE = keine Benachrichtigung).

  • Pro Aktor mit leerer Batterie wird eine Benachrichtigung gesendet! Bei 3 leeren Aktoren sind das 3 Benachrichtigungen!

Ihr könnt auch ein eigenes Skript festlegen, welches zur Benachrichtigung verwendet wird. Dieses Skript wird bei Erkennung eines Aktor mit
leerer Batterie ausgeführt. Hier kann man dann Benachrichtigungen über Sonos, Enigma2-Nachricht, SMS, … einrichten.

Für eigene Aktionen stehen einem im ausgewählten Skript die folgenden Variablen zur Verfügung:

$_IPS["BMON_Name"] (Name des Aktor)
$_IPS["BMON_ParentName1"] (Name des Parent-Objekt1 vom Aktor)
$_IPS["BMON_ParentName2"] (Name des Parent-Objekt2 vom Aktor)
$_IPS["BMON_ParentName3"] (Name des Parent-Objekt3 vom Aktor)
$_IPS["BMON_Hersteller"] (Hersteller des Aktor)
$_IPS["BMON_ID"] (ID/Serial des Aktor)
$_IPS["BMON_Batterie"] (Batteriezustand OK/LEER)
$_IPS["BMON_Text"] (Der Benachrichtigungstext inkl. "Übersetzung" der Variablen)
$_IPS["BMON_LetztesUpdateTS"] (Datum und Uhrzeit, wann die Batterie-Variable zuletzt aktualisiert wurde)
$_IPS["BMON_LetztesUpdateSEK"] (Sek. seit letzter Aktualisierung der Batterie-Variable)

Beispiel-Skript für eigene Aktion:

<?
$Enigma2BYinstanzID = 12345; // InstanzID des Enigma2-Modul eintragen
IPS_LogMessage("BatterieMonitor", $_IPS["BMON_Text"]); // Schreibt den Text ins IPS-Log (zu sehen im Meldungen-Fenster in der IPS-Console)
Enigma2BY_SendMsg($Enigma2BYinstanzID, $_IPS["BMON_Text"], 3, 10); // Zeigt 10 Sekunden lang eine Alarm-Nachricht über einen Enigma2-Receiver an
?>

In der Modul-Instanz könnt ihr folgende Einstellungen vornehmen:

  • Hintergrundfarbe (HEX Farbcode)
  • Textfarbe (HEX Farbcode)
  • Textfarbe OK (HEX Farbcode)
  • Textfarbe LEER (HEX Farbcode)
  • Textgröße
  • Textausrichtung (links,zentriert,rechts)
  • Namen von bis zu 3 übergeordneten Objekten (Parents) + Anzeige in HTML-Tabelle
  • Aktualisierungsintervall (std. 21600 Sek = 6 Std)
  • Benachrichtigungseinstellungen (Push-Nachricht, EMail, Skript)
  • Benachrichtigungsversand über Variable steuern (true=Benachrichtigung,false=keine Benachrichtigung) - z.B. IPS-Location-Variable „Ist es Tag“

Wo finde ich weitere Informationen über das Modul?

Hier: BayaroX/BY_BatterieMonitor - GitHub

Wie installiere ich das Modul?
Updates und neue Module gibt es nur noch hier >> https://bayaro.lima-city.de

Zur Visualisierung kann man einfach die Instanz(en) ins WebFront verlinken. Oder selbst etwas anderes bauen :slight_smile:


>> Als Name für den Aktor wird der IPS-Name der Instanz vom Aktor genommen! Und weil es mein Test-IPS ist, haben die bei mir aktuell keine Namen, also nicht wundern :slight_smile:

Wenn ich noch weitere Hersteller einbauen soll, dann brauche ich die IPS-Modul-ID vom Hersteller und noch den Ident der Variable in der mit true/false steht, ob die Batterie vom Aktor leer oder Ok ist!
InstanzID kann mit diesem Skript ermittelt werden - Ergebnis davon und Variablen-Ident an mich senden:

<?
$InstanzIDvomAktor = 12345;  // Hier die InstanzID vom Aktor eintragen
$result = IPS_GetInstance($InstanzIDvomAktor);
print_r($result)
?>

Changelog
[b]Version 1.0:

  • Erster Release

Version 1.1:

  • NEU # Textausrichtung in den HTML-Tabellen kann eingestellt werden (links,zentriert,rechts)
  • NEU # Benachrichtigung, wenn Aktoren mit leeren Batterien erkannt wurden (Push-Nachricht, EMail, Skript)
  • NEU # Weitere Daten vom Aktor (Hersteller, ID, Letztes Variablen-Update Timestamp, Zeit in Sekunden seit letztem Variablen-Update)
  • FIX # Doppelte Aktoren-Einträge werden aus Array/HTML-Tabelle entfernt (der 1. gefundene Eintrag wird behalten)

Version 1.2:

  • NEU # Sortierung von Array und HTML-Tabellen einstellbar (nach Name, Parent-Name [wenn aktiv], Hersteller, ID, …)
  • NEU # Test-Benachrichtigung (mit fiktiven Daten, aber eigenem Text) kann aus der Instanz gesendet werden

Version 1.3:

  • NEU # Benachrichtigungsversand über Variable steuern (wenn Variable TRUE, dann Benachrichtigungen senden, wenn FALSE, dann nicht)
  • NEU # Bis zu 3 Namen von Parent-Objekten können ausgelesen werden (z.B. Etage, Raum und Gebäude) und sind dann in Array und
    den HTML-Tabellen verfügbar. Maximal kann man 9 Ebenen nach oben gehen, zum Auslesen der Namen.[/b]

Grüße,
Chris

Hallo
Du kennst wohl genau wie ich kein Weihnachten :wink:
Haette gerne meine FS20 Temperaturfuehler in deinem Modul.
Info:

    [Vendor] => ELV
    [Aliases] => Array
        (
            [0] => HMS100 T
            [1] => HMS100 TF
            [2] => HMS100 TFK
            [3] => HMS100 W/WD
            [4] => HMS100 RM
            [5] => HMS100 X
            [6] => HMS100 MG
            [7] => HMS100 PG
            [8] => HMS100 CO
            [9] => HMS FIT
        )

    [LibraryID] => {0945206A-47AA-4FDD-9093-99051E410E82}
    [ModuleID] => {2FD7576A-D2AD-47EE-9779-A502F23CABB3}
    [ModuleName] => HMS
    [ModuleType] => 3

Ident ist „LowBatteryVar“

Vielen Dank schon mal.

Mensch Chris, mal wieder was brauchbares hervorgebracht. [emoji106]

@1007: Klar kenne ich Weihnachten, deshalb doch die Module als Geschenke für euch :cool: :smiley:
FS20 HMS >> Ist eingebaut, bitte updaten, testen und berichten :slight_smile:

@Boui: So etwas von dir geht runter wie Öl auf einem heißen eingeölten Frauenkörper :smiley: :smiley: Danke :slight_smile:

Grüße,
Chris

Ups, sorry, bitte nochmal updaten - ich hatte eine Variable „missverständlich“ benannt. Also bitte die Instanz nochmal löschen und am Besten neu Erstellen :rolleyes: sorry :smiley:

Weil die Variable:
Batterie Aktoren - Vorhanden

…sollte diesen Namen/Sinn haben:
Batterie Aktoren - Leere vorhanden

>> Wer erst jetzt zum 1. Mal das Modul lädt/installiert, bekommt direkt die neue Version und muss nichts weiter beachten!

Und es wurde schon gewünscht, dass ich die Zeit in der Tabelle daneben schreibe, wann die Lowbat-Variable das letzte Mal aktualisiert wurde. Kommt dann mit dem nächsten Update (vmtl. optional aktivierbar für die Tablle) :cool:

-Chris-

Guten Abend :slight_smile:
Also FS20 funktioniert, im Prinzip :slight_smile:
Im Moment hab ich nur zwei Fragen.
Dein Bild in Post 1 zur Visualisierung , ist IOS ?
Wenn ich bei meinem iPhone auf Tabelle gehe wird ein neues „Fenster“ aufgemacht und nicht wie auf dem Screenshot.
und
ich hab jetzt einen Eintrag „Batterie Aktoren-Leere vorhanden Ja“ ??

Sind die FS20 Variablen bei dir, wenn eine Batterie leer ist auf TRUE oder FALSE? Steht bei der Anzahl der Aktoren mit Batterie auch eine andere Zahl als 0?

Der Screenshot ist aus meinem WebFront am Computer gemacht. Beim Handy wird eine neue Seite geöffnet, weil der Inhalt (die Tabelle) in einer HTMLBox steckt.

Grüße,
Chris

Schönes Modul. herzlichen Dank
Für den Fall das keine Batterie betriebene Aktoren in IPS installiert sind gibt es noch ein paar Fehlermeldungen :

2x.JPG

Ähm…ok :smiley: Daran hab ich nicht gedacht :smiley: Weil wenn man keine Batterie-Aktoren hat, braucht man das Modul nicht :rolleyes: Aber stimmt schon, werde das auch noch abfangen :slight_smile:

Vielen Dank für den Fund!

-Chris-

Das sieht richtig aus bei mir


Nur musste ich bei Schriftgroesse auf 50 gehen um am Handy etwas zu sehen.
Koennte vielleicht Problem mit anderen Geraeten geben.
FALSE ist Batt OK , also alles gut.
Vielleicht ist meine Wetterstation KS300 die liefert keinen Batteriestatus.
Super waere ein Meldung wie beim HostMonitor.

@BestEx: Update dazu ist online, bitte mal prüfen, ob die Fehler jetzt weg sind und in der Tabelle angezeigt wird, dass keine gar keine Aktoren mit Batterien vorhanden sind. Danke!

@1007: Hmmmm…Meldungen wie beim HostMonitor…gefällt mir irgendwie :cool: Glaube das baue ich noch ein :slight_smile: Danke!
Und bzgl. Schriftgröße in der Mobile-App >> Beim iPhone 6 mit iOS 9.2 hab ich da keine Probleme. Alles normal von der Schriftgröße :confused: Magst du mal einen Screenshot davon machen bitte?

Grüße,
Chris

Bei mir sagt er nun: Du hast zu viele batteriebetriebene Geräte. Denke bitte an die Umwelt!"

Was hast denn da gemacht?

Scherz beiseite, @BestEx, wie kommt man denn darauf, so ein Modul zu installieren, wenn man keinen Bedarf dafür hat.
Nur weil es umsonst ist oder bist Du Fanboy?

:D:D:D

:smiley: :smiley: Deswegen hatte ich diesen Fall auch nicht gesondert abgefangen :smiley: Aber sowas ist mal ein richtiger Beta-Tester daumen hoch :cool: Nimm dir mal ein Beispiel an ihm :stuck_out_tongue: :wink:

So sollte das in einer Community sein! Einer (in dem Fall ich) schreibt eine Basis, andere bringen ihre Ideen/Erfahrungen mit ein und Stück für Stück wird daraus ein „perfektes“ Modul :cool: Um so mehr sich beteiligen an diesem „Schema“, desto mehr geniale Projekte gibt es :slight_smile:

Grüße,
Chris

Also so sieht es jetzt aus. Anzahhl stimmt , aber immer noch leere vorhanden.


Das war die Standardardeinstellung Groesse 11 !
Dann noch auch etwas , leider … sollte nicht

	$a = BMON_Alle_Auslesen(19872 /*[Hardware\Batterien\BatterieMonitor]*/);
	print_r($a);

mir ein array liefern ?
Tut es nicht.

Sind die Variablen die er als „LEER“ meldet auf FALSE oder auf TRUE? Also „Haustuer Kontakt“ und „Rauchmelder Schlaf“? Der wird ja nicht erfinden, dass die auf TRUE sind?! :smiley: Bitte mal genau prüfen, was da los ist. Danke!

Bzgl. Rückmeldung der Funktionen…sorry…war ein Tippfehler von mir im Skript > Update online! :slight_smile:

>> Und noch ein Fix > Wenn man den Batterie-Status über eine der Funktionen ausgelesen hat, dann hat er zwar das Array jetzt richtig zurückgegeben, aber die Variablen „Anzahl leerer Batterien“ und „Leere Batterie vorhanden“ wurden nicht aktualisiert :rolleyes: Jetzt passt das auch :slight_smile:

Sooo…genug für heute…gute Nacht!
-Chris-

Die Beiden sind die einzigen die ZWave sind und sind auf TRUE , also leer.
Und zwar seit Wochen. Aber das ist ein anderes Thema. Batterie getauscht, Meldungen kommen aber Status
Batterie aendert sich nie. Batterie ist am Anfang 100% dann schlagartig 0% und nie wieder irgendetwas anderes.
Da ist FS20 sogar zuverlaessiger :-(((

Hallo Chris,
vielen Dank für das schöne Weihnachtsgeschenk - gefällt mir sehr gut. Meine Homematic-Rauchmelder werden im Batteriemonitor nicht angezeigt. Grund ist vermutlich, dass ich bei dem Device nur die Variablen „Status“ und „INSTALL_TEST“ habe, aber keine Variable „Batterien“ wie bei den anderen HM-Devices. Kann ich das irgendwo ändern?

Schön wäre es, wenn in der Übersicht des Batteriemonitors auch die Räume mit angegeben würden, da ich Aktoren und Sensoren mit gleichem Namen in unterschiedlichen Räumen habe, die sich ansonsten nicht eindeutig identifizieren ließen.

Vielen Dank noch mal und Grüße
Peter

[QUOTE=PumpkinEater;275483
Schön wäre es, wenn in der Übersicht des Batteriemonitors auch die Räume mit angegeben würden, da ich Aktoren und Sensoren mit gleichem Namen in unterschiedlichen Räumen habe, die sich ansonsten nicht eindeutig identifizieren ließen.
[/QUOTE]
Genau das gleiche Problem hab ich auch. Vielleicht sollte man einfach den Text der Beschreibung der Instanz nehmen wenn vorhanden.

Moin allerseits :slight_smile:

@1007: Für die Probleme mit Z-Wave bin ich nicht verantwortlich, da kann ich dir also leider nicht helfen. Aber in Zukunft siehst du schneller, wenn da was gemeldet wird :wink:

@PumpkinEater: Bitte und gerne :slight_smile:
HM-Rauchmelder habe ich auch im Einsatz und meine werden angezeigt :eek:
HMrauchmelderInstanzen.png

Da sind wir auch schon bei dem Problem mit den Namen - meine Benennung siehe Screenshot vom Rauchmelder. Damit habe ich das Problem von Anfang an erschlagen und komme so immer leicht an Name/Bezeichnung + Raum.
Ich habe länger überlegt, woher ich die Namen nehmen soll. Der eine hat die Instanz korrekt benannt mit allen Infos, der andere hat noch eine DummyInstanz darüber mit dem Namen, der andere hat wieder darüber noch den Namen mit dem Stockwerk, wieder ein anderer hat es in der Beschreibung stehen, usw. usw. usw.
> Also habe ich mir für das vmtl. meist verwendete entschieden > Den Namen der Instanz verwenden.
Eine Lösung die einfach für alle passt gibt es nicht (leider) und einstellbar werde ich es auch nicht machen.

Grüße,
Chris

…funktioniert mit HM perfekt!

Besten Dank für das Geschenk :smiley: