Thermostat HM-CC-RT-DN: aktuellen Betriebsmodus im Floorplan anzeigen & ändern

Begonnen von Tristec, 28 Dezember 2013, 15:16:13

Vorheriges Thema - Nächstes Thema

Tristec

Hallo zusammen,

ich habe mehrere Thermostate zu Hause und möchte nicht nur die aktuelle Temperatur und die Dropdown-Box zum setzen der Temperatur im Floorplan sehen.

Nun habe ich vergangene Woche z.B. versucht ein Dummy Device im Floorplan einzubauen um den aktuellen Betriebsmodus (Auto, Boost, Manu usw.) auszulesen und den Boost-Mode per Klick zu aktivieren.

define SZ_Thermostat_EnableBoost dummy
attr SZ_Thermostat_EnableBoost alias Boost-Mode
attr SZ_Thermostat_EnableBoost fp_wohnung 507,546,2,
attr SZ_Thermostat_EnableBoost icon temp_control
attr SZ_Thermostat_EnableBoost setList off on
attr SZ_Thermostat_EnableBoost stateFormat { fhem("get CUL_HM_HM_CC_RT_DN_21F96A_Clima param mode") }
define SZ_Thermostat_EnableBoost_ON notify SZ_Thermostat_EnableBoost:on set CUL_HM_HM_CC_RT_DN_21F96A_Clima controlMode boost
define SZ_Thermostat_EnableBoost_OFF notify SZ_Thermostat_EnableBoost:off set CUL_HM_HM_CC_RT_DN_21F96A_Clima controlMode auto


Nach einem Reload der config konnte ich das neue Element auch im Floorplan platzieren und den Boost-Mode im Thermostat aktivieren, mit fhem > inform timer sieht man folgendes:

fhem> 2013-12-28 14:52:23 CUL_HM CUL_HM_HM_CC_RT_DN_21F96A_Clima mode: set_boost
2013-12-28 14:52:23 CUL_HM CUL_HM_HM_CC_RT_DN_21F96A_Clima set_controlMode boost
2013-12-28 14:52:23 dummy SZ_Thermostat_EnableBoost on





  • Leider sehe ich im Floorplan aber keine Icons für das device (obwohl dieses im Fhem frontend sichtbar ist) und Internals >> STATE wird nur nach einem Klick auf On|Off aktualisiert. In der Doku steht dazu: "stateFormat: Die Auswertung passiert bei jeder Änderung eines Readings. "
    Wenn ich den Befehl get "CUL_HM_HM_CC_RT_DN_21F96A_Clima param mode" mit telnet ausführe, erhalte ich stets den aktuellen Zustand. Wahrscheinlich geht das in Kombination mit userReadings aber den richtigen Ansatz hab ich noch nicht gefunden.
  • Wie kann ich im Floorplan immer den aktuellen Betriebsmodus anzeigen? Unabhängig davon ob dieser über meine Dummy Funktion oder direkt am Thermostat geändert wird?
  • Im Event-Log sieht man dass regelmäßig diese Werte abgefragt werden:
    2013.12.28 15:08:16 5: Triggering CUL_HM_HM_CC_RT_DN_21F96A_Clima (6 changes)
    2013.12.28 15:08:16 4: eventTypes: CUL_HM CUL_HM_HM_CC_RT_DN_21F96A_Clima mode: auto -> mode: auto

    Kann man hier nicht gleich danach die Aktualisierung im Floorplan anstoßen?

Könnt ihr mir hier weiterhelfen?

Gruß Tristan


noanda

Hallo Tristan,

ein ähnliches Problem hatte ich auch. Bei mir ist es etwas anders. Meine ganze Steuerung basiert erst mal auf dem Present Modul, also gibt es im Prinzip 3 Temp. die eingestellt werden:

1) Wenn kein Handy im Haus ist = 16.0 Grad
2) Wenn ein (oder mehre) Handys im Haus sind = Auto Temp
3) Es gibt einen On/Off Schalter (auch auf dem Floorplan) um die Temp. z.B. im Bad (wenn unser Prinz badet) auf 23.0 Grad zu erhöhen --> an dieser Stelle müsstest Du den Boost Mode setzen.
4) der Else Befehl am Ende benötigst Du nicht wirklich.

Die Aktoren werden auch auf dem Plan dargestellt, der Modus wird über dem Dummy auch angezeigt.

Den HM-CC-RT-DN schaltest Du übrigens über Kanal 4

Definition Heizung BAD
#Bad Heizung DEF
define BADHeizungInfo CUL_HM 22E396
attr BADHeizungInfo .devInfo 00FFFF
attr BADHeizungInfo .stc 59
attr BADHeizungInfo actCycle 000:10
attr BADHeizungInfo actStatus alive
attr BADHeizungInfo autoReadReg 4_reqStatus
attr BADHeizungInfo expert 2_full
attr BADHeizungInfo firmware 1.1
attr BADHeizungInfo model HM-CC-RT-DN
attr BADHeizungInfo peerIDs
attr BADHeizungInfo room Bad
attr BADHeizungInfo serialNr KEQ0733368
attr BADHeizungInfo subType thermostat
attr BADHeizungInfo webCmd getConfig:burstXmit
define FileLog_BADHeizungInfo FileLog ./log/BADHeizungInfo-%Y.log BADHeizungInfo
attr FileLog_BADHeizungInfo logtype text
attr FileLog_BADHeizungInfo room Bad
define BADHeizungK01 CUL_HM 22E39601
attr BADHeizungK01 expert 1
attr BADHeizungK01 model HM-CC-RT-DN
attr BADHeizungK01 peerIDs 00000000,
attr BADHeizungK01 room Bad
define FileLog_BADHeizungK01 FileLog ./log/BADHeizungK01-%Y.log BADHeizungK01
attr FileLog_BADHeizungK01 logtype text
attr FileLog_BADHeizungK01 room Bad
define BADHeizungK02 CUL_HM 22E39602
attr BADHeizungK02 expert 1
attr BADHeizungK02 model HM-CC-RT-DN
attr BADHeizungK02 peerIDs 00000000,
attr BADHeizungK02 room Bad
define FileLog_BADHeizungK02 FileLog ./log/BADHeizungK02-%Y.log BADHeizungK02
attr FileLog_BADHeizungK02 logtype text
attr FileLog_BADHeizungK02 room Bad
define BADHeizungK03 CUL_HM 22E39603
attr BADHeizungK03 expert 1
attr BADHeizungK03 model HM-CC-RT-DN
attr BADHeizungK03 peerIDs 00000000,
attr BADHeizungK03 room Bad
attr BADHeizungK03 stateFormat last:trigLast
define FileLog_BADHeizungK03 FileLog ./log/BADHeizungK03-%Y.log BADHeizungK03
attr FileLog_BADHeizungK03 logtype text
attr FileLog_BADHeizungK03 room Bad
define BADHeizungK04 CUL_HM 22E39604
attr BADHeizungK04 expert 1
attr BADHeizungK04 fp_Wplan 800,1050,1,
attr BADHeizungK04 icon hc_wht_regler
attr BADHeizungK04 model HM-CC-RT-DN
attr BADHeizungK04 peerIDs
attr BADHeizungK04 room Bad
define FileLog_BADHeizungK04 FileLog ./log/BADHeizungK04-%Y.log BADHeizungK04
attr FileLog_BADHeizungK04 logtype text
attr FileLog_BADHeizungK04 room Bad
define BADHeizungK05 CUL_HM 22E39605
attr BADHeizungK05 expert 1
attr BADHeizungK05 model HM-CC-RT-DN
attr BADHeizungK05 peerIDs 00000000,
attr BADHeizungK05 room Bad
define FileLog_BADHeizungK05 FileLog ./log/BADHeizungK05-%Y.log BADHeizungK05
attr FileLog_BADHeizungK05 logtype text
attr FileLog_BADHeizungK05 room Bad
define BADHeizungK06 CUL_HM 22E39606
attr BADHeizungK06 expert 1
attr BADHeizungK06 model HM-CC-RT-DN
attr BADHeizungK06 peerIDs 00000000,
attr BADHeizungK06 room Bad
define FileLog_BADHeizungK06 FileLog ./log/BADHeizungK06-%Y.log BADHeizungK06
attr FileLog_BADHeizungK06 logtype text
attr FileLog_BADHeizungK06 room Bad
define ActionDetector CUL_HM 000000
attr ActionDetector actCycle 600
attr ActionDetector event-on-change-reading .*
attr ActionDetector room Bad
define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector
attr FileLog_ActionDetector logtype text
attr FileLog_ActionDetector room Bad


Steuerung Heizung BAD (Dummy)

#Bad Heizung
define BADHeizungSteu dummy
attr BADHeizungSteu devStateIcon on:sani_heating_manual off:sani_heating_automatic
attr BADHeizungSteu fp_Wplan 950,1050,2,
attr BADHeizungSteu setList state:on,off
attr BADHeizungSteu webCmd state
define KeinerDaBAD notify Familie:absent set BADHeizungK04 desired-temp 16.0
define JemnadDaBAD notify Familie:present { if (Value("BADHeizungSteu") eq "on" ) {fhem("set BADHeizungK04 desired-temp 23.0");;}\
elsif (Value("BADHeizungSteu") eq "off" ) {fhem("set BADHeizungK04 controlMode auto");;}\
else\
{fhem ("set BADHeizungK04 desired-temp 16.0")}\
}


ich hoffe ich konnte Dir vielleicht helfen.

noanda
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

Tristec

Hallo noanda,

vielen Dank für deine Codeschnippsel, ich habe die letzten Tage damit verbracht meinen Raspberry und Fhem neu aufzusetzen und melde mich daher erst jetzt zurück.

Ich habe das Problem mit einem Notify lösen können, welches auf Änderungen des channel_04 reagiert, in meinem Fall heißt das Element SZ_Heizung_ClimRT:

define SZ_Heizung_getHeizModus notify SZ_Heizung_ClimRT {\
my $mode = ReadingsVal("SZ_Heizung_ClimRT","mode",0);;\
fhem ("setstate SZ_Heizung_HeizModus ".$mode);;\
}


Das Element SZ_Heizung_HeizModus zeigt den aktuellen Betriebsmodus an und bietet per Dropdown die Möglichkeit diesen live anzupassen:

define SZ_Heizung_HeizModus dummy
attr SZ_Heizung_HeizModus alias Betriebsmodus2
attr SZ_Heizung_HeizModus fp_wohnung 539,389,2,
attr SZ_Heizung_HeizModus room Schlafzimmer
attr SZ_Heizung_HeizModus setList state:auto,boost,manu
attr SZ_Heizung_HeizModus webCmd state
# mode [auto|manu|party|boost]
define SZ_Heizung_HeizModus_Auto notify SZ_Heizung_HeizModus:auto {\
fhem("set SZ_Heizung_ClimRT controlMode auto");;\
fhem("set SZ_Heizung burstXmit");;\
}
define SZ_Heizung_HeizModus_Boost notify SZ_Heizung_HeizModus:boost {\
fhem("set SZ_Heizung_ClimRT controlMode boost");;\
fhem("set SZ_Heizung burstXmit");;\
}
define SZ_Heizung_HeizModus_Manu notify SZ_Heizung_HeizModus:manu {\
my($Temp_des) = ReadingsVal("SZ_Heizung_ClimRT","desired-temp",0);;\
fhem("set SZ_Heizung_ClimRT controlManu ".$Temp_des);;\
fhem("set SZ_Heizung burstXmit");;\
}


Vielleicht hilft dass dem einen oder anderen ja mal weiter ;-)

Gruß Tristan

urbanswelt

Hallo Tristac,

danke dir habs gerade gebraucht und gleich adaptiert ;-)

Einzigster Unterschied, Kanal 4 ist ... _Clima , bei mir per autocreate erstellt beim pairen.
Aber kann man ja schön ablesen unter unsortiert thermostate =)

Danke schön !
Gruss Lars

otto

Hallo habs auch versucht geht soweit,aber wenn ich es direkt umstelle (Thermostat oder über Channel4 bekomm ich den status nicht zurück den es gerade hat.??
das hab ich in der config:

define HK_Bad_EG_HeizModus dummy
attr HK_Bad_EG_HeizModus alias HK_Bad_EG_HeizModus
attr HK_Bad_EG_HeizModus fp_Heizung 33,548,7,
attr HK_Bad_EG_HeizModus group Temp
attr HK_Bad_EG_HeizModus room EG,H_0_A HeizModus
attr HK_Bad_EG_HeizModus setList state:auto,boost,manu
attr HK_Bad_EG_HeizModus webCmd state
# mode [auto|manu|party|boost]
define HK_Bad_EG_HeizModus_Auto notify HK_Bad_EG_HeizModus:auto {\
   fhem("set  RT_Bad_EG_Clima controlMode auto");;\
   fhem("set  RT_Bad_EG_Clima burstXmit");;\
}
define HK_Bad_EG_HeizModus_Boost notify HK_Bad_EG_HeizModus:boost {\
   fhem("set  RT_Bad_EG_Clima controlMode boost");;\
   fhem("set  RT_Bad_EG_Clima burstXmit");;\
}
define HK_Bad_EG_HeizModus_Manu notify HK_Bad_EG_HeizModus:manu {\
   my($Temp_des) = ReadingsVal("RT_Bad_EG_Clima","desired-temp",0);;\
   fhem("set RT_Bad_EG_Clima controlManu ".$Temp_des);;\
   fhem("set RT_Bad_EG_Clima burstXmit");;\
}


Gruß u Frohes Fest  Otto