Fhem Schalter als Taster für ZentralAus

Begonnen von pst, 13 Mai 2014, 19:16:47

Vorheriges Thema - Nächstes Thema

pst

Hallo,

ich möchte folgendes erreichen (- ein gängiges Scenario im EnOcean/Eltako Umfeld -):

Der FSA-12 Aktor hat die Funktion ZentralEin/ZentralAus.
Damit kann man mit einem Tastendruck auf einen physischen Schalter
alle 4 Kanäle aus bzw. an schalten. 

Ich hätte es nun gerne, dass ich einen FHEM-Schalter (A0) nutze und das
auf ZentralAus anlerne.

Was habe ich gemacht:
Fhem-Schalter

define FhemSwitch_Flur EnOcean xxxxxx2
attr FhemSwitch_Flur IODev TCM310_0
attr FhemSwitch_Flur room EnOcean
attr FhemSwitch_Flur subType switch
define FileLog_FhemSwitch_Flur FileLog ./log/FhemSwitch_Flur-%Y.log FhemSwitch_Flur
attr FileLog_FhemSwitch_Flur logtype text
attr FileLog_FhemSwitch_Flur room EnOcean


Nun ein readingsProxy definiert, welches auf Press ein A0 sendet.


define rPA_FlurZAus readingsProxy FhemSwitch_Flur:state
attr rPA_FlurZAus eventMap A0:aus
attr rPA_FlurZAus icon general_aus
attr rPA_FlurZAus setFn {"A0";;}
attr rPA_FlurZAus setList aus
attr rPA_FlurZAus valueFn {undef}
attr rPA_FlurZAus webCmd aus


Es passiert nix. Beim Klick auf 'aus' im FHEMHome finde ich keinen Eintrag im Log file!
Was mache ich falsch?

Hier mal kurz mein Verständnis über die attr's:
WebCmd  <=> Schalter-Anzeige auf der WebSeite (hier nur aus).
valueFN   <=> wird aufgerufen, wenn etwas mit dem device passiert ist
                     (hier soll ja nix gemacht werden).
setList     <=> mögliche Werte für 'state' (das ist hier nun schwierig; ich brauche eigentlich keinen state!)
setFN      <=> Definition was 'geschaltet' wird (hier soll immer nur A0 gesendet werden)
eventMap<=> macht aus 'aus' den Wert 'A0'

Meine Vermutung ist, dass ich total falsch liege und es eine einfachere Möglichkeit gibt.
Braucht es für das readingsProxy den Zusatz 'state'?

Gruss Stephan

justme1968

du musst ein reading angenen aus dem der state für das proxy device abgeleitet wird. wenn dein device kein reading hat mit dem das geht kannst du state verwenden um halt irgendetwas angegeben zu haben.

ZitatWebCmd  <=> Schalter-Anzeige auf der WebSeite (hier nur aus).
ja.

ZitatvalueFN   <=> wird aufgerufen, wenn etwas mit dem device passiert ist
                     (hier soll ja nix gemacht werden).
nein. wird aufgerufen wenn sich das reading im original device aus dem dein state abgeleitet wird ändert damit der state im proxy device nachgezogen werden kann. in deinem fall empfielht es sich das auf {$LASTCMD} zu setzen. dann stimmt der status auch nach fhem neu start.

ZitatsetList     <=> mögliche Werte für 'state' (das ist hier nun schwierig; ich brauche eigentlich keinen state!)
nein. die liste der möglichen kommandos. bei einem schalter normalerweise on und off. bei dir nur off.

ZitatsetFN      <=> Definition was 'geschaltet' wird (hier soll immer nur A0 gesendet werden)
nein. die funktion die aufgerufen wird um aus dem kommando an das proxy device das kommando zu machen das ans echte device gesendet wird. bei dir wird aus zu A0

ZitateventMap<=> macht aus 'aus' den Wert 'A0'
ja. ist aber hier nicht nötig.

deine readingsProxy definition ist ein bischen umständlich. eine einfachere version geht etwa so:define rPA_FlurZAus readingsProxy FhemSwitch_Flur:state
attr rPA_FlurZAus icon general_aus
attr rPA_FlurZAus setFn {"A0"}
attr rPA_FlurZAus setList aus
attr rPA_FlurZAus valueFn {$LASTCMD}
attr rPA_FlurZAus webCmd aus


gruss
  andre


edit: ich würde für einen zentral aus icon/schalter in fhem zumindest was das user interface angeht vermutlich eher eine structure verwenden um zu sehen ob überhaupt etwas an ist. d.h. sobald irgendeine lampe an ist ist das icon auf an sonst auf aus.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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