readingsProxy
| readingsProxy | |
|---|---|
| Zweck / Funktion | |
| Aufsplitten von Mehrfachgeräten in einzelne FHEM-Devices | |
| Allgemein | |
| Typ | Hilfsmodul | 
| Details | |
| Dokumentation | EN / DE | 
| Support (Forum) | Automatisierung | 
| Modulname | 33_readingsProxy.pm | 
| Ersteller | Andre (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 durch ein anderes, eigenständiges Gerät verwalten (auslesen, beschreiben) zu lassen.  Dies kann durch das FHEM-Hilfsmodul readingsProxy geschehen. Auf diese Weise können beispielsweise Mehrfachsensoren und Aktoren (1-Wire 2- oder 8-fach Schalter, EnOcean Serienschalter, ...) einzeln bedienbaren Geräte zugeordnet.
Sobald das Proxy Device on und off bereitstellt, stehen über die setExtentions auch on-for-timer, on-till, blink, usw. zur Verfügung.
Für das Proxy Device sind keine speziellen Voraussetzungen nötig.
Anwendung
Definition
Das Readingsproxxy ist ein eigenständiges Gerät und wird durch den Befehl
define <name> readingsProxy <device>:<reading>
definiert. Dabei bezieht sich <device> auf das Gerät, dessen Reading durch den Proxy verwaltet werden soll, <reading> ist das zu verwaltende Reading. Sind Wildcards wie .* und RegEx möglich? Im Folgenden wird das Readingsproxy als Proxy Device bezeichnet.
Attribute
Attribute mit spezieller Bedeutung für Proxy Devices:
- readingFnAttributes
 - ...
 - getFn
 - ...
 - setFn
 - ...
 - valueFn
 - ...
 
Anwendungsbeispiele
Achtung: Die Beispiele enthalten keine Maskierungen oder Verdoppelungen für ; und Zeilenende, sondern sind so angegeben, wie sie in FHEMWEB im Befehl-Eingabefeld oder nach Klick auf DEF eingegeben werden. Bei manuellem Einfügen in eine Konfigurationsdatei sind diese Maskierungen oder Verdoppelungen natürlich vorzunehmen.
1-Wire dual switch (DS2406) mit OWDevice als input (erster Kanal)
 define myProxy readingsProxy myDS2406:latch.A
 attr myProxy valueFn {($VALUE == 1)?"on":"off"}
1-Wire 8-fach switch (DS2408) mit OWSWITCH als Output (erster Kanal)
  define SchalterA readingsProxy OWX:xxx
  attr SchalterA setFn {($CMD eq "on")?"output A off":"output A on"}
  attr SchalterA setList on off
  attr SchalterA valueFn {($VALUE == 0)?"off":"on"}
  attr SchalterA webCmd on:off
on/off vertauschen
 define proxy readingsProxy meineLampe:state
 attr proxy setFn {($CMD eq "on")?"off":"on"}
 attr proxy valueFn {($VALUE eq "on")?"off":"on"}
EnOcean Serienschalter
Siehe auch EnOcean Starter Guide
 #Kanal A zur Steuerung mit on und off
 define Schalter_channelA readingsProxy Schalter:state
 attr Schalter_channelA setFn {($CMD eq "on")?"AI":"A0";;}
 attr Schalter_channelA setList on off
 attr Schalter_channelA valueFn {$LASTCMD}
 attr Schalter_channelA webCmd on:off
 #Kanal B zur Steuerung mit on und off
 define Schalter_channelB readingsProxy Schalter:state
 attr Schalter_channelB setFn {($CMD eq "on")?"BI":"B0";;}
 attr Schalter_channelB setList on off
 attr Schalter_channelB valueFn {$LASTCMD}
 attr Schalter_channelB webCmd on:off
setExtensions für Geräte implementieren
Wenn ein (Original-)Device von sich aus die setExtentions nicht unterstützt, kann das durch Verwendung eines Proxy Device behoben/implementiert werden. Sobald ein Proxy Device on und off bereitstellt, stehen über die setExtensions auch on-for-timer, on-till, blink, usw. zur Verfügung.
 define STECKD_TEST readingsProxy STECKD_BAUHS:state
 attr STECKD_TEST setFn {($CMD eq "on")?"angle 3874":"angle 3873";}
 attr STECKD_TEST setList on off
 attr STECKD_TEST valueFn {$LASTCMD}
Beispiel aus diesem Forenthread übernommen. (Anmerkung: Die im Forenthread noch verwendete Lösung über setFN mit "readingsSingleUpdate" sowie valueFn {} ist nach Einführung von $LASTCMD in readingsProxy nicht mehr notwendig. Dementsprechend wurde hier die neuere Variante mit $LASTCMD genutzt)
Shellkommando zum Schalten verwenden
 define <name> readingsProxy <name>
 attr <name> setList on off
 attr <name> setFn { fhem('"<shell command to execute> '. ($CMD eq 'on' ?'<on>':'<off>') .'"') }
Button für eine bestimmte Harmony Activity im Frontend und Homekit
siehe harmony
Links
- Forenthema zur Vorstellung des Moduls
 - Forenthema zur Fragestellung "DS2408 Ports aufsplitten"
 - Forenthema zur Fragestellung "Zwei Icons für Channel A und B"