ReadingsChange: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) K (defekten Link korrigiert) |
Kpwg (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 22: | Zeile 22: | ||
Hier spielt eine wichtige Rolle die Notify-Order, die man mit list .* NTFY_ORDER sich vor Augen führen kann. | Hier spielt eine wichtige Rolle die Notify-Order, die man mit list .* NTFY_ORDER sich vor Augen führen kann. | ||
== Beispiele == | |||
Es soll das Reading "battery" für den Batteriestatus mehrerer HUE-Devices (Bewegungsmelder), welche einen numerischen Wert zwischen 0 und 100 liefern, in "ok" oder "low" übersetzt werden. Die Schwelle von 30% für "low" ist an dieser Stelle nur beispielhaft. | |||
:<code>define rc_battState readingsChange HUEMotion. ^battery$ (\d+) {$1 > 30 ? "ok" : "low"}</code> | |||
Beim Homematic-Zähler HM-ES-TX-WM wird der übermittelte Wert von ''powerIEC'' nicht als "signed integer() (-2.147.4483.648 ... 2.147.483.647)" sondern als "unsigned integer() oder DWORD ( 0... 4294967295 )" interpretiert und damit entsprechend falsch angezeigt. Sofern der Zähler nur für den Bezug von Energie genutzt wird, tritt der Fehler nicht auf, um jedoch negative Leistungswerte (z.B. durch Einspeisung Balkonkraftwerk) richtig anzuzeigen, wird folgende Zeile nach Anpassung des Devicenamens helfen: | |||
<code>define rc_Zaehler_neg readingsChange HM_3BD456_IEC_01 powerIEC (\d+) { $1 > 400000000 ? $1-4294967295 : $1}</code> | |||
== Links == | == Links == | ||
* Forenthema zur {{Link2Forum|Topic=60226|LinkText=Vorstellung des Moduls}} | * Forenthema zur {{Link2Forum|Topic=60226|LinkText=Vorstellung des Moduls}} |
Aktuelle Version vom 29. Mai 2022, 13:21 Uhr
readingsChange | |
---|---|
Zweck / Funktion | |
Formatieren von Readings | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Automatisierung |
Modulname | 33_readingsChange.pm |
Ersteller | rudolfkoenig (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Eventuell ist es nötig, die Readings eines Gerätes zu formatieren, Ihnen also Nachkommastellen abzuschneiden oder Textinhalte zu entfernen, hinzufügen oder umzustellen.
Hierzu dient das FHEM-Hilfsmodul readingsChange. Sobald ein Reading vom Device erzeugt wird, dass dem RegEX des Moduls entspricht, wird die Formatierung, z.B. von 27.2852 zu 27.3 vorgenommen.
Definition
Die Definition ist vom Modulautor in der Referenz beschrieben.
Besonderheiten
ReadingsChange ist abhängig von der Reihenfolge der Events und deren interner Verarbeitung. In dieser "Nahrungskette" steht es ziemlich weit hinten, mit dem Ergebnis, dass zum Beispiel Devices mit Attributen wie event-on-Change-reading fallweise nicht formatiert werden. Dies erklärt dieser und sein folgender Forumseintrag: readingsChange funktioniert nicht mehr
Hier spielt eine wichtige Rolle die Notify-Order, die man mit list .* NTFY_ORDER sich vor Augen führen kann.
Beispiele
Es soll das Reading "battery" für den Batteriestatus mehrerer HUE-Devices (Bewegungsmelder), welche einen numerischen Wert zwischen 0 und 100 liefern, in "ok" oder "low" übersetzt werden. Die Schwelle von 30% für "low" ist an dieser Stelle nur beispielhaft.
define rc_battState readingsChange HUEMotion. ^battery$ (\d+) {$1 > 30 ? "ok" : "low"}
Beim Homematic-Zähler HM-ES-TX-WM wird der übermittelte Wert von powerIEC nicht als "signed integer() (-2.147.4483.648 ... 2.147.483.647)" sondern als "unsigned integer() oder DWORD ( 0... 4294967295 )" interpretiert und damit entsprechend falsch angezeigt. Sofern der Zähler nur für den Bezug von Energie genutzt wird, tritt der Fehler nicht auf, um jedoch negative Leistungswerte (z.B. durch Einspeisung Balkonkraftwerk) richtig anzuzeigen, wird folgende Zeile nach Anpassung des Devicenamens helfen:
define rc_Zaehler_neg readingsChange HM_3BD456_IEC_01 powerIEC (\d+) { $1 > 400000000 ? $1-4294967295 : $1}
Links
- Forenthema zur Vorstellung des Moduls
- Beispiel zu Temperaturoffset