[gelöst] Lokale Variable im Eingabefeld mit set...?

Begonnen von dadoc, 14 Oktober 2016, 13:25:17

Vorheriges Thema - Nächstes Thema

dadoc

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
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

dadoc

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
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

DeeSPe

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.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe