HM-CC-RT-DN

Begonnen von Alex85, 13 September 2013, 11:03:07

Vorheriges Thema - Nächstes Thema

JoeALLb

Hallo, kleine Vereinfachung:

Ich würde diese IF-Abfrage
define AZ_SollTemperaturOnChange notify (AZ_SollTemperatur|global:INITIALIZED|global:REREADCFG) { if (ReadingsVal("AZ_Heizung","desired-temp",17) != %) { fhem "set AZ_Heizung_ClimRT desired-temp %" } }

durch einen solchen Filter ersetzen... lässt sich schöner lesen, und der Device muss nur 1x angegeben werden. Die Funktion ist die selbe.
define AZ_SollTemperaturOnChange notify (AZ_SollTemperatur|global:INITIALIZED|global:REREADCFG) { fhem "set AZ_Heizung_ClimRT:FILTER=desired-temp!=% desired-temp %" }
Hinweis 2: ClimRT heist jetzt meist Clima.
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

desmoloch

Hallo zusammen,

ich nutze ein DOIF zusammen mit einem Dummy um Temperaturänderungen an meiner Steuerung an die Thermostate zu übertragen:


Internals:
   DEF        ([FL_Steuerung:desired-temp] != [FL_Steuerung_desiredTemp_dummy:state])
(set FL_Steuerung_desiredTemp_dummy [FL_Steuerung:desired-temp],
set AZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state],
set KZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state],
set SZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state])
   NAME       FL_Steuerung_desiredTemp_di
   NR         94
   NTFY_ORDER 50-FL_Steuerung_desiredTemp_di
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-11-27 09:15:16   Device          FL_Steuerung
     2016-11-27 09:15:15   cmd             1
     2016-11-27 09:15:15   cmd_event       FL_Steuerung
     2016-11-27 09:15:15   cmd_nr          1
     2016-11-27 09:15:16   e_FL_Steuerung_desired-temp 20.0
     2016-11-26 21:01:47   mode            enable
     2016-11-27 09:15:15   state           cmd_1
   Condition:
     0          ReadingValDoIf($hash,'FL_Steuerung','desired-temp','','',AttrVal($hash->{NAME},'notexist',undef)) != ReadingValDoIf($hash,'FL_Steuerung_desiredTemp_dummy','state','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           FL_Steuerung FL_Steuerung_desiredTemp_dummy
     all         FL_Steuerung FL_Steuerung_desiredTemp_dummy
   Do:
     0:
       0          set FL_Steuerung_desiredTemp_dummy [FL_Steuerung:desired-temp],  set AZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state], set KZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state], set SZ_Heizung_Clima desired-temp [FL_Steuerung_desiredTemp_dummy:state]
     1:
   Helper:
     event      CMDs_done
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   FL_Steuerung
     timerevent desired-temp: 20.0
     triggerDev FL_Steuerung
     timerevents:
       desired-temp: 20.0
     timereventsState:
       desired-temp: 20.0
     triggerEvents:
       CMDs_done
     triggerEventsState:
       state: CMDs_done
   Internals:
   Itimer:
   Readings:
     0           FL_Steuerung:desired-temp FL_Steuerung_desiredTemp_dummy:state
     all         FL_Steuerung:desired-temp FL_Steuerung_desiredTemp_dummy:state
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   disable    0
   do         always


Das funktioniert soweit gut.
Wie könnte ich nun noch die andere Richtung realisieren? Also: es dreht jemand manuell an den Thermostaten und dann soll auch die Fl_Steuerung die desired-temp auf den Wert selten. Ich hatte dies gestern mit einem zweiten dummy und einem zweiten DOIF probiert, aber das Ergebnis war ein totales Chaos... Jemand Ideen?

Gruß desmo

Yokurt

Nachdem mein Raspi nach einem Neustart keine richtige Zeit bekommen hat stimmt die Zeit meiner Thermostate nicht mehr. Mittlerweile haben ein paar die Richtige, ein paar eine Falsche. Mit welchem Befehl kann ich die Zeit an die Thermostate senden? Interessehalber, wann wird automatisch synchronisiert?

CBSnake

Moin,
mit set device systime, erklärt sich aber durch aufklappen des Set - Menü selbst ;-)
Grüße
Achim

Gesendet von meinem SM-P605 mit Tapatalk

FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

Yokurt

Danke. Ja, da hätte man selbst drauf kommen können...

tkaiser

Hallo
Ich habe eine Frage zu meinem HM-CC-RT-DN und HM-TC-IT-WM-W-EU
Ich habe das Wandthermostat mit dem Heizungsventil über fehm verbunden und über den befehl :
setWandthermostat_Climate tempList Mon 06:00 17.0 09:00 16.0 12:00 15.5 14:00 16.0 16:30 21.0 22:00 19.0 22:30 16.0 24:00 16.0 eingegeben (bei beiden devices und get Configgemacht) .das ganze für die ganze Woche.
Reicht es wenn ich danach "set controlMode day" mache
Oft funktioniert das ganze nähmlich leider nicht
Im Bad habe ich nur ein HM-CC-RT-DN wo ich das gleiche eingetragen habe und auch da funktioniert es nicht wirklich zufriedenstellend. Zu verschiedenen Zeiten wird die Temp. einfach angehoben

Gruß
tkaiser(Anfänger)
HM-ES-PMSw1-Pl, HM-TC-IT-WM-W-EU, HM-CC-RT-DN,
HM-LC-DIM1T-FM, HM-SEC-SCo, Harmony-Hub,Raspi3.
CUL 868, nanoCUL 433

Thorsten Pferdekaemper

Zitat von: tkaiser am 04 Januar 2017, 20:09:28Reicht es wenn ich danach "set controlMode day" mache
Ich denke, dass das Teil dann einfach auf die als Tagestemperatur eingestellte Temperatur geht. (Irgendwo gibt's dafür auch ein Register, denke ich.) Was Du willst ist wahrscheinlich "set controlMode auto".
Gruß,
   Thorsten
FUIP

tkaiser

Hallo Thorsten,
Danke erstmal für deine Antwort
Was ich möchte ist das die devices die Tagesprogramme
Abspulen,wenn ich set controlMode day eingebe
In den Readings steht dann auch unter controMode set day.
Nach einer Weile steht da aber wieder auto.
Sollte da dann nicht controlMode day stehen?
Gruß
auch Thorsten
HM-ES-PMSw1-Pl, HM-TC-IT-WM-W-EU, HM-CC-RT-DN,
HM-LC-DIM1T-FM, HM-SEC-SCo, Harmony-Hub,Raspi3.
CUL 868, nanoCUL 433

MadMax-FHEM

Hi Thorsten (tkaiser),

was controlMode day genau ist weiß ich nicht (steht auch nicht im Manual) aber da es auch ein controlMode night gibt und sowas wie "Tag und Nacht-Temps" glaube ich eher, dass es (kurzzeitig) auf die eingestellte (Register) Tag bzw. Nacht-Temperatur eingestellt wird.

Was du willst ist definitiv: controlMode auto!

Mit controlMode auto wird abgearbeitet, was in den Templisten steht.

Allerdings hast du sehr eigenartige Temperaturwerte:

06:00 17.0 09:00 16.0 12:00 15.5 14:00 16.0 16:30 21.0 22:00 19.0 22:30 16.0 24:00 16.0

00:00 bis 06:00 17.0
06:00 bis 09:00 16.0
09:00 bis 12:00 15.5
12:00 bis 14:00 16.0
14:00 bis 16:30 21.0
16:30 bis 22:00 19.0
22:00 bis 22:30 16.0
22:30 bis 24:00 16.0

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tkaiser

Hallo Joachim,
Ich hatte das mit den tempListen falsch verstanden
Ich habe gestern nich neue tempLisgen erstellt und eingegeben und heute lief das Programm so ab wie
Ich sie eingehen habe bei set contolMode auto
Danke für deine Hilfe
Gruß
Thorsten
HM-ES-PMSw1-Pl, HM-TC-IT-WM-W-EU, HM-CC-RT-DN,
HM-LC-DIM1T-FM, HM-SEC-SCo, Harmony-Hub,Raspi3.
CUL 868, nanoCUL 433

MadMax-FHEM

Hi Thorsten,

bitte gerne!

Viel Spaß! Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ChHerrm

Hallo! :)
Ich probiere gerade per FHEM und CCU2 ein Heizungsthermostat HM-CC-RT-DN anzusprechen.

Folgendes funktioniert:

define HM_HM_CC_RT_DN_NEQ1011241 HMCCUDEV NEQ1011241
attr HM_HM_CC_RT_DN_NEQ1011241 IODev HMLAN1
attr HM_HM_CC_RT_DN_NEQ1011241 alias Bad_Thermostat
attr HM_HM_CC_RT_DN_NEQ1011241 ccureadingfilter (^UNREACH|LOWBAT|TEMPERATURE|VALVE_STATE|CONTROL)
attr HM_HM_CC_RT_DN_NEQ1011241 ccureadingformat datapoint
attr HM_HM_CC_RT_DN_NEQ1011241 cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_HM_CC_RT_DN_NEQ1011241 controldatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1011241 event-on-change-reading .*
attr HM_HM_CC_RT_DN_NEQ1011241 eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr HM_HM_CC_RT_DN_NEQ1011241 group Raumklima
attr HM_HM_CC_RT_DN_NEQ1011241 room Wohnzimmer
attr HM_HM_CC_RT_DN_NEQ1011241 stateFormat Temperatur: 4.ACTUAL_TEMPERATURE°C\
Batterie: 4.BATTERY_STATE[V]\
Ventil: 4.VALVE_STATE%
attr HM_HM_CC_RT_DN_NEQ1011241 statedatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1011241 stripnumber 1
attr HM_HM_CC_RT_DN_NEQ1011241 substexcl control
attr HM_HM_CC_RT_DN_NEQ1011241 substitute UNREACH,LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
attr HM_HM_CC_RT_DN_NEQ1011241 webCmd control:Auto:Manu:Boost:on:off
attr HM_HM_CC_RT_DN_NEQ1011241 widgetOverride control:slider,3.5,0.5,30.5,1


Daraus ergibt sich die folgende Darstellung Heizung1.JPG. So weit läuft das alles bestens, das Thermostat reagiert auf alle Befehle.

Ich würde jedoch gerne meine Darstellung wie in Heizung2.JPG zum Laufen kriegen. Der Code dafür sieht momentan wie unten eingefügt aus, funktioniert aber NICHT. Das Auslesen funktioniert ohne Probleme, das Setzen jedoch nicht. Ich habe mich an den Beispielen aus https://wiki.fhem.de/wiki/ReadingsGroup#Heizungsteuerung_f.C3.BCr_HM_Wand-_und_Heizk.C3.B6rperthermostate orientiert. Mein Problem bezieht sich dabei auf das attr commands. Es funktioniert z.B. set %DEVICE datapoint 4.SET_TEMPERATURE 22.0 ohne Probleme, als "Button" steht dann sollsetz in der Darstellung. Ich hätte aber gerne eine Dropdown-List, mit der ich mich aber sehr schwer tue :-[ In der Art wie ich es jetzt versucht habe (s. unten), erhalte ich die Meldung invalid datapoint. Kann mir bitte jemand damit auf die Sprünge helfen? :-/



define HeizungRg readingsGroup <%sani_heating@D4BA90>,<>,<Soll neu>,<>,<Ist>,<>,<Ventil>,<>,<Modus>,<>,<Batterie>,<>,<Boost>,<>,<Auto On>,<>,<Manu On>\
HM_HM_CC_RT_DN_NEQ1011241:<>,<sollsetz>,<>,4.ACTUAL_TEMPERATURE,<>,4.VALVE_STATE,<>,controlMode,<>,<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=3.0){"%measure_battery_100\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.7){"%measure_battery_75\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.5){"%measure_battery_50\@orange"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.2){"%measure_battery_25\@orange"}else{"%measure_battery_0\@red"}}>,<>,<%sani_heating_boost>,<>,<%sani_heating_automatic>,<>,<%sani_heating_manual>\
HM_HM_CC_RT_DN_NEQ1005861:,<>,desired-temp,<>,measured-temp,<>,ValvePosition,<>,controlMode,<>,<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=3.0){"%measure_battery_100\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.7){"%measure_battery_75\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.5){"%measure_battery_50\@orange"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.2){"%measure_battery_25\@orange"}else{"%measure_battery_0\@red"}}>,<>,<%sani_heating_boost>,<>,<%sani_heating_automatic>,<>,<%sani_heating_manual>
attr HeizungRg commands {'HeizungRg.sollsetz'=>'set %DEVICE datapoint 4.SET_TEMPERATURE:off,5.0,7.0,20.0,22.0,23.0',"HeizungRg.sani_heating_boost"=>"set %DEVICE controlMode boost","HeizungRg.sani_heating_automatic"=>"set %DEVICE controlMode auto","HeizungRg.sani_heating_manual"=>"set %DEVICE controlMode manu"}
attr HeizungRg group Raumklima
attr HeizungRg nameStyle style="text-align:left;;"
attr HeizungRg nolinks 1
attr HeizungRg room Wohnzimmer
attr HeizungRg valueFormat {if(($READING eq "4.ACTUAL_TEMPERATURE")or( $READING eq "4.SET_TEMPERATURE") ){ "$VALUE °C"}elsif(($READING eq "4.VALVE_STATE")){"$VALUE %"}}
attr HeizungRg valueIcon {'controlMode.manual' => 'sani_heating_manual','controlMode.auto' => 'sani_heating_automatic','ValvePosition.0' => 'sani_heating@blue','ValvePosition.1' => 'sani_heating@red'}


ChHerrm

Lässt sich dabei nichts machen? :-/ Die Solltemperatur muss doch nach wie vor auch in der Readingsgroup einstellbar sein, auch wenn es scheinbar den Eintrag desired-temp nun unter diesem Namen nicht mehr gibt. Oder?

ChHerrm

Die Umschaltung zwischen Auto Manu Boost läuft inzwischen. Folgender Code dafür:

DEF:

<%sani_heating@D4BA90>,<>,<Soll>,<>,<Soll neu>,<>,<Ist>,<>,<Ventil>,<>,<Modus>,<>,<Batterie>,<>,<Boost>,<>,<Auto On>,<>,<Manu On>,<>,<An>,<>,<Aus>
HM_HM_CC_RT_DN_NEQ1011241:<>,4.SET_TEMPERATURE,<>,<sollsetz>,<>,4.ACTUAL_TEMPERATURE,<>,4.VALVE_STATE,<>,<%sani_heating@D4BA90>,<>,<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"ubatterie","0")>=3.0){"%measure_battery_100"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"ubatterie","0")>=2.7){"%measure_battery_75"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"ubatterie","0")>=2.5){"%measure_battery_50"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"ubatterie","0")>=2.2){"%measure_battery_25"}else{"%measure_battery_25"}}>,<>,<%sani_heating_boost>,<>,<%sani_heating_automatic>,<>,<%sani_heating_manual>,<>,<%general_an>,<>,<%general_aus>


Und folgende Attribute:

commands
{"HeizungRg.sollsetz" => "set %DEVICE 4. SET_TEMPERATURE sollsetz","HeizungRg.sani_heating_boost"=>"set %DEVICE Boost","HeizungRg.sani_heating_automatic"=>"set %DEVICE Auto","HeizungRg.sani_heating_manual"=>"set %DEVICE Manu","HeizungRg.general_an"=>"set %DEVICE on","HeizungRg.general_aus"=>"set %DEVICE off","HeizungRg.ubatterie"=>"get %DEVICE datapoint 4.BATTERY_STATE"}
deleteattr
eventMap
/datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/


Jetzt brauche ich aber nach wie vor Hilfe bei dem Setzen der Solltemperatur. Auch die Anzeige des aktuellen Modus sowie der Batteriespannung hab ich noch nicht hinbekommen:-(
Bin für jeden Hinweis dankbar! :-/

MadMax-FHEM

@ChHerrm: ein wenig mehr Kontext wäre wohl hilfreich.

Ich kann nur raten:

HM-CC-RT-DN an CCU2 Anbindung dann per HMCCU-Modul??

Hier im Thread geht es zwar prinzipiell um den HM-CC-RT-DN aber wenn ich die Historie so durchschaue eher um direkte Anbindung an fhem also per HM-IODev...

Vielleicht gibt es schneller/bessere Hilfe, wenn du einen neuen Thread aufmachst: "Probleme/Fragen bzgl. HM-CC-RT-DN an CCU2 Anbindung per HMCCU-Modul" oder so...

Weil bei der Konstellation HM-CC-RT-DN an CCU2 und eingebunden per HMCCU-Modul kenne ich mich leider nicht aus...
...evtl./wahrsch. auch kein anderer der "Mitleser"...

Gruß und sorry, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)