Hallo, habe erfreut das Modul Heating_Control gefunden, um meine Homematic-Thermostate vernünftig zu schalten.
Eigentlich kann das Modul das, was ich mir vorstelle.
Leider habe ich da noch Probleme, irgendwie schnalle ich das nicht so richtig offenbar :(
Vielleicht kann mir ja jemand helfen:
Die Definition und das Ausschalten klappt wunderbar.
Beim Wiederenschalten wird die Wunschtemperatur allerdings nicht wieder eingeschaltet.
Letztendlich gibt es ein Problem mit {Heating_Control_SetAllTemps()}
Die Definition ist
define HCB Heating_Control HzThrmst1 7|08:30|20 8|06:30|20 22:00|16
Die Temperatur wird nicht gesetzt, im Log kommt folgender Fehler (s.u.). Muss man noch angeben, dass es sich um Homematic handelt und nicht um FHT??
Danke im voraus,
2016.04.12 17:55:39 4: [HCH] Update - past timer activated
2016.04.12 17:55:39 4: [HCH] device type CUL_HM:HM-CC-RT-DN recognized, setModifier:desired-temp
2016.04.12 17:55:39 4: [HCH] aktParam:14.0 newParam:16.0 - is not disabled
2016.04.12 17:55:39 4: [HCH] command: 'set $NAME desired-temp $EVENT' executed with %NAME=>HzThrmst2,%EVENT=>16.0
2016.04.12 17:55:39 5: Cmd: >set $NAME desired-temp $EVENT<
2016.04.12 17:55:39 3: Unknown argument desired-temp, choose one of assignHmKey burstXmit clear:readings,trigger,register,oldRegs,rssi,msgEvents,attack,all deviceRename fwUpdate getConfig getRegRaw inhibit:on,off raw regBulk regSet reset sysTime unpair
Ich kenne Heating_Control nicht, aber bei HM funktioniert das Setzen der Wunschtemperatur auf dem <HM-Name>_Clima Kanal. Daher die Fehlermeldung.
Ja, danke. Leider wird das Setzen durch Heating_Control gemacht .. :(
Zitat2016.04.12 17:55:39 4: [HCH] command: 'set $NAME desired-temp $EVENT' executed with %NAME=>HzThrmst2,%EVENT=>16.0
Wenn ich mir das genauer ansehe, müsste command etwa so aussehen:
Zitatset $NAME_Clima desired-temp $EVENT
oder die Definition müsste angepasst werden, etwa so:
ZitatHzThrmst1_Clima
Kann man das anpassen? Was sagt die CommandRef dazu? Gibt es einen Wiki-Artikel zu Heating_Control?
http://fhem.de/commandref.html#Heating_Control
da steht alles drinnen
Unknown argument desired-temp, choose one of assignHmKey burstXmit clear:readings,trigger,register,oldRes,rssi,msgEvents,attack,all deviceRename fwUpdate getConfig getRegRaw inhibit:on,off raw regBulk regSet reset sysTime unpair
Deutet darauf hin dass das zu Schaltende Gerät nicht Native unterstützt wirdwird.
Von welchem Typ ist es?
Danke, Ellert, ja, die Definition ändere ich, sieht gut aus !
Sorry, muss nochmal nachfragen, hoffe, das ist in der Anfängerecke erlaubt ....
Habe nunmehr die Definition des Moduls geändert wie folgt:
define HCB Heating_Control HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16
Nunmehr kann ich immer noch mit der obigen Konstruktion ausschalten, allerdings immer noch nicht einschalten. Im Log steht:
2016.04.13 08:17:59 5: Cmd: >set HCAutomatik on<
2016.04.13 08:17:59 4: dummy set HCAutomatik on
2016.04.13 08:17:59 5: Triggering HCAutomatik (1 changes)
2016.04.13 08:17:59 5: Notify loop for HCAutomatik on
2016.04.13 08:17:59 5: Cmd: >{Heating_Control_SetAllTemps()}<
2016.04.13 08:17:59 3: [HCB] no switches to send, due to possible errors.
2016.04.13 08:17:59 3: [HCH] no switches to send, due to possible errors.
2016.04.13 08:17:59 3: [HCK] no switches to send, due to possible errors.
2016.04.13 08:17:59 3: [HCT] no switches to send, due to possible errors.
2016.04.13 08:17:59 3: Heating_Control_SetAllTemps() done on: HCB HCH HCK HCT
2016.04.13 08:17:59 5: Triggering HeatingControl.Aktivator (3 changes)
2016.04.13 08:17:59 5: Notify loop for HeatingControl.Aktivator cmd_nr: 1
Die Temperaturen werden nicht verstellt. Mit commandref kann ich dafür keine Erklärung finden. ??
define HCB Heating_Control HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16 {fhem ("set $name <desired-temp> $event")}
<desired-temp> bitte mit dem ersetzen was dein Gerät versteht.
Bei $name und $event bin ich mir nicht sicher - siehe Doku.
Wenn etwas wie { ... } angegeben wird wird genau der command erzeugt und an fhem gesendet
Wenn du mir verätst welchen typ das Gerät HzThrmst1_Clima hat, kann ich das Gerät auch native unterstützen.
Hallo Dietmar,
das sind Homematic-Thermostate, also HM-CC-RT-DN.
Ich dachte, die werden nativ unterstützt? Ohne dass ein spezielles Command angegeben werden muss.
Auf jeden Fall geht ja der Befehl set ... desired-temp
Die Definition HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16 müsste doch so ok sein? Oder hat er da Probleme?
Edit: hier die Readings ... den zeitpunkt heute morgen hat er irgendwie verpasst ...
currValue 16 2016-04-12 22:33:36
disabled 0 2016-04-13 08:28:39
nextUpdate 2016-04-13 06:30:00 2016-04-12 22:33:36
nextValue 20 2016-04-12 22:33:36
state 16 2016-04-12 22:33:36
switchInThePast habe ich manuell eingestellt.
ja, Homematik wird native unterstützt.
stelle bitte nur beim HCB verbose auf 5
Dann das Protokoll an mich.
:D
Habe ich Dir gesendet. Viel sehen tu ich da nicht, aber Du hast mehr Erfahrung ...
bei mir funktioniert deine Definition
Merkwürdig. Schalte ich den Schalter auf "aus", wird per notify alles auf 14° C gestellt. Das funktioniert sofort.
Ich sehe erst "Cmds pending", dann wird der Reihe nach geschaltet.
Schalte ich wieder ein, passiert gar nichts (bzw. die Fehlermeldungen im Log, s.o.)
Erst wenn dann wieder der nächste Schaltvorgang anstehen würde, wird die normale Temperatur wieder eingestellt.
Wünschenswert wäre, wenn bei Anschalten der Heizplan wieder aktiv wäre - und wenn beim Ausschalten die Temperatur dauerhaft auf 14° C bleibt.
??
So, habe mal die ganzen TempListings in den Devices gelöscht mit 24:00 12 (alles auf 12 °C den ganzen Tag gestellt),
damit nur noch über dieses Modul gesteuert wird.
Nach Abarbeiten der ganzen Settings steht erstaunlicherweise alle desired temps auf 12, sollte ja eigentlich erst beim nächsten Schaltzeitpunkt der Fall sein.
Ich habe dann "switchInThePast" gelöscht.
Dann {Heating_Control_SetAllTemps()}
=> bringt keine Fehlermeldung mehr, allerdings wird desired temp nicht gesetzt. Bleibt auf 12.
Die Readings akualisieren sich nicht:
currValue
16
2016-04-12 22:33:36
disabled
0
2016-04-14 13:35:16
nextUpdate
2016-04-13 06:30:00
2016-04-12 22:33:36
nextValue
20
2016-04-12 22:33:36
state
16
2016-04-12 22:33:36
Edit: diese Meldung war übrigens der Grund für das Setzen des Attr:
Zitat016.04.14 17:46:06 4: [HCH] no switch in the yesterdays because of the devices type(Heating_Control is not recognized as heating) - use attr switchInThePas
Ist unverständlich für mich.
HC kann kein Gerät vom Typ Heating_Control steuern. Du musst ein Gerät angeben, das mit desired-temp oder so gesteuert werden kann.
Ich vermute du hast zu viele Parameter angegeben, und deshalb werden die Zeiten nicht richtig geparst.
define HC Heating_Control zusteuerndesGerät listeDerZeiten <command>
gib mal in fhem list HCB an und poste den output.
Die Liste der Zeiten muss detailiert zu sehen sein.
Gerne:
Internals:
CFGFN
COMMAND HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16
CONDITION
DEF Heating_Control HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16
DEVICE Heating_Control
GlobalDaylistSpec
LANGUAGE de
NAME HCB
NR 46884
STATE 16
STILLDONETIME 0
TYPE Heating_Control
Readings:
2016-04-12 22:33:36 currValue 16
2016-04-14 13:35:16 disabled 0
2016-04-12 22:33:36 nextUpdate 2016-04-13 06:30:00
2016-04-12 22:33:36 nextValue 20
2016-04-12 22:33:36 state 16
SWITCHINGTIMES:
Timer:
Hcb_settimerofday:
HASH HCB
MODIFIER SetTimerOfDay
NAME HCB_SetTimerOfDay
SETTIMERATMIDNIGHT 1
Hcb_delayed:
HASH HCB
MODIFIER delayed
NAME HCB_delayed
Daynumber:
!$we 8
$we 7
di 2
do 4
fr 5
mi 3
mo 1
sa 6
so 0
Helper:
daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
Switchingtime:
Longdays:
de:
Sonntag
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Wochenende
Werktags
en:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
weekend
weekdays
fr:
Dimanche
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
weekend
jours de la semaine
Profil:
Shortdays:
de:
so
mo
di
mi
do
fr
sa
$we
!$we
en:
su
mo
tu
we
th
fr
sa
$we
!$we
fr:
di
lu
ma
me
je
ve
sa
$we
!$we
Attributes:
alias Bad
disable 0
group Heizplan
room Bad,Heizung
verbose 0
windowSensor FenSch1
Edit: so hatte ich das definiert:
define HCB Heating_Control HzThrmst1 7|08:30|20 8|06:30|20 22:00|16
bei dir fehlt eine Menge inder list:
Internals:
CFGFN
COMMAND
CONDITION
DEF HzThrmst1 7|08:30|20 8|06:30|20 22:00|16
DEVICE HzThrmst1
GlobalDaylistSpec
LANGUAGE de
NAME HCx
NR 480
Profil 0: Sonntag 08:30:00 20, 22:00:00 16
Profil 1: Montag 06:30:00 20, 22:00:00 16
Profil 2: Dienstag 06:30:00 20, 22:00:00 16
Profil 3: Mittwoch 06:30:00 20, 22:00:00 16
Profil 4: Donnerstag 06:30:00 20, 22:00:00 16
Profil 5: Freitag 06:30:00 20, 22:00:00 16
Profil 6: Samstag 08:30:00 20, 22:00:00 16
Profil 7: Wochenende 08:30:00 20
Profil 8: Werktags 06:30:00 20
STATE active
STILLDONETIME 0
TYPE Heating_Control
Readings:
2016-04-14 23:39:26 currValue 16
2016-04-14 23:39:26 nextUpdate 2016-04-15 06:30:00
2016-04-14 23:39:26 nextValue 20
2016-04-14 23:39:26 state active
SWITCHINGTIMES:
7|08:30|20
8|06:30|20
22:00|16
Timer:
:::::
Profil 0: Sonntag 08:30:00 20, 22:00:00 16
Profil 1: Montag 06:30:00 20, 22:00:00 16
Profil 2: Dienstag 06:30:00 20, 22:00:00 16
Profil 3: Mittwoch 06:30:00 20, 22:00:00 16
Profil 4: Donnerstag 06:30:00 20, 22:00:00 16
Profil 5: Freitag 06:30:00 20, 22:00:00 16
Profil 6: Samstag 08:30:00 20, 22:00:00 16
Profil 7: Wochenende 08:30:00 20
Profil 8: Werktags 06:30:00 20
falsch:
DEF Heating_Control HzThrmst1_Clima 7|08:30|20 8|06:30|20 22:00|16
richtig:
DEF HzThrmst1 7|08:30|20 8|06:30|20 22:00|16
Danke!
Ich weiß jetzt auch die Ursache: ich hatte die Defs im Laufe der Tests mit modify geändert, dabei aber den Typ Heating_Control drin gelassen.
Jetzt sieht alles viel besser aus. Ich teste noch weiter.
Du hast mir sehr geholfen!
:)
PS: jetzt habe ich aber wieder folgendes Problem:
2016.04.15 08:31:52 4: [HCB] device type CUL_HM:HM-CC-RT-DN recognized, setModifier:desired-temp
2016.04.15 08:31:52 4: [HCB] aktParam:14.0 newParam:20.0 - is not disabled
2016.04.15 08:31:52 4: [HCB] command: 'set $NAME desired-temp $EVENT' executed with %EVENT=>20.0,%NAME=>HzThrmst1
2016.04.15 08:31:52 3: Unknown argument desired-temp, choose one of assignHmKey burstXmit clear:readings,trigger,register,oldRegs,rssi,msgEvents,attack,all deviceRename fwUpdate getConfig getRegRaw inhibit:on,off raw regBulk regSet reset sysTime unpair
Das war der Grund, warum ich nicht HzThrmst1, sondern HzThrmst1_Clima als Device genommen habe.
Was meinst Du?
Edit: mit device HzThrmst1_Clima klappt es! Nochmal vielen Dank.