FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: HomeAutoFan am 25 November 2014, 18:51:17

Titel: (Gelöst) Verschachtelung von Perl und FHEM
Beitrag von: HomeAutoFan am 25 November 2014, 18:51:17
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.
Titel: Antw:Verschachtelung von Perl und FHEM
Beitrag von: marvin78 am 25 November 2014, 18:56:08
Es sind die Anführungszeichen. Versuch's mal so:

{fhem "set FunksteckdoseSwitch on-till {sprintf('%02d:%02d:%02d',Value('ZeitschaltAus'))}"}
Titel: Antw:Verschachtelung von Perl und FHEM
Beitrag von: HomeAutoFan am 25 November 2014, 19:00:23
Super.... Vielen Dank.... Gelöst
Es waren die Anführungszeichen
Titel: Antw:Verschachtelung von Perl und FHEM
Beitrag von: Puschel74 am 25 November 2014, 20:44:12
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
Titel: Antw:Verschachtelung von Perl und FHEM
Beitrag von: marvin78 am 26 November 2014, 11:17:44
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 ;)
Titel: Antw:Verschachtelung von Perl und FHEM
Beitrag von: HomeAutoFan am 27 November 2014, 16:31:37
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