gelöst: Darstellung Heizungseinstellung mit DOIF und Dummy funzt nicht richtig

Begonnen von locodriver, 11 November 2015, 15:59:23

Vorheriges Thema - Nächstes Thema

locodriver

Hallo, ich habe meine Hz-Einstellung mit zwei Dummies realisiert, welche entweder ab sofort bzw. am Folgetag 3:30 die Heizung entsprechend einstellen.
Den Dummy für die sofortige Einstellung kann ich auch mit einem HM-6-fach-Taster einstellen. Wenn ich diesen bedient habe, dann gibt der Sofortdummy nach dem Browserrefresh immer den letzten Status des Tasters wieder und nicht den Status, den ich aus dessen Setlist ausgewählt habe. Das set-Kommando wird aber ausgeführt.
Ich habe deshalb versucht, mittels "attr Taster_Heizmodi state initialized" 10s nach jedem Tastendruck dies zu umgehen - das funzt aber nicht. Ich weiß nicht, wo dieser Effekt herkommen könnte, vielleicht "könnt ihr mir die Augen öffnen"?

Tasterdef:define Taster_Heizmodi DOIF ([FL_T6_Btn_02] =~ "Short" and [BAjetzt] ne "Sommer")(set BAjetzt Boost)(attr Taster_Heizmodi state initialized)\
DOELSEIF\
([FL_T6_Btn_02] =~ "Long.*" and [BAjetzt] ne "Sommer")(set BAjetzt Comfort)(attr Taster_Heizmodi state initialized)\
DOELSEIF\
([FL_T6_Btn_03] =~ "Long.*" and [BAjetzt] ne "Sommer")(set BAjetzt Eco)(attr Taster_Heizmodi state initialized)\
DOELSE ()
attr Taster_Heizmodi cmdState Boost|Comfort|Eco|Init
attr Taster_Heizmodi disable 0
attr Taster_Heizmodi do always
attr Taster_Heizmodi room 010Wohnung
attr Taster_Heizmodi state initialized
attr Taster_Heizmodi wait 0,10:0,10:0,10


Dummies:### Heizmodus setzen sofort###
define BAjetzt dummy
attr BAjetzt alias Betriebsart ab jetzt
attr BAjetzt devStateIcon auto:sani_heating_automatic Boost:sani_heating_boost Manuell:sani_heating_manual FHEM:sani_heating_manual AUS:secur_heat_protection Frostschutz:temp_frost
attr BAjetzt group Heizungen
attr BAjetzt icon temp_inside
attr BAjetzt room 010Wohnung
attr BAjetzt setList state:Boost,Auto,Manuell,FHEM,Sommer,Frostschutz,AUS,Früh,Tag,Spät,Nacht,Ruhe,Urlaub,Comfort,Eco
attr BAjetzt sortby 02
attr BAjetzt webCmd state


### Heizmodus setzen morgen###
define BAmorgen dummy
attr BAmorgen alias Betriebsart ab morgen
attr BAmorgen devStateIcon auto:sani_heating_automatic Manuell:sani_heating_manual FHEM:sani_heating_manual AUS:secur_heat_protection Frostschutz:temp_frost .Urlaub:10px-kreis-gelb
attr BAmorgen group Heizungen
attr BAmorgen icon temp_inside
attr BAmorgen room 010Wohnung
attr BAmorgen setList state:Auto,Manuell,FHEM,Sommer,Frostschutz,AUS,Früh,Tag,Spät,Nacht,Ruhe,Urlaub,Comfort,Eco
attr BAmorgen sortby 01
attr BAmorgen webCmd state


Heizmode:define Heizmodus DOIF ([BAjetzt] eq "Sommer") (set WZ_Hk0_Clima controlManu 30.5,set WZ_Hk1_Clima controlManu on,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate desired-temp on)\
DOELSEIF\
([BAjetzt] eq "Frostschutz")(set WZ_Hk0_Clima controlManu 12.0,set WZ_Hk1_Clima controlManu 12.0,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 12.0)\
DOELSEIF \
([BAjetzt] eq "Früh")(set WZ_Hk0_Clima controlMode auto,set WZ_Hk0_Clima tempListTmpl restore FHEM/tempList.cfg:Früh,set WZ_Hk1_Clima controlMode auto,set WZ_Hk1_Clima tempListTmpl restore FHEM/tempList.cfg:Früh,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF \
([BAjetzt] eq "Tag")(set WZ_Hk0_Clima controlMode auto,set WZ_Hk0_Clima tempListTmpl restore FHEM/tempList.cfg:Tag,set WZ_Hk1_Clima controlMode auto,set WZ_Hk1_Clima tempListTmpl restore FHEM/tempList.cfg:Tag,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF \
([BAjetzt] eq "Spät")(set WZ_Hk0_Clima controlMode auto,set WZ_Hk0_Clima tempListTmpl restore FHEM/tempList.cfg:Spät,set WZ_Hk1_Clima controlMode auto,set WZ_Hk1_Clima tempListTmpl restore FHEM/tempList.cfg:Spät,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF \
([BAjetzt] eq "Nacht")(set WZ_Hk0_Clima controlMode auto,set WZ_Hk0_Clima tempListTmpl restore FHEM/tempList.cfg:Nacht,set WZ_Hk1_Clima controlMode auto,set WZ_Hk1_Clima tempListTmpl restore FHEM/tempList.cfg:Nacht,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF \
([BAjetzt] eq "Ruhe")(set WZ_Hk0_Clima controlManu 17.0,set WZ_Hk1_Clima controlManu 17.0,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF \
([BAjetzt] eq "Urlaub")(set WZ_Hk0_Clima controlManu 14.0,set WZ_Hk1_Clima controlManu 14.0,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 15.0)\
DOELSEIF\
([BAjetzt] eq "Auto")(set WZ_Hk0_Clima controlMode auto,set WZ_Hk1_Clima controlMode auto,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF\
([BAjetzt] eq "Manuell")(set WZ_Hk0_Clima controlMode manual,set WZ_Hk1_Clima controlMode manual,set BD_Regler_Climate controlMode manual,set BD_Regler_Climate controlManu 20.0)\
DOELSEIF\
([BAjetzt] eq "Boost")(set WZ_Hk0_Clima controlMode boost,set WZ_Hk1_Clima controlMode boost)\
DOELSEIF\
([BAjetzt] eq "Comfort")(set WZ_Hk0_Clima controlMode day,set WZ_Hk1_Clima controlMode day)\
DOELSEIF\
([BAjetzt] eq "Eco")(set WZ_Hk0_Clima controlMode night,set WZ_Hk1_Clima controlMode night)\
DOELSE()
attr Heizmodus alias aktueller Heizmodus
attr Heizmodus cmdState Sommer|Frostschutz|Früh|Tag|Spät|Nacht|Ruhe|Urlaub|Auto|Manuell|Boost|Comfort|Eco
attr Heizmodus devStateIcon auto:sani_heating_automatic Boost:sani_heating_boost Manuell:sani_heating_manual FHEM:sani_heating_manual AUS:secur_heat_protection Frostschutz:temp_frost
attr Heizmodus disable 0
attr Heizmodus do always
attr Heizmodus group Heizungen
attr Heizmodus icon temp_inside
attr Heizmodus room 010Wohnung
attr Heizmodus webCmd state


Ergänzung:
Wenn ich das DOIF des Tasters disable, funktioniert die Statusanzeige im Dummy "BAjetzt" richtig; d.h. nach Auswahl in der Setlist wird der Status im Dummy aktualisiert und dann der akt. Heizmodus eingestellt und auch richtig angezeigt. Wenn die Schalterabfrage aktiv ist, dann wird in der Setlist die Auswahl kurz angezeigt, dann aber sowohl Setlist als auch Status des Dummies wieder in den letzten Befehl des Tasters umgeschaltet, der Heizstatus wird aber - wie gewünscht - geändert. So ist es auch im Screenshot zu sehen, eigentlich müsste im Dummy und im Heizmodus das gleiche angezeigt werden (in dem Fall "Ruhe").
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

locodriver

Habe es mittlerweile selbst hinbekommen  :):

define Taster_Heizmodi DOIF ([FL_T6_Btn_02:?Short] and [BAjetzt] ne "Sommer")(set BAjetzt Boost)\
DOELSEIF\
([FL_T6_Btn_02:?Long] and [BAjetzt] ne "Sommer")(set BAjetzt Comfort)\
DOELSEIF\
([FL_T6_Btn_03:?Long] and [BAjetzt] ne "Sommer")(set BAjetzt Eco)\
DOELSE ()
attr Taster_Heizmodi cmdState Boost|Comfort|Eco|Init
attr Taster_Heizmodi disable 0
attr Taster_Heizmodi do always
attr Taster_Heizmodi room 010Wohnung


Alles andere ist unverändert.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

JoeALLb

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

locodriver

Das ist ein Teil eines größeren DOIFs, welches verschiedene, täglich einmalige Dinge erledigt:

DOELSEIF
([03:30])({ fhem("set BAjetzt " . (ReadingsVal("BAmorgen","state","frei"))),Log 1, "Betriebsart ist jetzt: ".ReadingsVal("BAmorgen","state","frei")})


Wenn BAjetzt sich ändert, dann wird Heizmodus aktualisiert und führt (bei Bedarf) die entsprechenden Aktionen aus.

Uwe.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster