FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tomspatz am 12 Februar 2021, 09:14:43

Titel: Befehle im at verzögert ausführen
Beitrag von: tomspatz am 12 Februar 2021, 09:14:43
folgendes Konstrukt ist angedacht:
defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74,ThermostatKueche_75,ThermostatSchlafzimmer_76 setpoint

Um die Z-WaveFunklast zu reduzieren würde ich gerne die einzelnen "gets" mit 1 Sekunde Verzögerung ausführen.
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: CoolTux am 12 Februar 2021, 09:19:18
Zitat von: tomspatz am 12 Februar 2021, 09:14:43
folgendes Konstrukt ist angedacht:
defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74,ThermostatKueche_75,ThermostatSchlafzimmer_76 setpoint

Um die Z-WaveFunklast zu reduzieren würde ich gerne die einzelnen "gets" mit 1 Sekunde Verzögerung ausführen.

defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74, sleep 1, get ThermostatKueche_75, sleep 1, get ThermostatSchlafzimmer_76, sleep 1, setpoint
sollte gehen.
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Otto123 am 12 Februar 2021, 09:35:15
Da fehlen ein paar "Punkte"  :)
defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74; sleep 1; get ThermostatKueche_75; sleep 1; get ThermostatSchlafzimmer_76; sleep 1; setpoint
Gerätetrenner: ,
Befehlstrenner: ;

Ob das sleep vorm setpoint gewollt oder nötig ist weiß ich nicht.

Gruß Otto
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: CoolTux am 12 Februar 2021, 09:49:27
Zitat von: Otto123 am 12 Februar 2021, 09:35:15
Da fehlen ein paar "Punkte"  :)
defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74; sleep 1; get ThermostatKueche_75; sleep 1; get ThermostatSchlafzimmer_76; sleep 1; setpoint
Gerätetrenner: ,
Befehlstrenner: ;

Ob das sleep vorm setpoint gewollt oder nötig ist weiß ich nicht.

Gruß Otto

Danke Dir Otto, hatte ich glatt übersehen.


Grüße
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: TomLee am 12 Februar 2021, 12:54:55
Wenn man sich zu ZWave einliest ist die Erkenntnis das der get-Befehl um die aktuelle Temperatur zu erhalten so aussieht:

get <devicename> setpoint


Das, mit Komma getrennt, dann vermutlich nur die kurze Variante davon :

get ThermostatWohnzimmer_74,ThermostatKueche_75,ThermostatSchlafzimmer_76 setpoint

und so dann mit der einen Sekunde Verzögerung zwischen den Befehlen ?

get ThermostatWohnzimmer_74 setpoint; sleep 1; get ThermostatKueche_75 setpoint; sleep 1; get ThermostatSchlafzimmer_76 setpoint

Gruß

Thomas



Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Beta-User am 12 Februar 2021, 13:06:30
Ähm, also....

Zum einen sollte man versuchen, das get hier ganz zu vermeiden. Rudi hatte was in ZWDongle eingebaut, damit man bei einem Ack das Reading gesetzt bekommt. Evtl. reicht es, das betr. Attribut zu setzen?
Zum anderen: Der eine Spirit, den ich mein Eigen nenne, braucht manchmal sehr deutlich länger als die eine Sekunde, bis er sich regt (kann schon mal 15 Sek. dauern, der ist aber auch "ungünstig" platziert). Von daher: schau dir das mal kritisch an und passe die Zeiten ggf. dann entsprechend an, damit sich wirklich nichts ins Gehege kommt...
Zum dritten: Je nachdem für was man es braucht, wäre es ggf. eine Idee, die Abfrage etwas komplexer zu machen und z.B. das Alter des Readings zu berücksichtigen.

(Wie du schon schreibst: Weniger ist mehr bei ZWave...!)
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: tomspatz am 12 Februar 2021, 19:50:28
Zitat von: Beta-User am 12 Februar 2021, 13:06:30
Ähm, also....
Zum einen sollte man versuchen, das get hier ganz zu vermeiden. Rudi hatte was in ZWDongle eingebaut, damit man bei einem Ack das Reading gesetzt bekommt. Evtl. reicht es, das betr. Attribut zu setzen?
@Beta-User dieses get nutze ich tatsächlich um die Temperaturwerte ins Log des devices zu schreiben. Damit ich damit eine svg füttern kann. Andere wakeUp Geräte übertragen das ja beim wakeUp.
Das attr imZWDongle funktioniert aber bringt die Werte halt nur bei Änderung, somit wäre die Kurve im svg Plot immer lange Zeit ohne Wert.
Hmmm so lange brauchen meine nicht. Änderung der Temperatur oder abfrage irgendwelcher Werte oder testweise Display drehen, funktioniert annähernd in Echtzeit.
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: tomspatz am 12 Februar 2021, 19:56:39
Interessant finde ich auch die beiden Varianten
@Otto 123
defmod SpiritTempAbfrage at +*00:05 get ThermostatWohnzimmer_74; sleep 1; get ThermostatKueche_75; sleep 1; get ThermostatSchlafzimmer_76; sleep 1; setpoint
@TomLee
get ThermostatWohnzimmer_74 setpoint; sleep 1; get ThermostatKueche_75 setpoint; sleep 1; get ThermostatSchlafzimmer_76 setpoint

Welches ist denn richtig oder richtiger?
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: TomLee am 12 Februar 2021, 20:01:49
Ich meine nur mein Vorschlag klappt ?
Zitat
Welches ist denn richtig oder richtiger?

Stellt das aber in Frage ? Lässt vermuten beides geht ?

Gehen wirklich beide Vorschläge ? Hab mich nicht weiter mit beschäftigt.

Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: tomspatz am 12 Februar 2021, 20:03:44
SORRY ich habe noch nichts davon ausprobiert.
;)
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: betateilchen am 12 Februar 2021, 20:10:59
Zitat von: tomspatz am 12 Februar 2021, 19:50:28
Das attr imZWDongle funktioniert aber bringt die Werte halt nur bei Änderung, somit wäre die Kurve im svg Plot immer lange Zeit ohne Wert.

Die Lücke kannst Du viel einfacher durch addLog() vermeiden.


Zitat von: tomspatz am 12 Februar 2021, 19:56:39
Interessant finde ich auch die beiden Varianten
...
Welches ist denn richtig oder richtiger?

Die zweite Variante.


--
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Otto123 am 12 Februar 2021, 20:16:38
Zitat von: tomspatz am 12 Februar 2021, 20:03:44
SORRY ich habe noch nichts davon ausprobiert.
;)
Ich liebe solche theoretisch philosophischen Abfragen  ::)
Meine ist nach dem Studium von Thomas seiner Antwort sicher falsch! Richtig wäre die Antwort gewesen:
Befehl 1 ;sleep 1; Befehl 2 ;sleep 1; Befehl 3
Wenn man den eigentlichen Befehl nicht kennt.
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: tomspatz am 12 Februar 2021, 20:27:36
alles gut Otto123
fhem läuft ja gerne mit mehreren Varianten, daher die Nachfrage.
Der Befehl war aber schon beim ersten Post bekannt
get Thermostat setpoint

Aber um das hier klarzu stellen,
Befehl 1 ;sleep 1; Befehl 2 ;sleep 1; Befehl 3
Das ist richtig, oder das funktioniert  ;)

Deine Variante habe ich nicht getestet. Dieses konstrukt habe ich jetzt im Einsatz:
defmod SpiritTempAbfrage at +*00:06 get ThermostatWohnzimmer_74 setpoint;; sleep 5;; get ThermostatKueche_75 setpoint;; sleep 5;; get ThermostatSchlafzimmer_76 setpoint

Damit ist die Funklast scheinbar wesentlich verringert, besser. Vorher gab es oft nach dem ausführen des at  NO ACK von den devices
Obacht die doppelten ;; weil aus raw definition
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: TomLee am 12 Februar 2021, 20:38:18
Dann ist mMn. der nächste Schritt sich mit diesem Hinweis zu beschäftigen:

Zitat von: Beta-User am 12 Februar 2021, 13:06:30
Evtl. reicht es, das betr. Attribut zu setzen?

Ich les mich dazu aber nicht ein (hab noch ?, ich glaub werd ich mir auch nicht zulegen) kein Zwave.
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Otto123 am 12 Februar 2021, 20:41:14
Zitat von: tomspatz am 12 Februar 2021, 20:27:36
Der Befehl war aber schon beim ersten Post bekannt
get Thermostat setpoint
Ja ja ja  ;D
Ich habe primär Cooltux seine Variante korrigiert  ;)
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Beta-User am 12 Februar 2021, 20:41:31
Zitat von: TomLee am 12 Februar 2021, 20:38:18
Dann ist mMn. der nächste Schritt
...das hilft aber nur, wenn _irgendwann_ der Sollwert geändert wird. Ist der statisch, gibt es auch kein Ack...

Trotztdem an alle ZWaver: Rudi wartet zu dem Attribut auf Rückmeldung, damit er das (für 6.1?) als Default verwendet...
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: tomspatz am 13 Februar 2021, 15:59:07
Zitat von: Beta-User am 12 Februar 2021, 20:41:31
Trotztdem an alle ZWaver: Rudi wartet zu dem Attribut auf Rückmeldung, damit er das (für 6.1?) als Default verwendet...
Hast du mal ein link dazu ich finde es gerade nicht
Titel: Antw:Befehle im at verzögert ausführen
Beitrag von: Beta-User am 14 Februar 2021, 08:18:34
Zitat von: tomspatz am 13 Februar 2021, 15:59:07
Hast du mal ein link dazu ich finde es gerade nicht
Das war hier (https://forum.fhem.de/index.php/topic,112955.msg1100589.html#msg1100589)...

Zwischenzeitlich möchte ich aber auch auf die Einwände von krikan hinweisen: ACK bedeutet bei ZWave nämlich nicht, dass ein gültiger Befehl umgesetzt wurde, sondern "nur", dass die (ggf. "ungültige") Nachricht zugestellt wurde. Siehe Details (vermutlich u.A.) hier: https://forum.fhem.de/index.php/topic,118739.msg1132033.html#msg1132033