ReadingsChange: Unterschied zwischen den Versionen
(Initiale Fassung: Anlass Problematik mit event-on-*-Atrributen) |
Kpwg (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
|ModCmdRef=readingsChange | |ModCmdRef=readingsChange | ||
|ModTechName=33_readingsChange.pm | |ModTechName=33_readingsChange.pm | ||
|ModForumArea=Automatisierung}} | |ModForumArea=Automatisierung | ||
|ModOwner=rudolfkoenig ({{Link2FU|8|Forum}} / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])}} | |||
Eventuell ist es nötig, die Readings eines Gerätes zu formatieren, Ihnen also Nachkommastellen abzuschneiden oder Textinhalte zu entfernen, hinzufügen oder umzustellen. | 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-[[:Kategorie:Hilfsmodul|Hilfsmodul]] [[ | Hierzu dient das FHEM-[[:Kategorie:Hilfsmodul|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 === | === Definition === | ||
Die Definition ist | Die Definition ist vom Modulautor in der Referenz beschrieben. | ||
== Besonderheiten == | == Besonderheiten == | ||
Zeile 21: | 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}} | ||
* [[Z-Wave-PHI_PST02-1A-T%C3%BCr-,_Bewegungs-,_Helligkeits-,_Temperatursensor#Temperaturkorrektur|Beispiel zu Temperaturoffset]] | |||
[[Kategorie:HOWTOS]] | [[Kategorie:HOWTOS]] |
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