FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Puccini am 03 November 2020, 21:34:11

Titel: Weekdaytimer - mehrere Befehle absetzen
Beitrag von: Puccini am 03 November 2020, 21:34:11
Hi,

Ich weiß gerade nicht warum folgendes nicht funktioniert:

Weekdaytimer für ein Thermostat. Es muss der HeizungsModus gesetzt werden und anschließend der aktuelle Modus nochmal abgefragt werden (wird leider nicht automatisch zurück gemeldet)

Die def des timers:
Heizung_Kind 8|15:00|tmHeating 8|18:00|tmEnergySaveHeating 7|07:00|tmHeating 7|18:00|tmEnergySaveHeating 19:00|tmOff 06:00|tmEnergySaveHeating

Und zusätzlich hab ich ein commandtemplate definiert:
  set $NAME $EVENT;; get $NAME thermostatMode

Das mit dem doppelten Semikolon hab ich hier irgendwo gelesen.
Leider wird jetzt weder der Status geändert noch abgefragt...
Was mach ich da falsch?
Ich hatte auch ein Beispiel gesehen wo im DEF mehrere fhem commands in geschweiften klammern standen...
Müsste ich das versuchen?

Danke

PS: Und wie trigger ich die Funktion zum testen obs geht, ohne auf die Zeit warten zu müssen :)
Titel: Antw:Weekdaytimer - mehrere Befehle absetzen
Beitrag von: amenomade am 04 November 2020, 01:42:00
Das mit doppelten Semikolon ist an einigen Stellen wei z.B. Raw Definition richtig, aber an anderen falsch. Kannst Du bitte ein "list" vom Device posten, damit man genau sieht, was Du eingestellt hast?
Titel: Antw:Weekdaytimer - mehrere Befehle absetzen
Beitrag von: Beta-User am 04 November 2020, 07:31:45
Ad PS: Es gibt zwei setter, die das Kommando bei einer Heizung direkt ausführen sollten... (WDT_params single und enable)

Ich kann im Moment auch keinen Grund erkennen, warum der WDT nicht genau das tun sollte, was du haben willst - eigentlich sogar mit nur einem ";". Es wird "AnalyzeCommandChain(undef, $command);" ausgeführt - das müßte eigentlich in etwa dasselbe ergeben, wie wenn du was in die Kommandozeile eingibst.

Ob der $command korrekt gefüllt wird, könnte man an einem list ablesen - fehlt (noch dazu ist das der falsche Forenbereich, btw. - siehe MAINTAINER.txt)...

Meine Vermutung: Der doppelte command ist eventuell kontraproduktiv, das könnte sich auf der Funkebene in die Quere kommen. Versuche das mal über die Kommandozeile, ob es dann klappt. Wenn nicht, "sollte" ein sleep 5 oder so dazwischen eingebaut werden.

"Sollte" nur in Anführungszeichen, denn eigentlich ist das zugrundeliegende Problem mAn. etwas anders gelagert: Man sollte grundsätzlich davon ausgehen, dass ZWave-Kommandos ankommen, und in Teilen kann man das kompensieren, wenn man mit userReadings auf "transmit" arbeitet. Bin da grade auch am rumexperimentieren, evtl. schaust du mal in den ZWave-Bereich, da gibt es einen "Konfigurieren"-Thread zu dem Spirit (falls das die Type ist; sinngemäß dürfte das aber für alle ZWave-Thermostate gelten).
Titel: Antw:Weekdaytimer - mehrere Befehle absetzen
Beitrag von: Puccini am 04 November 2020, 07:52:59
Hi,

sorry, das LIST hatte ich nicht gepostet da ich das vom Handy aus geschrieben hatte ^^

Hier das Listing:
defmod Zeit_Heizung_Kind_Woche WeekdayTimer Heizung_Kind 8|15:00|tmHeating 8|18:00|tmEnergySaveHeating 7|07:00|tmHeating 7|18:00|tmEnergySaveHeating 19:00|tmOff 06:00|tmEnergySaveHeating
attr Zeit_Heizung_Kind_Woche userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr Zeit_Heizung_Kind_Woche commandTemplate set $NAME $EVENT;;get $NAME thermostatMode
attr Zeit_Heizung_Kind_Woche devStateIcon 0:sani_heating_timer@green 1:sani_heating_timer@white
attr Zeit_Heizung_Kind_Woche disable 0
attr Zeit_Heizung_Kind_Woche icon clock
attr Zeit_Heizung_Kind_Woche room Zeitsteuerung
attr Zeit_Heizung_Kind_Woche stateFormat disabled

setstate Zeit_Heizung_Kind_Woche 0
setstate Zeit_Heizung_Kind_Woche 2020-11-04 07:45:56 currValue tmEnergySaveHeating
setstate Zeit_Heizung_Kind_Woche 2020-09-19 14:57:56 disabled 0
setstate Zeit_Heizung_Kind_Woche 2020-11-04 07:45:56 nextUpdate 2020-11-04 15:00:00
setstate Zeit_Heizung_Kind_Woche 2020-11-04 07:45:56 nextValue tmHeating
setstate Zeit_Heizung_Kind_Woche 2020-11-04 07:45:56 state tmEnergySaveHeating



eine Anpassung hab ich gestern abend noch versucht, seit dem scheint es zu gehen!
Zwischen den ";;" und dem nächsten Befehl war ein Leerzeichen... Ggf. war das schon die Ursache?
Oder es ist wie Beta-User sagt: die zwei Commands kommen sich in die Quere...

Ich werde das weiter beobachten. Das mit dem Sleep klingt gut.
Das mit dem "userReadings auf transmit" versteh ich nicht... ;) Werde mich dazu aber auch mal noch belesen.

Und ja:
Es geht einfach über das "set enabled" und er führt die Befehle nochmals aus. Somit kann ich heute weiter testen.

Danke allen für die schnelle Hilfe!
Titel: Antw:Weekdaytimer - mehrere Befehle absetzen
Beitrag von: Beta-User am 04 November 2020, 11:24:46
Zitat von: Puccini am 04 November 2020, 07:52:59
Das mit dem "userReadings auf transmit" versteh ich nicht... ;) Werde mich dazu aber auch mal noch belesen.
Bezieht sich v.a. auf diesen Beitrag: https://forum.fhem.de/index.php/topic,112955.msg1097489.html#msg1097489 (klappt aber (noch?) nicht). Auch das "drumrum" und die diversen "Nebenthreads" sind ganz aufschlussreich, die @curt dazu eröffnet hat.

Falls du das ganze weiter in Richtung vollständiger Temperatur-Wochen-Pläne ausdifferenzieren wolltest, wäre evtl. auch "weekprofile" (iVm. WeekdayTimer" eine Sache, wobei mich dann - wegen der Funkproblematik - auch eine Rückmeldung zu dem hier interessieren würde: https://forum.fhem.de/index.php/topic,115546.0.html.