Homematic Heizungssteuerung mit Google Kalender

Begonnen von brede, 28 Oktober 2014, 15:00:04

Vorheriges Thema - Nächstes Thema

brede

Ich bin am Verzweifeln. Ich habe das Forum durch, aber immer wenn ich denke, ich habe die Lösung gefunden, kommt eine andere Fehlermeldung.

Ich möchte je Raum ein Kalender (sind nur drei) anlegen. Im Kalender selbst soll nur die Temperatur eingegeben werden - kein Aktor etc., ansonsten bleibt die Temperatur auf 14 Grad.

Hier mein letzter Code:

define KalenderBuero Calendar ical url https://www.google.com/calendar/ical/  xxPlatzhalterxx basic.ics 30

attr KalenderBuero room Heizung

define KalenderBuero_start notify KalenderBuero:modeStarted.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $dtemp= fhem("get KalenderBuero summary $uid");; {if ("$dtemp" ne "") { fhem("set Heizkoerper_1_Clima desired-temp $dtemp")} }}

define KalenderBuero_end notify KalenderBuero:modeEnded.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; {fhem("set Heizkoerper_1_Clima desired-temp 14") }}


LOG

2014.10.28 14:49:21 3: CUL_HM set Heizkoerper_1_Clima desired-temp 14
2014.10.28 14:49:21 1: PERL WARNING: Use of uninitialized value $dtemp in string at (eval 95) line 1.
2014.10.28 14:49:21 3: eval: { my $reading="modeStarted:"; my $uid= "%EVTPART1"; my $dtemp= fhem("get KalenderBuero summary $uid"); {if ("$dtemp" ne "") { fhem("set Heizkoerper_1_Clima desired-temp $dtemp")} }}


Vermutlich ist irgendwo eine Klammer falsch, oder .. was weiß ich

betateilchen


  • Irgendwie sind mir da zumindest viel zu viele Anführungszeichen, wo keine hingehören. Variablennamen muss man nicht in Anführungszeichen setzen.
  • ich verstehe nicht, warum Du eine Variable $reading zuweist, die Du nirgends verwendest.
  • ich verstehe nicht, warum Du im end-Notify überhaupt Variablen zuweist.

Generell sollte man sowas besser in eigene Funktionen in die 99_myUtils.pm packen, da kann man das Ganze sehr viel übersichtlicher und verständlicher darstellen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!