Hallo Leute,
ich habe einen Präsenzmelder definiert
define P_EG_Flur KNX 2/1/0:dpt1.001:ausgang 2/1/4:dpt3:zwangsfuehrung 2/1/15:dpt1.001:praesenz 2/1/17:dpt9.004:helligkeit
attr P_EG_Flur IODev KNX
attr P_EG_Flur eventMap /value -50 zwangsfuehrung:AUS/value -100 zwangsfuehrung:AUTO/value -25 zwangsfuehrung:EIN
attr P_EG_Flur room Präsenz
attr P_EG_Flur sortby 101
attr P_EG_Flur stateRegex /getg1:/ausgang:/ /setg2:/zwangsfuehrung:/ /getg3:/praesenz:/ /getg4:/helligkeit:/
attr P_EG_Flur webCmd :
der 4 Busadressen hat:
1. Ausgang, lesen, 1bit=on/off
2. Zwangsführung, 2bit=AUTO, AUS, EIN
3. Präsenz, lesen, 1bit=on/off
3. Helligkeit, lesen, 8bit Einheit Lux
Jetzt möchte ich ihn kompakt bedienen und daher muss ein readingsproxy her:
#PRÄSENZ: rp_P_EG_Flur_Praesenz
define rp_P_EG_Flur_Praesenz readingsProxy P_EG_Flur:praesenz-get
attr rp_P_EG_Flur_Praesenz devStateIcon off:10px-kreis-rot on:10px-kreis-gruen
attr rp_P_EG_Flur_Praesenz group 02_Präsenz
attr rp_P_EG_Flur_Praesenz room Präsenz
attr rp_P_EG_Flur_Praesenz sortby 103
Damit erhalte ich eine Anzeige mit rotem Punkt wenn keine Präsenz detektiert wird und grün, wenn der Sensor etwas sieht.
Aber ich möchte natürlich auch den Ausgang bedienen, indem ich die Zwangsführung schalte und nun fangen meine Probleme an.
Erst einmal die Stati AUTO, AUS, EIN definieren, also
attr rp_P_EG_Flur_Praesenz setList state:AUTO,AUS,EIN
attr rp_P_EG_Flur_Praesenz webCmd state
Damit der Proxy seinen Wert nicht beim Seitenupdate verliert noch ein
attr rp_P_EG_Flur_Praesenz valueFn {$LASTCMD}
Sieht so aus, wie es soll, macht aber nichts, denn nun muss ich an g3 meines KNX-Devices P_EG_Flur noch den command schicken, konkret soll ausgegeben werden:
AUTO -> set P_EG_Flur value -100 g3
AUS -> set P_EG_Flur value -50 g3
EIN -> set P_EG_Flur value -25 g3
(Wird bei Eingabe auch korrekt umgesetzt.)
Auf meiner Suche nach einer Lösung bin ich bisher nicht sehr weit gekommen. Meistens werden nur 2 Stati übergeben (und dann noch an das gleiche Reading) z.B.:
attr proxy setFn {($CMD eq "on")?"off":"on"}
oder sogar an ein anderes Reading, was umgeschrieben auf meinen Fall lauten müsste:
attr rp_P_EG_Flur_Praesenz setFn { fhem('"set P_EG_Flur value '. ($CMD eq 'AUTO' ?'-100':'-50') .' g3"') }
aber der Teil ($CMD eq 'AUTO' ?'-100':'-50') natürlich für meine Anwendung völliger Unsinn ist.
Hat hier jemand eine Hilfe, wie ich hier weiter kommen kann?
Gruß und Dank,
Weisnich