Reading: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „{{Baustelle}} Readings sind i.d.R. modulabhängig und geben zusammen mit Attributen und Internals den aktuellen Zustand des dahinter liegenden phy…“)
 
 
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Baustelle}}
Readings sind i.d.R. modulabhängig und geben zusammen mit [[Attribut|Attributen]] und Internals den aktuellen Zustand des dahinter liegenden physischen oder virtuellen [[Gerät|Geräts]] wieder.
Readings sind i.d.R. modulabhängig und geben zusammen mit [[Attribut|Attributen]] und Internals den aktuellen Zustand des dahinter liegenden physischen oder virtuellen [[Gerät|Gerats]] wieder.


== Allgemeines ==
== Allgemeines ==
Zeile 9: Zeile 8:
Beim Herunterfahren von FHEM werden die bekannten Werte aller Readings entweder in das statefile oder die Konfigurationsdatenbank geschrieben. So können sie beim Start von FHEM wieder ausgelesen und in die entsprechenden Readings der Geräte geschrieben werden. Damit entsteht ein wahrscheinlich halbwegs aktueller Zustand aller Geräte, ohne dass beim Start von FHEM erst alle Geräte abgefragt werden müssen, was aber bei den meisten per Funk angesprochenen Gerätefamilien wegen der 1%-Regel mitunter sehr lange dauern würde.
Beim Herunterfahren von FHEM werden die bekannten Werte aller Readings entweder in das statefile oder die Konfigurationsdatenbank geschrieben. So können sie beim Start von FHEM wieder ausgelesen und in die entsprechenden Readings der Geräte geschrieben werden. Damit entsteht ein wahrscheinlich halbwegs aktueller Zustand aller Geräte, ohne dass beim Start von FHEM erst alle Geräte abgefragt werden müssen, was aber bei den meisten per Funk angesprochenen Gerätefamilien wegen der 1%-Regel mitunter sehr lange dauern würde.


Alle [[Gerät|Geräte]] haben Readings, deren Werte entweder vom Modulcode oder mit dem Befehl <code>setreading</code> verändert werden können. Werden dabei moduleigene Readings gesetzt, können mitunter unerwünschte Nebenwirkungen auftreten. Es können aber auch mit diesem Befehl neue Readings erzeugt werden, die bspw. zum Zwischenspeichern dienen sollen. So können Readings auch mit dem Kommando <code>deletereading</code> entfernt werden. Wobei hier durch das Löschen von modulinternen Readings sehr sicher Fehler in der Ausführung von FHEM auftreten werden. Dazu können Readings über userreadings {{Link2CmdRef}} erstellt werden.  
Alle [[Gerät|Geräte]] haben Readings, deren Werte entweder vom Modulcode oder mit dem Befehl <code>setreading</code> verändert werden können. Werden dabei moduleigene Readings gesetzt, können mitunter unerwünschte Nebenwirkungen auftreten. Es können aber auch mit diesem Befehl neue Readings erzeugt werden, die bspw. zum Zwischenspeichern dienen sollen. So können Readings auch mit dem Kommando <code>deletereading</code> entfernt werden. Wobei hier durch das Löschen von modulinternen Readings sehr sicher Fehler in der Ausführung von FHEM auftreten werden.  
 
== Readings in FHEMWEB, Readings mit HTML Inhalt, HTML-Readings ==
Readings werden in [[FHEMWEB]] aktualisiert, sofern ein Event ausgelöst wurde und ein Mechanismus wie Longpoll oder Websocket aktiv ist.
 
Ist der Wert eingeleitet und beendet mit <html>Inhalt</html> werden die Zeichenketten <html> und </html> entfernt und der Inhalt wird vom Browser als HTML interpretiert. Damit diese HTML-Readings auch im Event-Monitor als HTML dargestellt werden, muss das Attribut [https://fhem.de/commandref_DE.html#:~:text=htmlInEventMonitor htmlInEventMonitor] der genutzten FHEMWEB Instanz  auf 1 gesetzt werden.
 
== Abgrenzung zu Attributen ==
siehe den entsprechenden Abschnitt bei [[Attribut#Abgrenzung zu Readings|Attribut]].
 
== userReadings ==
Einen Sonderfall eigener Readings stellen [[userReadings]] dar. Diese können insbesondere für Geräte-interne Berechnungen genutzt werden, oder zur Erstellung von Readings mit Informationen aus verschiedenen Readings. Beispiel: Aus einzeln übermittelten r, g und b-Werten einen rgb-Wert bilden, mit dem sich das devStateIcon einfärben läßt. Ähnlich wie bei notify und anderen Event-Handlern empfiehlt es sich, einen möglichst engen Trigger zu definieren, damit nur bei Änderungen relevanter Ausgangswerte auch eine Neuberechnung des userreadings erfolgt.
 
== Readings im STATE darstellen ==
Sollen andere als das Reading ''state'' in der Geräteübersicht angezeigt werden, erfolgt dies in der Regel über das Attribut ''stateFormat''. Näheres hierzu ist im Artikel [[DeviceOverview anpassen]] zu finden.
 
== Auf Änderungen reagieren ==
Um auf Änderungen von Readings zu reagieren, verwenden Sie einen [[Eventhandler]], z.B. ein notify, um Trigger durch sich ändernde Readings einzuschränken oder diese regelmäßig ohne Änderung zu erzeugen, verwenden Sie [[event-on-change-reading]] bzw. [[event-on-update-reading]] und [[event-min-interval]].


== ReadingsGroup ==
== ReadingsGroup ==
Zeile 15: Zeile 31:
Mit Hilfe dieses [[Modul|Moduls]] können auch den End-Anwendern auf einfache Weise vielfältige Einstellmöglichkeiten zur Verfügung gestellt werden.
Mit Hilfe dieses [[Modul|Moduls]] können auch den End-Anwendern auf einfache Weise vielfältige Einstellmöglichkeiten zur Verfügung gestellt werden.


== ToDo ==
Zusammenhänge mit event-on.+, DOIF(?), devState.+,...
Artikel "Internal"
Akualität und Ausnahmen
<references />
[[Kategorie:FHEM]]
[[Kategorie:FHEM-Verwendung]]
[[Kategorie:FHEM-Verwendung]]
[[Kategorie:Glossary]]
[[Kategorie:Glossary]]

Aktuelle Version vom 19. Oktober 2024, 07:11 Uhr

Readings sind i.d.R. modulabhängig und geben zusammen mit Attributen und Internals den aktuellen Zustand des dahinter liegenden physischen oder virtuellen Geräts wieder.

Allgemeines

Readings geben in FHEM wieder, welche Einstellungen oder Messwerte (allg. Gerätedaten) am jeweiligen Gerät vorliegen. So hat ein Temperatursensor ein Reading für die Temperatur, ein Lichtsensor hat ein Reading für die Helligkeit und ein Schalter ein Reading für An/Aus. Je nach Gerätefamilie (zWave, FS20, Homematic,...) werden Readings in FHEM und Gerätedaten möglichst synchron gehalten. Zu Ausnahmen später mehr.

Readings werden mit dem define-Befehl des jeweiligen Devices oder bei den ersten Übertragungen mit jenem angelegt und mit Werten gefüllt.

Beim Herunterfahren von FHEM werden die bekannten Werte aller Readings entweder in das statefile oder die Konfigurationsdatenbank geschrieben. So können sie beim Start von FHEM wieder ausgelesen und in die entsprechenden Readings der Geräte geschrieben werden. Damit entsteht ein wahrscheinlich halbwegs aktueller Zustand aller Geräte, ohne dass beim Start von FHEM erst alle Geräte abgefragt werden müssen, was aber bei den meisten per Funk angesprochenen Gerätefamilien wegen der 1%-Regel mitunter sehr lange dauern würde.

Alle Geräte haben Readings, deren Werte entweder vom Modulcode oder mit dem Befehl setreading verändert werden können. Werden dabei moduleigene Readings gesetzt, können mitunter unerwünschte Nebenwirkungen auftreten. Es können aber auch mit diesem Befehl neue Readings erzeugt werden, die bspw. zum Zwischenspeichern dienen sollen. So können Readings auch mit dem Kommando deletereading entfernt werden. Wobei hier durch das Löschen von modulinternen Readings sehr sicher Fehler in der Ausführung von FHEM auftreten werden.

Readings in FHEMWEB, Readings mit HTML Inhalt, HTML-Readings

Readings werden in FHEMWEB aktualisiert, sofern ein Event ausgelöst wurde und ein Mechanismus wie Longpoll oder Websocket aktiv ist.

Ist der Wert eingeleitet und beendet mit <html>Inhalt</html> werden die Zeichenketten <html> und </html> entfernt und der Inhalt wird vom Browser als HTML interpretiert. Damit diese HTML-Readings auch im Event-Monitor als HTML dargestellt werden, muss das Attribut htmlInEventMonitor der genutzten FHEMWEB Instanz auf 1 gesetzt werden.

Abgrenzung zu Attributen

siehe den entsprechenden Abschnitt bei Attribut.

userReadings

Einen Sonderfall eigener Readings stellen userReadings dar. Diese können insbesondere für Geräte-interne Berechnungen genutzt werden, oder zur Erstellung von Readings mit Informationen aus verschiedenen Readings. Beispiel: Aus einzeln übermittelten r, g und b-Werten einen rgb-Wert bilden, mit dem sich das devStateIcon einfärben läßt. Ähnlich wie bei notify und anderen Event-Handlern empfiehlt es sich, einen möglichst engen Trigger zu definieren, damit nur bei Änderungen relevanter Ausgangswerte auch eine Neuberechnung des userreadings erfolgt.

Readings im STATE darstellen

Sollen andere als das Reading state in der Geräteübersicht angezeigt werden, erfolgt dies in der Regel über das Attribut stateFormat. Näheres hierzu ist im Artikel DeviceOverview anpassen zu finden.

Auf Änderungen reagieren

Um auf Änderungen von Readings zu reagieren, verwenden Sie einen Eventhandler, z.B. ein notify, um Trigger durch sich ändernde Readings einzuschränken oder diese regelmäßig ohne Änderung zu erzeugen, verwenden Sie event-on-change-reading bzw. event-on-update-reading und event-min-interval.

ReadingsGroup

ReadingsGroup stellt eine Möglichkeit dar, neben Readings auch [[Attribut|Attribute] strukturiert darzustellen. Mit Hilfe dieses Moduls können auch den End-Anwendern auf einfache Weise vielfältige Einstellmöglichkeiten zur Verfügung gestellt werden.