Unterschiedliches Verhalten HM-CC-TC - Verständnisproblem - Funkproblem

Begonnen von Charlieman, 28 Januar 2014, 21:18:44

Vorheriges Thema - Nächstes Thema

Charlieman

Hallo,

irgendwie hab ich entweder ein grundsätzliches Verständnisproblem oder ein total unterschiedliches Verhalten meiner HM-CC-TC. Oder es ist ein Funkproblem HM LAN zu den HM-CC-TC. Kurz angerissen. Ich hab mir in der 99_myUtils.pm ein paar Kommandos eingebaut, die ich eigentlich auf dem Web-Interface per Knopfdruck aufrufen wollte. Soweit kam ich bisher nicht.

Beispiel:
sub
Heizen_WoZimmer_Manu()
{
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate controlMode manual")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate displayTemp setpoint")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate desired-temp off")};
   { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};
}
# End Heizen_WoZimmer_Manu

sub
Heizen_WoZimmer_Auto()
{
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate controlMode auto")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate displayTemp actual")};
   { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};
}
# End Heizen_WoZimmer_Auto

sollte dazu dienen, einfach die Heizung an- und abzuschalten (z.B. beim Lüften). Testen wollte ich es mit dem manuellen Aufruf per {Heizen_WoZimmer_Manu} bzw. {Heizen_WoZimmer_Auto}. Gleiche Routinen hab ich für andere HM-CC-TC, wie z.B. im Bad oder der Diele eingerichtet.

OK, wenn ich {Heizen_WoZimmer_Manu} oder das äquivalent im Bad (oder Diele oder...) aufrufe, geht das zumeist. Im Wohnzimmer dauert es vielleicht etwas länger, aber in den meisten Fällen funktioniert es (oder zu 80%). Aber immer krieg ich nach einer gewissen Zeit : protState CMDs_done
Jetzt möchte ich das Gegenteil erreichen. Mit {Heizen_WoZimmer_Auto} sollte das ja soweit eigentlich kein Problem sein. Aber:

Zumeist stellt sich der HM-CC-TC auf Auto. Nicht aber auf 'displayTemp actual'. Und schon gar nicht wird die Temperatur von OFF auf die normalen 20Grad eingestellt. Ganz anders hingegen beim HM-CC-TC in der Diele. Dort reicht das aus um ihn auf Auto, 20Grad (oder was zu der Zeit aktuell ist) und 'displayTemp actual'. Der Unterschied in der Entfernung ist vernachlässigbar und eine Ziegelmauer mehr (kein Beton mit Armierung!). protState CMDs_done krieg ich in beiden Fällen.

Mach ich was falsch? Funksignal zum Wohnzimmer lt. FHEM:
rssi_HM_LAN avg:-59.2 min:-62 max:-53 lst:-53 cnt:5
rssi_at_HM_LAN avg:-58.4 min:-73 max:-54 lst:-56 cnt:2384

Gruß, Charlieman

martinp876

hi Charlieman,

hm - controlMode und displayTemp sind eigentlich registersettings. Die Kommandos (historisch) verschleiern dies. Es könnte Probleme geben bei mehrfachen register schreiben - evtl ist das Device zu langsam (beim RT festgestellt).
Also nutze die Register kommandos - die kann man steuern:

   { fhem ("set Heizen.HM.WoZimmer.TC.Climate desired-temp off")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet prep controlMode manual")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet exec displayTemp setpoint")};
   { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};

   { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet prep controlMode auto")};
   { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet exec displayTemp actual")};
   { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};

einen Versuch ist es wert
Gruss Martin

Charlieman

Danke Martin,

ich hab das jetzt mal versucht. Das Ergebnis ist leider nicht wie erhofft. Wenn ich jetzt mit {Heizen_WoZimmer_Manu} ausschalte dauert es eine gefühlte Ewigkeit (ca. 5 min vorher eher 1-2 min), bis der TC reagiert. Zuerst wird scheinbar desired-temp off sofort ausgeführt (hab nachgesehen; Tagestemperatur-Sternchen verschwindet und TC steht auf OFF) bleibt aber auf Auto/Actual. Dann, irgendwann, arbeitet der TC den Rest ab und ist dann im gewünschten Modus.

Danach schalte ich zurück mit {Heizen_WoZimmer_Auto} und es tut sich gar nichts mehr. Es bleibt bei OFF/Manual/Setpoint. Interessant finde ich hierbei Folgendes. Das LOG zeigt den Befehl an:

2014.01.29 18:59:27 2: CUL_HM set Heizen.HM.WoZimmer.TC.Climate regSet prep controlMode auto
2014.01.29 18:59:27 2: CUL_HM set Heizen.HM.WoZimmer.TC.Climate regSet exec displayTemp actual
2014.01.29 18:59:27 2: CUL_HM set Heizen.HM.WoZimmer.TC burstXmit

Aber beim protState ist sofort CMDs_done, was etwas ungewöhnlich ist. Die Abarbeitung sehe ich dort zumeist. Jedoch ist "protSnd 9 last_at:2014-01-29 18:59:27", was dem Log entspricht. Hier hört's bei mir jetzt echt auf mit meinem Verständnis.

Any ideas? Ist der TC fehlerhaft? Die Funkverbindung sieht, wenn ich verstehe was ich lese, soweit OK aus.

Gruss, Charlieman

martinp876

Hi Charlieman,

mal sehen
- mein erster Fehler: erst mode schalten, dann desired-temp setzen. Sonst wirkt das beim TC nicht korrekt, da die desired-temp für jeden mode etwqas unterschiedlich ist.

Probiers noch einmal so. Das mit dem CMD_done muss ich einmal ansehen, ob ich es hin bekomme. Wenn done drin steht sollte nichts mehr pending sein (ausser evtl ein Register-lesen)

Gruss Martin

Charlieman

Danke Martin,

ich hab das jetzt so verstanden:

sub
Heizen_WoZimmer_Manu()
{
  { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet prep controlMode manual")};
  { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet exec displayTemp setpoint")};
  { fhem ("set Heizen.HM.WoZimmer.TC.Climate desired-temp off")};
  { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};
}
# End Heizen_WoZimmer_Manu

sub
Heizen_WoZimmer_Auto()
{
  { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet prep controlMode auto")};
  { fhem ("set Heizen.HM.WoZimmer.TC.Climate regSet exec displayTemp actual")};
  { fhem ("set Heizen.HM.WoZimmer.TC burstXmit")};
}
# End Heizen_WoZimmer_Auto

Der Unterschied beim Command {Heizen_WoZimmer_Manu} in der Umsetzungsgeschwindigkeit ist Woh! Das passiert nicht mehr in 1-2 min. Das ist mehr oder weniger mit einem Fingerschnipsen umgesetzt.

Nur Rückwärts mit {Heizen_WoZimmer_Auto} gehts nicht. Hab extra 15 Min. zwischen dem ersten und zweiten Command (reicht das?) gelegt. FHEM zeigt sofort 'protState CMDs_done' und der TC hat den Status OFF/Manual/Setpoint.  Also m.E. gar keine Reaktion. :(

Aber: Ich habe erstmals ein gleiches Verhalten beim TC in der Diele beobachtet. Dieser TC hat bei den gleichen Commands jetzt erstmals auch den Status OFF/Manual/Setpoint.  Das war vorher anders. :(

War leider nicht das Ergebnis, was ich erzielen wollte.

Gruß, Charlieman
btw: Kannst Du mir erklären, warum 'set Heizen.HM.WoZimmer.TC burstXmit' funktioniert, aber 'set Heizen.HM.WoZimmer.TC.Climate burstXmit' nach meinem Gefühl gar keine Reaktion bewirkt?

martinp876

Hallo Charlieman,

du kannst die Kommandos immer einfach einmal in die Kommandozeile eingeben und die Reaktion prüfen - da bekommst du dann auch Fehlermeldungen.

burstXmit sollte auch bei den channels funktionieren, da ist kein Unterschied.

Wenn du noch ein Problem beim rückschalten hast (auto) logge das doch einmal (roh). Ich probieren auch einmal

Gruss Martin

martinp876