FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: tboston am 12 Oktober 2016, 08:52:26

Titel: [gelöst] Battery Status für alle Geräte
Beitrag von: tboston am 12 Oktober 2016, 08:52:26
Hallo zusammen,

ich möchte gerne den Battery Status aller Max! Geräte in einem extra Raum sehen. Hat das jemand von euch schon realisiert?

Grüße,
Tony
Titel: Antw:Battery Status für alle Geräte
Beitrag von: Mitch am 12 Oktober 2016, 09:00:02
ReadingsGroup?
Titel: Antw:Battery Status für alle Geräte
Beitrag von: RaspiCOC am 12 Oktober 2016, 09:06:01
Habe das bei mir so gemacht:

define Batterie readingsGroup <Sensor>,<Batteriestatus>,<Status Datum/Zeit> *:battery
attr Batterie room Batteriestatus


Alle Devices, die ein "battery" liefern, werden dort gelistet.
Titel: Antw:Battery Status für alle Geräte
Beitrag von: tboston am 12 Oktober 2016, 09:08:30
Zitat von: Mitch am 12 Oktober 2016, 09:00:02
ReadingsGroup?

Genau was ich gesucht hatte, funzt!

Zitat von: RaspiCOC am 12 Oktober 2016, 09:06:01
Habe das bei mir so gemacht:

define Batterie readingsGroup <Sensor>,<Batteriestatus>,<Status Datum/Zeit> *:battery
attr Batterie room Batteriestatus


Alle Devices, die ein "battery" liefern, werden dort gelistet.

Danke für die Info!

Grüße,
Tony
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: carlos am 12 Oktober 2016, 09:27:09
Hi
Ich habe es so gemacht. Da hat man noch den BatteryLevel dabei:

define Batterie readingsGroup <%Batterie>,<Batterie>,<Batterielevel> .*:[Bb]attery,[Bb]atteryLevel
attr Batterie  alias      Batteriestatus
attr Batterie  mapping    %ALIAS
attr Batterie  notime     1
attr Batterie  room       Status
attr Batterie  valueFormat { batteryLevel => "%0d%" }
attr Batterie  valueIcon  {'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red'}


Gruß
Carlos
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: tboston am 12 Oktober 2016, 09:51:39
Zitat von: carlos am 12 Oktober 2016, 09:27:09
Hi
Ich habe es so gemacht. Da hat man noch den BatteryLevel dabei:

define Batterie readingsGroup <%Batterie>,<Batterie>,<Batterielevel> .*:[Bb]attery,[Bb]atteryLevel
attr Batterie  alias      Batteriestatus
attr Batterie  mapping    %ALIAS
attr Batterie  notime     1
attr Batterie  room       Status
attr Batterie  valueFormat { batteryLevel => "%0d%" }
attr Batterie  valueIcon  {'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red'}


Gruß
Carlos

batteryLevel scheint es als Reading nicht zu geben
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: carlos am 12 Oktober 2016, 10:10:16
Hi,
Kommt natürlich auf das device an, bei meinen Homematic Thermostaten  und meiner Withings Waage gibts den Batterylevel.
Aber man sieht halt den Level, wenn vorhanden.
Gruß
Carlos
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: Intruder1956 am 12 Oktober 2016, 10:13:03
hallo,
da stimmt aber mit dem Level etwas nicht, es wird nicht z.b. 2,9 Volt angezeigt, sondern 2%
Das ValueFormat ist demnach falsch.

gruß Werner
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: carlos am 12 Oktober 2016, 12:19:56
Da hast du Recht. Bei den Thermostaten ist der  BattaryLevel in Volt, bei anderen in %.
Auch wieder vom device typ abhängig.
Gruß
Carlos
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: AtomicOne am 19 Februar 2019, 23:13:26
Alter Thread, aber für mich gerade wieder aktuell.

Ich habe dies gemäß
https://www.meintechblog.de/2015/08/fhem-rechtzeitige-benachrichtigung-bei-leeren-batterien/ (https://www.meintechblog.de/2015/08/fhem-rechtzeitige-benachrichtigung-bei-leeren-batterien/)
gelöst.

Für den Anfang nicht schlecht, aber eigentlich hätte ich gerne das StateIcon direkt neben dem Sensor und nicht in einer extra Gruppe.

devStateIcon habe ich leider nicht hinbekommen :-/
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: Wzut am 20 Februar 2019, 06:42:24
Tipp : deine techblog Quelle ist hier nicht so gern gesehen, ganz besonders wenn sie auf Uralt Lösungen verweist.
Die gleiche Info hättest du auch im Wiki gefunden und deine Batterie solltest ab heute auch an die gewünschte Stelle bekommen  -> https://forum.fhem.de/index.php/topic,97586.msg908277.html#msg908277
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: AtomicOne am 20 Februar 2019, 08:22:00
Zitat von: Wzut am 20 Februar 2019, 06:42:24
Tipp : deine techblog Quelle ist hier nicht so gern gesehen
Ein solches Verhalten würde ich allgemein als arrogant bezeichnen, wenn man nicht auch andere Quellen außer der eigenen zulässt ...
Aber das ist leider ein sehr verbreitetes Forum-Phänomen (speziell bei technischen Angelegenheiten).
Und damit meine ich jetzt ausdrücklich NICHT DICH persönlich !

Zitat von: Wzut am 20 Februar 2019, 06:42:24
Die gleiche Info hättest du auch im Wiki gefunden und deine Batterie solltest ab heute auch an die gewünschte Stelle bekommen  -> https://forum.fhem.de/index.php/topic,97586.msg908277.html#msg908277
Da hast du absolut Recht, und nachdem ich den Wiki-Artikel zu devStateIcon nochmal vollständig gelesen habe, habe ich es gestern dann auch noch hinbekommen.
Ich hatte zu Anfang bloß zu simpel gedacht.
Mir war nicht bewusst dass man dort eine Mischung aus HTML und Perl eintragen muss und dass state und devStateIcon sich nicht gleichzeitig verwenden lassen.

Hiermit hat es in meinem Fall funktioniert.
{my $batterycolor = 'measure_battery_100@green';;$batterycolor='measure_battery_25@red' if (ReadingsVal($name, "battery", "low") eq "low");;"<div>" . ReadingsVal($name,"temperature",2) . "°C" . " / " . ReadingsVal($name,"humidity",2) . "%rel." . FW_makeImage("$batterycolor","batterie") . "</div>" }
Ich mache das heute Abend noch etwas hübscher. Aber ich habe die Syntax jetzt begriffen.
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: Wzut am 20 Februar 2019, 09:09:58
Zitat von: AtomicOne am 20 Februar 2019, 08:22:00
Ein solches Verhalten würde ich allgemein als arrogant bezeichnen, wenn man nicht auch andere Quellen außer der eigenen zulässt ...
[OT:on]
das mag zwar auf den ersten Blick so rüberkommen, Hintergrund ist aber das sehr oft gerade im Anfängerforum User mit irgend welchen uralt Codeschnipsel auftauchen und um Hilfe rufen, da FHEM sich inzwischen weiter entwickelt hat der Blog aber leider stehen geblieben ist.
Das FHEM Wiki mag auch oft der Entwicklung etwas hinter her laufen, aber es wird doch versucht (dank vieler Hände) so gut es geht Schritt zu halten.     
[OT:off]

Zitat von: AtomicOne am 20 Februar 2019, 08:22:00
Ich mache das heute Abend noch etwas hübscher. Aber ich habe die Syntax jetzt begriffen.
IMHO kannst das noch eleganter lösen wenn du das von mir verlinkte heute Update von 01_FHEMWEB berücksichtigst.
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: AtomicOne am 21 Februar 2019, 08:43:21
Danke an wutz.
Gestern bin ich leider nicht mehr dazu gekommen es zu probieren, aber dein Vorschlag ist exakt das was ich gesucht hatte.

Dazu jetzt allerdings drei fragen ...

1. Wo sehe ich auf welcher Version mein FHEM gerade läuft?
2. Kann ich die 01_FHEMWEB einfach tauschen ?
3. Kann ich meine FHEM-Instanz auch auf Basis eines aktuellen Checkout laufen lassen, und mit svn update laufe ich immer auf dem gerade aktuellen trunk !?

Mir ist klar dass im trunk ständig Änderungen gemacht werden (ich arbeite selbst täglich beruflich in der Software-Entwicklung).
Mir geht es darum, was die Erfahrungen sind bzgl. der trunk Versionen.
FHEM ist ja nicht erst gestern entstanden, somit dürften die Änderungen meist nur kleinerer Natur sein, oder spezielle Module betreffen ... (?)

Ansonsten ist die 2. Frage entscheidend.
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: AtomicOne am 23 Februar 2019, 21:56:44
So, nachdem ich keine Antwort bekommen habe und ich drei Tage lang auch keine Zeit hatte ...

Ich habe einfach mal 'update' in die commandline eingetragen.
Ob ich nun die entsprechende 01_FHEMWEB habe ...  ???
'verison' sagt zumindest dass das File vom 20.02.2019 ist.

Aber so richtig klappen will es bei mir leider noch nicht.
Ich komme ehrlich gesagt auch oft mit den Beispielen nicht richtig klar.
Es entsteht jedes mal das Gefühl bei mir es würde irgendwie noch etwas an Information fehlen.

Mir ist überhaupt nicht richtig klar wie die Werte aus 'devStateIcon', 'stateFormat', 'setstate', 'webCmd' und 'setList' zusammenhängen.
Wie beeinflussen sich diese Felder gegenseitig ?

Eigentlich will ich für einen Temperatur-/Feuchtigkeits-Sensor nur folgendes erreichen ...

<table>
<tr>
<td>temperature&deg;C</td>
<td rowspan=2>battery</td>
</tr>
<tr>
<td>humidity%rel.</td>
</tr>
</table>


Trage ich exakt diesen Code in 'stateFormat' ein, wird komischer 'battery' nur als "ok" angezeigt.

trage ich hingegen folgendes ein:

temperature&deg;C<br>
humidity%rel.<br>
battery


dann bekomme ich für die Batterie das Icon angezeigt wie es unter 'devStateIcon' definiert ist

ok:batterie@green low:batterie@red

Das finde ich unlogisch.
'<br>' ist ein HTML-Tag. Also schließe ich daraus dass ich auch andere HTML-Tags verwenden kann.
Das scheint aber nicht so zu sein.

Ich möchte die Messwerte links haben und die Batterie rechts daneben.
Aber eben mittig (rowspan=2).

'readingList' kann ich zum Beispiel überhaupt nicht definieren, das Attribut existiert bei meinem Sensor nicht.

Kann mir jemand helfen das zu verstehen ?
Ich fürchte einfach bei mir ist der Knoten noch nicht so ganz geplatzt ...
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: Wzut am 24 Februar 2019, 08:39:23
Um den Knoten zu lösen würde ich mit https://forum.fhem.de/index.php/topic,19621.0.html beginnen.
Ich habe das damals (2014) zuerst auch ignoriert, aber irgendwann kam ich mit copy & paste nicht weiter und war schon kurz davor FHEM wieder zu löschen :)

Der Patch von Andre hatte das simple Ziel mehr als ein stateIcon anzuzeigen, wenn du da komplette HTML Formatierung reinpacken willst wirst du wohl auf die Perl Variante wechseln müssen , siehe hier ->  https://forum.fhem.de/index.php?topic=97573.msg908143#msg908143

readingList kannst du nicht benutzen weil dein Device dieses nicht hat, es ist ein Attribut das zum Device Typ dummy gehört.
Andre hat sein Beispiel halt auf einem Dummy gesetzt und da Dummys von Haus aus keine Readings haben (im Gegensatz zu deinem Sensor) musste
er das benutzen,
Titel: Antw:[gelöst] Battery Status für alle Geräte
Beitrag von: justme1968 am 24 Februar 2019, 10:02:00
@AtomicOne: ja. es ist im prinzip auch anderes html möglich. aber es gibt ein paar randbedingungen.

wichtig: devStateIcon hat bisher auf dem kompletten inhalt von STATE gearbeitet. d.h. wenn die regex matched wird STATE komplett durch das icon ersetzt. wenn nicht bleibt sie wie sie ist.

um rückwärts kompatibel zu bleiben kann man das nicht einfach ändern. die einzige Erweiterung die möglich war: statt alles auf ein mal zu bearbeiten wird jetzt zeilenweise gearbeitet. d.h. jede zeile von STATE wird einzeln betrachtet. wenn eine zeile machte wird sie durch das icon ersetzt. wenn nicht bleibt sie wie sie ist und die nächste zeile kommt drann. alle ergebnisszeilen werden dann nebeneinander gesetzt.

daraus folgt z.b.: wenn die die html tags in der gleichen zeile hat wie das reading:
- matched deine devStateIcon regex nicht mehr wenn du sie nicht anpasst
und/oder
- wird die komplette zeile inklusive html durch das icon ersetz
d.h: die html tags dürfen nicht in der gleichen zeile stehen wie ein icon.
ebenfalls wichtig: die readings werden nur ersetz wenn sie als eigene worte (d.h. mit whitespace davor und dahinter) erkannt werden.

etwas in der art:<table><tr><td> temperature &deg;C</td><td rowspan=2>
battery
</td></tr><tr><td> humidity %rel.</td></tr></table>
oder<table>
<tr><td> temperature &deg;C</td>
<td rowspan=2>
battery
</td></tr>
<tr><td> humidity %rel.</td></tr>
</table>

könnte gehen (ungetestet).


der inzwischen eingebaute patch ist dazu da auf einfache weise und rückwärts kompatibel für mehrere readings gleichzeitig ein icon anzuzeigen.

wenn du wert auf eine besondere formatierung legst kommst du weiterhin nicht um die perl variante herum.



neben dem pdf: fang hier: https://wiki.fhem.de/wiki/DevStateIcon (https://wiki.fhem.de/wiki/DevStateIcon) an zu lesen. inklusive der ganzen links. vor allem auch diesen hier: https://forum.fhem.de/index.php/topic,12080.msg71651.html#msg71651 (https://forum.fhem.de/index.php/topic,12080.msg71651.html#msg71651)