FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Muffe am 30 Dezember 2018, 16:41:29

Titel: 90_at - Aktuator Status nicht aktuell
Beitrag von: Muffe am 30 Dezember 2018, 16:41:29
Hallo liebe Gemeinde,

fhem ("set Schalter toggle");;

  fhem ("
         define Get_Switch_State at +00:00:30
         set StateDummy ".Value("Schalter").";;         
          ");;
   


Zielstellung:
nach dem Schalten eines Aktors via toggle soll etwas zeitverzögert der Status des Aktors via "at" zurückgelesen bzw. gespeichert werden.

Problem / Verständnisproblem:

der Status welcher nach 30 Sekunden gespeichert wird, ist immernoch "set toggle" anstelle des gültigen Status "on" oder "off", welcher sich nachweislich spätestens nach 1 bis zwei sekunden eingestellt hat.

Habe ich eine falsche Erwartungshaltung an die at-Funktion? Ich würde erwarten, dass der Status erst ach 30Sekunden gerufen wird statt zum Zeitpunkt,an welchem die "at" Routine definiert wird?

viele Grüße
Titel: Antw:90_at - Aktuator Status nicht aktuell
Beitrag von: Byte09 am 30 Dezember 2018, 17:51:02
Hi Muffe

ZitatHabe ich eine falsche Erwartungshaltung an die at-Funktion?
ja
ZitatIch würde erwarten, dass der Status erst ach 30Sekunden gerufen wird statt zum Zeitpunkt,an welchem die "at" Routine definiert wird?
das at wird ja sofort definiert , mit dem zu diesem Zeitpunkt enthaltenen state des Schalters - , ausführungszeit des inhaltes in 30 sekunden.
zum zeitpunkt der definition hat aber der schalter nunmal den state 'toggle'

gruss Byte09


edit:da war otto schneller, ich wollte es erst ausprobieren . Wie Otto schrieb geht es , wenn du nicht auf die perlebene gehst und den state per setmagic angiebst.
dieses wird erst zum ausführungszeitpunkt ersetzt.

Titel: Antw:90_at - Aktuator Status nicht aktuell
Beitrag von: Otto123 am 30 Dezember 2018, 18:09:25
Hi Muffe,

so in der FHEM Kommandozeile mit vorhandenen Dummy getestet.
set Aktor01 toggle ; define Get_Switch_State at +00:00:30 set schalter [Aktor01:state]

Erklärung: Durch dein (unnötiges) Perl Konstrukt, löst Perl die Abfrage schon beim define auf.

Tipp: Mit einem list Get_Switch_State innerhalb 30 sec siehst Du genau was wirklich im at steht.

Gruß Otto
Titel: Antw:90_at - Aktuator Status nicht aktuell
Beitrag von: Muffe am 30 Dezember 2018, 22:24:08
Byte09 und Otto:

vielen herzlichen Dank für die super schnelle Hilfe!
Es funktioniert nun, unter Berücksichtigung eurer Tipps !!

viele Grüße

Muffe