(Gelöst) Verschachtelung von Perl und FHEM

Begonnen von HomeAutoFan, 25 November 2014, 18:51:17

Vorheriges Thema - Nächstes Thema

HomeAutoFan

Hi zusammen,
ich bräuchte bitte Eure Hilfe bei folgendem Problem.

Ich möchte eine Funksteckdose bis zu einer bestimmten Uhrzeit schalten. Die Uhrzeit ist variabel und wird über den Dummy "ZeitschaltAus" bestimmt.

set FunksteckdoseSwitch on-till {sprintf("%02d:%02d:%02d",Value("ZeitschaltAus"))}
funktioniert einwandfrei.

Wenn ich allerdings eine weitere Verschachtelung mit Verweis auf FHEM-code hinzufüge funktioniert es nicht. Dieser komplizierte Ansatz ist durch Einbettung in eine if-Bedingung erforderlich.
 
{fhem"set FunksteckdoseSwitch on-till {sprintf("%02d:%02d:%02d",Value("ZeitschaltAus"))}"}
funktioniert nicht. Ein Syntaxfehler wird ausgegeben.

Der ganze Code der at-Anweisung lautet übrigens
*{sunset(-900)} {if (Value("Zeitschaltuhr") eq "on") {fhem"set FunksteckdoseSwitch on-till {sprintf("%02d:%02d:%02d",Value("ZeitschaltAus"))}"}}
Mit dem Dummy "Zeitschaltuhr" wird bestimmt, ob ein Schalten der Funksteckdose kurz vor Sonnenuntergang überhaupt berücksichtigt werden soll.

Mir ist klar, dass der Fehler bei der doppelten Verschachtelung liegt, ich finde aber keinen Hinweis auf eine Lösung.

Über Hinweise und Tipps wäre ich sehr dankbar.

marvin78

Es sind die Anführungszeichen. Versuch's mal so:

{fhem "set FunksteckdoseSwitch on-till {sprintf('%02d:%02d:%02d',Value('ZeitschaltAus'))}"}

HomeAutoFan

Super.... Vielen Dank.... Gelöst
Es waren die Anführungszeichen

Puschel74

Hallo,

ein Gelöst im Beitrag ist zu wenig.
Bitte den Betreff des ERSTEN Beitrags als Gelöst kennzeichnen.
Warum liest eigentlich niemand die angepinnten Beiträge  >:(

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

marvin78

Mein Vorschlag bleibt, dass jeder Neuling vor dem ersten Post einen Test bestehen muss, in dem das Wissen abgefragt wird, dass er aus den genannten Beiträgen holen kann ;)

HomeAutoFan

#5
Moin,
ein kurzer Nachtrag zur Lösung. Ich war doch etwas zu früh zu euphorisch.

Wenn ich
{fhem "set FunksteckdoseSwitch on-till {sprintf('%02d:%02d:%02d',Value('ZeitschaltAus'))}"}
eingebe, springt die HM-Funksteckdose zwar an aber sie geht nicht mehr aus.

Im Log steht der Eintrag:
set FunksteckdoseSwitch on-till {sprintf('%02d:%02d:%02d',Value('ZeitschaltAus'))}
Es wird also keine Endzeit angegeben.

Der folgende Code funktioniert bis jetzt:
{fhem"set FunksteckdoseSwitch on-till " .Value("ZeitschaltAus")}}

So, jetzt ist das Problem gelöst. Besten Dank nochmal für die Hilfe