FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dadoc am 14 Oktober 2016, 13:25:17

Titel: [gelöst] Lokale Variable im Eingabefeld mit set...?
Beitrag von: dadoc am 14 Oktober 2016, 13:25:17
Hallo zuzsammen,
ich scheitere gerade beim Versuch, den Ausführungsteil eines ehemaligen notify so umzubauen, dass er im Eingabefeld funktionieren könnte (für die Nutzung im Alarmanlagenmodul).
Das notify ist:
define einbruch_date_time_n notify einbruch_d.* {\
my $timestamp = ReadingsVal("einbruch_d","state","")." um ".ReadingsTimestamp("einbruch_d","state","");;\
fhem ("set einbruch_datetime_d $timestamp")}


{my $timestamp = ReadingsVal('einbruch_d','state','').' um '.ReadingsTimestamp('einbruch_d','state','');set einbruch_datetime_d $timestamp}
funktioniert deshalb nicht, weil $timestamp im set-Teil schon wieder "vergessen" ist. Habe alle möglichen Klammerungen und ;-Trennungen durch, ohne Erfolg.
Geht das überhaupt?
Danke & Grüße
Martin
Titel: Antw:Lokale Variable im Eingabefeld mit set...?
Beitrag von: DeeSPe am 14 Oktober 2016, 14:00:00
Zitat von: dadoc am 14 Oktober 2016, 13:25:17
Hallo zuzsammen,
ich scheitere gerade beim Versuch, den Ausführungsteil eines ehemaligen notify so umzubauen, dass er im Eingabefeld funktionieren könnte (für die Nutzung im Alarmanlagenmodul).
Das notify ist:
define einbruch_date_time_n notify einbruch_d.* {\
my $timestamp = ReadingsVal("einbruch_d","state","")." um ".ReadingsTimestamp("einbruch_d","state","");;\
fhem ("set einbruch_datetime_d $timestamp")}


{my $timestamp = ReadingsVal('einbruch_d','state','').' um '.ReadingsTimestamp('einbruch_d','state','');set einbruch_datetime_d $timestamp}
funktioniert deshalb nicht, weil $timestamp im set-Teil schon wieder "vergessen" ist. Habe alle möglichen Klammerungen und ;-Trennungen durch, ohne Erfolg.
Geht das überhaupt?
Danke & Grüße
Martin

Das Problem ist dass Du aus der Perl Ebene heraus einen FHEM Befehl ausführen willst!
So könnte es klappen in der EIngabezeile:
{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state","");; fhem "set einbruch_datetime_d $timestamp"}

Gruß
Dan
Titel: Antw:Lokale Variable im Eingabefeld mit set...?
Beitrag von: dadoc am 14 Oktober 2016, 14:24:20
Vielen Dank Dan, Du hast mir auf die Sprünge geholfen. Ich hatte diese Variante zwar auch ausprobiert, dachte aber, dass sie nicht funtkionierte - weil parallel das alte notify noch dazwischenfunkte und der Wert des Dummies von diesem überschrieben wurde..
Jetzt tuts!
Grüße
Martin
Titel: Antw:Lokale Variable im Eingabefeld mit set...?
Beitrag von: DeeSPe am 14 Oktober 2016, 14:32:38
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Und in FHEM stehen eine Menge Bäume...  8)

Gruß
Dan

P.S. Bitte im Titel des ersten Beitrags [gelöst] davor schreiben.