Autor Thema: Batteriewarnung - Homematic & Aqara  (Gelesen 613 mal)

Offline link611

  • Full Member
  • ***
  • Beiträge: 114
Batteriewarnung - Homematic & Aqara
« am: 07 November 2019, 15:38:14 »
Servus,

seit gestern habe ich in meiner Installation auch Aqara Sensoren, die brav ihren Batteriestatus übermitteln.

Jetzt habe ich seit Urzeiten die Batteriewarnung wie im Wiki beschrieben.

Jetzt melden die Aqara Sensoren aber nicht ok sondern einen Wert 100, 95, etc.

Ich sitze jetzt schon ewig rum um das Notify entsprechend anzupassen, aber ich komme nicht weiter....

vielleicht kann mir ja jemand helfen.

.*:[Bb]attery:.* { if(($EVENT !~ m/ok/) || ($EVENT eq "15")) { fhem ("set Pushover msg 'Batteriewarnung' '$NAME $EVENT' '' 0 ''");}}

prinzipiell müsste ich ja nur die erste Bedingung abändern zu eq low, das scheint aber nicht zu funktionieren....

Ist es vielleicht alternativ möglich die Sensoren aus der Readingsgroup auszuschließen und dafür eine eigene zu machen?


-------
edit


habe es jetzt so abgeändert:

.*:[Bb]attery:.* { if(("$EVENT" eq "battery:low") || ("$EVENT" eq "Battery:low") || ("$EVENT" eq "battery:15")) { fhem ("set Pushover msg 'Batteriewarnung' '$NAME $EVENT' '' 0 ''");}}
damit scheint es zu klappen, aber geht das nicht einfacher?
« Letzte Änderung: 07 November 2019, 15:57:46 von link611 »

Offline pflaume88

  • New Member
  • *
  • Beiträge: 5
Antw:Batteriewarnung - Homematic & Aqara
« Antwort #1 am: 03 Januar 2020, 10:47:27 »
Hallo

ich habe etwas versucht.
Hier ein Notify für die Batteriewarnung mit selbst zu definierenden Grenz bzw Schaltwerten.

########################################################

.*:[Bb]attery:.*|.*:[Bb]atteryS:.*|.*:[Bb]attery_level:.*


{
## Dies ist beliebig erweiterbar und kann auf und für viele Batterie "Readings" reagieren.
## Es spielt keine Rolle ob ein Wert oder ein Wort übergeben wird, es muss über den Fall angebpasst werden.

## Hier werden die Texte definiert die gesendet werden sollen.
my $text1 = 'FHEM Batteriewarnung!!!\n';
my $text2 = ': Batterie=';
my $text3 = '\nBatterien sollten demnächst gewechselt werden!';

## EVENT wir geteielt in zwei Parameter $read und $para.
## $raed ist das Reading vom Gerät und $para der Wert des Readings.
my ($read, $para) = split(/:/, $EVENT, 2);
## Zurück setzen der Variable für die Nachricht bzw. Warnung.
my $warn = '';
## Zu definieren ist das Reading vom Gerät und der "Grenzwert".
## In diesen Fall ist "battery" das Reading und "low" der Grenzwert.
if ($read eq 'battery' && $para eq 'low') {$warn=1}
if ($read eq 'Battery' && $para eq 'low') {$warn=1}   
## In diesen Fall ist "25" der Grenzwert, weil bei diesen Reading der Batteriestatus in Prozent übergeben wird.   
if ($read eq 'battery_level' && $para < '25') {$warn=1}
if ($read eq 'Battery_level' && $para < '25') {$warn=1}

## Wenn der Wert $warn = 1 wird eine Nachricht gesendet.   
if ($warn eq '1')
   {
     ## Dies dient dazu den Aliasnamen zu übergeben und den tazächlichen Wert des Readings zu übertragen.
    ## In diesen Fall über Telegram.
    my $geraet = AttrVal($NAME,'alias','');
    my $wert = ReadingsVal($NAME,$read,'');
     fhem ("set Telegram message $text1$geraet$text2$wert$text3");   
      }

}
################################################

Bei funktioniert es mit verschiedenen Readings.
Verbesserungen sind gewünscht.

Viel Spaß damit.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline link611

  • Full Member
  • ***
  • Beiträge: 114
Antw:Batteriewarnung - Homematic & Aqara
« Antwort #2 am: 12 Februar 2020, 15:57:52 »
Hallo

ich habe etwas versucht.
Hier ein Notify für die Batteriewarnung mit selbst zu definierenden Grenz bzw Schaltwerten.

########################################################

.*:[Bb]attery:.*|.*:[Bb]atteryS:.*|.*:[Bb]attery_level:.*


{
## Dies ist beliebig erweiterbar und kann auf und für viele Batterie "Readings" reagieren.
## Es spielt keine Rolle ob ein Wert oder ein Wort übergeben wird, es muss über den Fall angebpasst werden.

## Hier werden die Texte definiert die gesendet werden sollen.
my $text1 = 'FHEM Batteriewarnung!!!\n';
my $text2 = ': Batterie=';
my $text3 = '\nBatterien sollten demnächst gewechselt werden!';

## EVENT wir geteielt in zwei Parameter $read und $para.
## $raed ist das Reading vom Gerät und $para der Wert des Readings.
my ($read, $para) = split(/:/, $EVENT, 2);
## Zurück setzen der Variable für die Nachricht bzw. Warnung.
my $warn = '';
## Zu definieren ist das Reading vom Gerät und der "Grenzwert".
## In diesen Fall ist "battery" das Reading und "low" der Grenzwert.
if ($read eq 'battery' && $para eq 'low') {$warn=1}
if ($read eq 'Battery' && $para eq 'low') {$warn=1}   
## In diesen Fall ist "25" der Grenzwert, weil bei diesen Reading der Batteriestatus in Prozent übergeben wird.   
if ($read eq 'battery_level' && $para < '25') {$warn=1}
if ($read eq 'Battery_level' && $para < '25') {$warn=1}

## Wenn der Wert $warn = 1 wird eine Nachricht gesendet.   
if ($warn eq '1')
   {
     ## Dies dient dazu den Aliasnamen zu übergeben und den tazächlichen Wert des Readings zu übertragen.
    ## In diesen Fall über Telegram.
    my $geraet = AttrVal($NAME,'alias','');
    my $wert = ReadingsVal($NAME,$read,'');
     fhem ("set Telegram message $text1$geraet$text2$wert$text3");   
      }

}
################################################

Bei funktioniert es mit verschiedenen Readings.
Verbesserungen sind gewünscht.

Viel Spaß damit.

Hey, danke für das Script,
habe es eben eingebaut und um HM IP erweitert.
Mal sehen ob es klappt.

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 6833
  • NIVEAu ist keine Creme...
Antw:Batteriewarnung - Homematic & Aqara
« Antwort #3 am: 12 Februar 2020, 16:31:08 »
Sowas in der Art gibt es auch hier ;)

https://forum.fhem.de/index.php/topic,82637.msg747514.html#msg747514

Gruß, Joachim
FHEM 5.9 PI3: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 3x EnOcean, HUE, CO2, ESP-Multisensor, FireTV, KODI, alexa-fhem, ...
FHEM 5.9 PI2: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM 5.9 PI3 (Test): HM-MOD-PCB, Snips, Google Home, ...

 

decade-submarginal