Autor Thema: [gelöst] Battery Status für alle Geräte  (Gelesen 5304 mal)

Offline Wzut

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 2801
Antw:[gelöst] Battery Status für alle Geräte
« Antwort #15 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,
Maintainer der Module: MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19610
Antw:[gelöst] Battery Status für alle Geräte
« Antwort #16 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 an zu lesen. inklusive der ganzen links. vor allem auch diesen hier: https://forum.fhem.de/index.php/topic,12080.msg71651.html#msg71651
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH