Pseudo-/Fassade-/Wrapper-Device

Begonnen von delMar, 19 Januar 2017, 09:33:42

Vorheriges Thema - Nächstes Thema

delMar

Hallo,

die kurze Version zuerst:
ich würde gerne ein FHEM-Device schreiben, welches nur als Fassade für andere, logische FHEM-Devices dient.

hier die Problemstellung (und somit die lange Version):

ich steuere Stromstoßschalter über 1-Wire gesteuerte Relais an.
Der dazugehörige Befehl ist zB set OWX_SWITCH_1 output A on-for-timer 1

Gleichzeitig habe ich ebenfalls über 1-wire 220V input Geräte, mit denen ich feststelle, ob eine Lampe gerade leuchtet, oder nicht.
Dieser 1-wire Sensor ist aber natürlich ein anderes FHEM-Device, als der 1-wire Switch.

Ich würde nun gerne ein FHEM-Device schreiben, welches bei "set ON" das on-for-timer ausführt, falls es nicht bereits eingeschaltet ist.
Bei "set OFF" soll ebenfalls on-for-timer ausgeführt werden, wenn es nicht bereits ausgeschaltet ist.
Außerdem würde ich noch eine Prüfung reingeben, ob nicht gerade geschaltet wird (dh dass aus dem 1-sekündigen Timer dann ein 2 sekündiger wird, etc).

in der Config stelle ich mir das so vor:
define LichtWohnzimmer FASSADE <switch-device-name> <switch-command> <sensor-device-name> <sensor-command>
konkret:
define LichtWohnzimmer FASSADE OWX_SWITCH_1 output A on-for-timer 1 OWX_SENSOR_1 input A
oder auch:
define LichtWohnzimmer FASSADE {set OWX_SWITCH_1 output A on-for-timer 1} {get OWX_SENSOR_1 input A}

Geht das? Ich habe im Wiki über das zweistufige Modulkonzept gelesen, aber dafür müsste ja auch das angesteuerte Modul (zB OWX oder OWX_Async) dafür ausgelegt sein, von einem anderen Modul befehle zu kriegen, richtig?
Oder gibts sowas schon? bzw Module, die ähnliches machen?
Jetzt wo ich's schreibe: ist nicht notify sehr eng verwandt?....

Ich hoffe, ich konnte mein Anliegen klar darstellen und danke schonmal für eure Anregungen.
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

justme1968

schau dir readingsProxy an. beispiele im wiki.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

delMar

Jaaaa, das schaut gut aus, danke!
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

So, ich hab mir das jetzt angeschaut und auch etwas getüftelt.

Eine Sache ist mir noch nicht ganz klar:
Ich definiere das proxyReadings device ja schon mit einem anderen, "echten" device.
Allerdings will ich eigentlich mit zwei devices arbeiten.
Eines ist der Switch, und ein zweites ist der Sensor, der auswertet, ob das Licht tatsächlich ein ist.
Geht das hiermit auch?

Danke!
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.