Hallo Leute!
Ich bin seit einigen Tagen stolzer Besitzer eines Raspberry Pi mit COC und installiertem FHEM. Nun versuche ich als totaler Newbie in Sachen Perl und Fhem meine Badheizung mit Hilfe eines Google Kalenders zu steuern. Der Google-Kalender dient mir bisher als "Wecker", in dem ich meine Weckzeiten hinterlegt habe. Ich möchte nun, dass die Heizung eine halbe Stunde vor der Weckzeit startet und nach 2 Stunden auf "off" geht.
Trotz intensiver Recherche und Lesen der Anleitungen und References bin ich leider bisher nur so weit:
define Wecker Calendar ical url https://www.google.com/calendar/ical/................./basic.ics 14400
Damit habe ich schonmal den Kalender eingebunden und
define Bad_Vorheizung Heating_Control Bad 12345|05:30|28 12345|08:00|off 67|08:00|28 67|10:00|off
Damit starte ich meine Badheizung zu bestimmten Zeiten.
Jetzt müsste ich nur noch hinbekommen, dass statt den konkreten Zeiten die Startzeiten der Termine im Kalender gezogen werden, die "wecken" heissen.
Hat jemand eine ähnliche Steuerung zuhause und kann mir weiterhelfen? :-[
Ich kenne heating Control nicht aber wie es aussieht schaltet es zu festgelegten Zeiten. Also entweder kann man mit heating Control zB Wochenende einstellen. Ansonsten würde ich den gleichen Code wie für das Wecken nehmen mit minus 30 Minuten und set desired.temp
Man weiß leider nicht welche Komponenten du benutzt
Ich verwende FHT80B + FHT8V in einer Raspberry-COC-FHEM5.5 Umgebung.
Mittlerweile habe ich - abgeguckt von divesen anderen Forenbeiträgen - ein paar weitere Befehle definiert:
define BAD_HEIZEN dummy
define BAD_HEIZEN.notify notify Wecker { fhem "set BAD_HEIZEN" . (ReadingsVal("Wecker", "modeStart", "") =~ "wecken" ? 1: 0) }
Habe erwartet, dass ich während eines Kalendereintrags namens "wecken" den Dummy-Wert 1 erhalte.. leider Fehlanzeige.
Erscheint immer nur ??, obwohl ich den Kalender vorher mit update neu eingelesen habe :-\
Hallo,
Event Monitor öffnen und schauen was beim einlesen des Kalender in FHEM ankommt.
Regexp bzw. die Abfrage darauf anpassen und testen.
grüße
Hi,
bei mir ist das zweigeteilt:
1. notify, das auslöst sobald ein Termin fällig ist (aus meiner fhem.cfg):
define n_GoogleCalendar notify .*Calendar.modeStarted:.(.*\d.*) {\
my $rdg = fhem("get GoogleCalendar text modeStarted");;\
my @@teile = split(" ", $rdg);;\
if ($teile[2]) {\
doCalendarTrigger($teile[2]);;\
}\
}
2. Routine in 99_myUtils.pm :
####### Calendar-Trigger ##################
sub
doCalendarTrigger($) {
my $eventtext = shift;
Log 1, "doCalendarTrigger($eventtext)";
fhem("set ez_FHT desired-temp 21.5") if ($eventtext =~ m"HeizungStart"i);
Log 1, "doCalendarTrigger: Testtermin" if ($eventtext =~ m"test"i);
}
Geht vielleicht auch einfacher, aber tut :)
Gruß, Uli