Hallo,
Ich habe folgenden Wunsch:
1 Device "Garage" (Dummy, Readingsgroup, etc, egal), bei dem ich über "set open/close" das Garagentor hoch und runterfahren kann, im state "closed/open" stehen habe je nachdem was der Sensor ausgibt und ein Reading "temperature" habe, das die Raumtemperatur anzeigt.
Weil ich den Fibaro Smart Implant nutze, habe ich folgende Situation bei der insgesamt 4 Devices und 5 Readings involviert sind:
ZWave_SENSOR_MULTILEVEL_43.03 mit Reading voltage 0.00 V <-- = Tor zu
ZWave_SENSOR_MULTILEVEL_43.03 mit Reading voltage 2.92 V <-- = Tor auf
ZWave_SWITCH_BINARY_43.05 mit set On (sollte nach einiger Zeit automatisch zurückschalten) <-- Tor fährt hoch
ZWave_SWITCH_BINARY_43.06 mit set On (sollte nach einiger Zeit automatisch zurückschalten) <-- Tor fährt runter
ZWave_SENSOR_MULTILEVEL_43.07 mit Reading temperature 24.7 C <-- Garagentemperatur
Mehr Details finden sich in einem anderen Thread in dem ich beschrieben habe, wie der Fibaro Smart Implant in einen Teckentrup Car Drive oder Sommer Base+ integriert wird: https://forum.fhem.de/index.php/topic,127502.0.html (https://forum.fhem.de/index.php/topic,127502.0.html)
Jetzt zur Frage:
Wie bekomme ich mit Hilfe eines Dummy oder Readingsgroup oder ggf. eines anderen virtuellen Device das gewünschte Ergebnis? Ich habe schon viel im WIKI, Forum und CommandRef gelesen und auch schon was ausprobiert. Aber das ist das erste mal, dass ich sowas in der Komplexität vor habe und ich bin nicht weit über "Start" hinaus gekommen leider.
Wer kann mir etwas Input geben, wie ich möglichst einfach an ein Minimal Working Example komme?
Besten Dank FHEMler!
Ihr seit eine tolle Community!
Hi,
aus heutiger Sicht habe ich das vielleicht zu umständlich gelöst, aber irgendwie entspricht das vielleicht Deiner Frage (und es läuft bei mir und es gab keinen Grund zur "Verbesserung" :) ):
defmod GaragenTor dummy
attr GaragenTor devStateIcon zu:control_arrow_down auf:control_arrow_up open:fts_garage_door_10:zu closed:fts_garage_door_100@0CFB0C:auf
attr GaragenTor room Garage
attr GaragenTor webCmd auf:zu
defmod di_garagentor DOIF ([RC81_1_TorOben:"closed"])(set GaragenTor open) DOELSEIF ([RC81_2_TorUnten:"closed"])(set GaragenTor closed)
attr di_garagentor room Garage
defmod nty_TorAuf notify GaragenTor:auf|VCCU_Btn4:trigLast:.RC4._.*:(short|long)|RCdonix:RCdonix_Btn_02.Short set SW81_1_TorAuf on-for-timer 1
attr nty_TorAuf room Garage,Test
defmod nty_TorZu notify GaragenTor:zu|VCCU_Btn3:trigLast:.RC4._.*:(short|long)|RCdonix:RCdonix_Btn_01.Short set SW81_3_TorZu on-for-timer 1
attr nty_TorZu room Garage,Test
Der Dummy ist die Bedienung vom Garagentor (er erzeugt beim klick auf Icon Events auf und zu)
Die beiden notify führen den jeweiligen Schaltbefehl aus (1 sec Impuls) und werden von unterschiedlichen Devices getriggert.
Das DOIF fragt den Status des Sensors für oben / unten ab und setzt den Status im Dummy.
Gruß Otto
Vermutlich bezieht sich Otto auf (z.B.) auf das rund um hier: https://forum.fhem.de/index.php/topic,127542.msg1220729.html#msg1220729, wenn er von "aus heutiger Sicht zu umständlich" spricht.
Den Temp-Sensor-Wert würde ich sowieso eher separat sehen.
Hey vielen Dank für die super Tipps!
Habe erst über der Lösung per Dummy gegrübelt aber dann hab ichs doch noch mit ReadingsGroup hinbekommen:
defmod Garage readingsProxy ZWave_SENSOR_MULTILEVEL_43.03:voltage
attr Garage devStateIcon open:fts_garage_door_10@red closed:fts_garage_door_100@green
attr Garage icon fts_garage
attr Garage room EG->Garage
attr Garage setFn {($CMD eq "open")?fhem('set ZWave_SWITCH_BINARY_43.05 on-for-timer 3'):fhem('set ZWave_SWITCH_BINARY_43.06 on-for-timer 3')}
attr Garage setList open close
attr Garage valueFn {($VALUE > 2)?"open":"closed"}
attr Garage webCmd open:close
setstate Garage closed
setstate Garage 2022-06-01 22:34:07 lastCmd close
setstate Garage 2022-06-01 22:34:54 state closed
Welche Möglichkeiten habe ich jetzt noch, das Reading temperature da mit rein zu bekommen?
Ich dachte da an UserReadings und setreading?
Danke euch und Grüße.
Update:
Ich habe noch folgendes userReading zum Temperatursensor des Fibaro Smart Implant (ZWave_SENSOR_MULTILEVEL_43.07) hinzugefügt:
attr ZWave_SENSOR_MULTILEVEL_43.07 userReadings updateGarage {fhem("setreading Garage temperature ".ReadingsVal("ZWave_SENSOR_MULTILEVEL_43.07","temperature",0));;;;}
Damit bekomme ich die aktuelle Temperatur in der Garage als Reading in das oben erstellte "Garage" Device.
Vermutlich nicht die eleganteste Art, aber es funktioniert und ich brauche kein zusätzliches Device erstellen.
Grüße!
Zitat von: der.einstein am 01 Juni 2022, 22:42:07
Hey vielen Dank für die super Tipps!
:) Freut mich, wenn es weitergeholfen hat!
Zitat von: Beta-User am 30 Mai 2022, 11:08:26
Den Temp-Sensor-Wert würde ich sowieso eher separat sehen.
Gilt immer noch.
Den tieferen Sinn dieses "side-Kicking" von (funktional irrelevanten) "fremden Readings" sehe ich nicht, es ist eine m.E. unnötige Doppelung derselben Info. Für Anzeigezwecke kann man das anders lösen, und für alle möglichen Abfragen kann man direkt das Quelldevice anzapfen.
Und userReadings OHNE TRIGGER SIND ein NOGO!!!