FHT Heizungs-Steuerung über Google Calendar

Hallo,

du kannst eine StringVariable anlegen mit dem Variablenprofil „HTML-Box“.
Dann brauchst du nur noch den Code für den I-Frame in diese Variable schreiben und der Kalender wird im Webfront angezeigt. (siehe Bild)

Ansonsten könntest du auch eine Externe-Seite anlegen und hier den I-Frame einbinden.

cal_wf.JPG

Hallo,

genau den Tip von hirschbrat habe ich gesucht…
Danke dafür, werde ich gleich mal testen…

Matthias

Hi,

zuerst mal danke für das Skript - damit kann nun endlich auch meine Holde problemlos ihre ständig wechselhaften Schichten eintragen.

Ich hätte aber eine Frage zum Verständnis: Liest das Skript alle 10 min den Kalender aus und schreibt dann den aktuellen Kalenderwert in den FHT oder liest das Skript alle 10 min direkt einen ganzen Block und schreibt den in den FHT, zb. einen Tag, eine Woche, 5 Stunden…

Danke mit Gruß

Schronk

Gibt es sowas auch für HM ? Oder kann mir einer Helfen das Script so umzubauen das es bei Hm klappt ?

Hallo Miteinander,

ich habe mir erst Heute IP-Syncom gekauft und demensprechend wenig Ahnung vom Programmieren hier.

Ich bräuchte insofern eure Hilfe, als das ich (muss ja nicht alles fertig sein - ich weiß nur nicht wo ich beginnen soll!) an dem Skript eine Änderung bräuchte - allerdings denke ich mal sollte es das Skript vereinfachen.
Zudem glaube ich, wäre das was ich nun gleich wünsche / vorschlage sicherlich nicht schlecht für den ein oder anderen:

Meine Freundin hat Schichtdienst, zufällig verteilt allerdings mit festen Zeiten.
Ich habe geregelte Arbeitszeiten.

Aus diesem Grund haben wir einen gemeinsamen Kalender bei Google, sie trägt dort F=Frühschicht, S= Spätschicht, N= Nachtschicht und X=frei, U=Urlaub ein.
Die Zeiten für diese Dienste sind fix und der Termin wird immer als ganztägig eingetragen.

Dazu kommen meine Zeiten für Aufstehen und Heim kommen.
Was ich bräuchte, wäre eine Modifikation, welche grundsätzlich meine Arbeitszeit steuert, sowie Ihre nochmals „obendrauf“ packt. (und dann in verschiedenen Räumen, aber nach festem Muster die Temp. steuert)

Das ganze für 4 Räume mit Homematic-Aktoren.
Die Temperatur soll dabei im Skript fixiert sein und nicht aus dem Kalender kommen. (Weniger Aufwand und ausreichend für uns)

Wer kann mir da jetzt weiterhelfen? Ich weiß maximal, wie man den Temperaturwert an die Regler weitergibt.

Danke schonmal und frohe Festtage!

Gruß,
Matthias

Abend Matthias,

das lässt sich relativ einfach mit diesen Skripten umsetzen:
Scripte für den Google Kalender API V3

Allerdings ist da schon ein wenig Eigeninitiative gefragt :wink: Hilfestellung bekommst du sicher im Forum kostenlos und gerne, aber wenn du jemanden suchst, der dir das fertig programmiert, dann wirst du jemanden dafür, mit Bezahlung, beauftragen müssen…

Grüße,
Chris

Also ich habe überhaupt nicht gg. Eigeninitiative - etwas dazu lernen ist eigentlich nie schlecht.
Ich hatte auch nichts fertiges erwartet :wink:

Aber ein Fingerzeig hilft doch schonmal. Wenn ich es garnicht auf die Kette bekomme muss ich mir allerdings überlegen, dass ganze doch bezahlt zu machen.

Ich habe aus dem Beispiel den ersten Kalender (v2.1) versucht - leider passiert immer das:

Denke man kann dann im Google Kalender Thread weitermachen, musst nicht immer alles doppelt verlinken :slight_smile:

Im anderen Thread hast du auch schon eine Antwort erhalten auf deinen Fehler. Versuch dich einfach mal dran und dann wird das schon klappen! Nachfragen kannst du natürlich jederzeit hier, wenn du so wie jetzt einen Fehler hast oder den Wald vor lauter Bäumen nicht siehst :wink:

Das mit der Google API wurde aber schon sehr gut ausgearbeitet und das bekommt ihr sicher da im Thread zusammen hin :slight_smile: Das hat Martin (Schablone) wirklich gut gemacht und allen zur Verfügung gestellt!

Viel Erfolg und Grüße,
Chris

Sorry, habe bei beidem gefragt, weil ich nicht wusste, wer heute Abend noch reinschaut.
Habe ja wenigstens beides verlinkt.

Wie gesagt, ich habe quasi keine Ahnung vom Programmieren - bzw. nicht von PHP, aber ich kann grob verstehen, was da abläuft. (Kann Qbasic :smiley: daher ist mir Funktionen wie For und If etc geläufig)

Was ich nun machen möchte ist folgendes (API geht!):

Aus den Terminen (wir haben im gemeinsamen Kalender auch Geburtstage) alle Einträge mit nur einem Zeichen und ganztägig suchen und am jeweiligen Tag bei z.b. bei S (=Spätschicht) zwei Heizkörperthermostate zu mehreren Zeiten auf bestimmte Temperaturen setzen.

Beispiel „S“ - Spät:
Nur in der Woche (am WE anders, da arbeite ich nicht, meine Freundin aber)
Thermostat Schlafzimmer: 0:00-6:45 auf 16°C
Thermostat Schlafzimmer: 6:46-9:15 auf 19°C
Thermostat Schlafzimmer: 9:16-21:45 auf 15°C
Thermostat Schlafzimmer: 21:46-22:45 auf 17°C
Thermostat Schlafzimmer: 22:46-23:59 auf 16°C

Thermostat Wohnzimmer: 0:00-8:59 auf 15°C
Thermostat Wohnzimmer: 9:00-12:00 auf 20°C
Thermostat Wohnzimmer: 12:01-17:15 auf 15°C
Thermostat Wohnzimmer: 17:15-22:30 auf 20°C
Thermostat Wohnzimmer: 22:30-23:59 auf 15°C

Dazu noch folgendes:

Das Skript heißt Abruf_Google_Kalender,
Die Objekt_ID des Kalenders selbst (ist im Baum als Ast am Skript) ist:
47992 /[Abruf_Google_Kalender\Kalender_MG_KH]/

Die Thermostate bzw. einer heißt (Objekt_ID):
17331 /[Thermostat Wohnzimmer\SET_TEMPERATURE]/

Zum Kalender noch einen Screenshot aus dem Webinterface anbei.

[b]Meine Probleme sind die folgenden:

  1. Ich weiß nicht, wie man aus dem Skript etwas auf den Regler schreibt (habe rumprobiert aber immer Fehler) —EDIT----
    Das geht so: …also jew. als Bsp.
    HM_WriteValueBoolean($ID,„AUTO_MODE“, true);
    HM_WriteValueBoolean($ID,„LOWERING_MODE“, true);
    HM_WriteValueBoolean($ID,„COMFORT_MODE“, true);
    HM_WriteValueBoolean($ID,„BOOST_MODE“, true);
    HM_WriteValueFloat($ID,„SET_Temperature“, 20.0);
  2. Ich weiß nicht, wie ich nach 1-Buchstaben-Terminen suchen kann
  3. Ich weiß nicht, wie ich den Termin dem aktuellen Datum zuordnen soll
  4. Ich weiß nicht, wie ich überhaupt aus dem Skript in den Kalender komme und das dann noch wie ne Tabelle lesen kann
  5. Wie separiere ich das mit Wochentagen / Wochenende?[/b]

Ich fände es unglaublich nett (weihnachtliche Großzügigkeit usw…) wenn mir jemand mal einige konkrete Code-Beispiele geben kann zu o.g. Problem.
Dann weiter daraus lernen, probieren und rein denken sollte klappen, auch wenn ich mittlerweile einige Tutorials und Manuals zu PHP durch habe, fehlt mir doch absolut der Startpunkt und die richtige Taktik :wink:

Ach am Rande - sollte ich die Thermostate dann immer im Manual Mode beteiben? (Haben ja aktuell ein Programm drin)

Danke, Danke und nochmals Danke!
Matthias

PS: Ich will es nicht fertig gemacht haben (geht ja auch mit o.g. Infos nicht - aber mal für jeden Punkt n Beispiel wäre super!

Es finden sich zu ALLEN deinen Fragen Code-Beispiele hier im Forum!

Ich würde an deiner Stelle mit verschiedenen Wochenplänen arbeiten (Infos zu Wochenplänen gibt’s genug im Forum und in der IPS-Doku). Mit diesen Wochenplänen kannst du jeweils Zeiten und Temperaturen einstellen und diese werden dann automatisch „geschaltet“. Und je nachdem was im Google Kalender ausgelesen wird, soll dann der zugehörige Wochenplan aktiv geschaltet bzw. verwendet werden inkl. der darin eingestellten Temperaturen (habe irgendwo mal dazu einen Beitrag veröffentlicht mit Skripten und Screenshots, finde den aber grad nicht).

Du musst alles mögliche in Variablen Speichern und kannst diese dann an anderen Stellen bzw. in anderen Skripten weiterverwenden.

Beispiele zu deinen Fragen:

Heizungen - Temperatur setzen (Die HM Thermostate müssen dazu auf MANUELL stehen):

   // Heizungen in der gesamten Wohnung auf die erhöhten Temperaturen setzen
   $soll_temp_w = 21;
   
   // Thermostate der Heizungen in den Wohnräumen einstellen
	if(GetValueFloat(27059 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat\SET_TEMPERATURE]*/) != $soll_temp_w)
	{
	  IPS_Sleep(250);
	  HM_WriteValueFloat(56145 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat]*/, "SET_TEMPERATURE", $soll_temp_w);
	}

Kontrollieren, ob Thermostate im Manual-Mode:

$wt01_controlmode = GetValue(37264 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat\CONTROL_MODE]*/);
$wt01_thermostat = 56145 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat]*/;
$wt01_solltemp = GetValue(11022 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\WT01_TEMP_SOLL]*/);

if (($wt01_controlmode != 1) AND ($wt01_controlmode != 3)) {
   IPS_Sleep(2000);
	HM_WriteValueFloat($wt01_thermostat,"MANU_MODE", 1);
   IPS_Sleep(2000);
	HM_WriteValueFloat($wt01_thermostat,"SET_TEMPERATURE", $wt01_solltemp);
}

Beispiel für Datum HEUTE:

$heute = date("d.m.");  // z.B.  "30.10."

Beispiel für regex zum herausfiltern von deinen X und S usw (hier kannst du im Forum mal nach Müllterminen oder Mülltonne suchen, ist von der Art her das was du brauchst):


$regexheute = '/$heute (.*)/';
preg_match($regexheute, $googlezwischenspeicher, $termine);
//print_r($termine);

So…wie gesagt, alles nur Beispiele, aber darin ist quasi alles enthalten was du in dieser oder ähnlicher Form brauchst, um dein Projekt umzusetzen…

Jetzt ist aber erst mal EIGENINITIATIVE gefragt von dir :slight_smile:

Grüße,
Chris

Ein Tipp zum Manu_Mode.
Der Datenpunkt nimmt direkt die Temp entgegen. Du brauchst nicht erst 1Grad und dann über Set_Temp den richtigen Wert senden.
Michael

Ach das 1 steht für die Temperatur - dachte das bedeutet EIN :smiley: Gut zu wissen, danke! :slight_smile:
…hab das aber eh nur als „Watchdog“ mitlaufen, falls die Putzfrau mal wieder was verstellt :smiley:

MfG,
Chris

Musst Du nicht, einfach lesen, S. 24 :wink: :smiley:
http://www.eq-3.de/Downloads/Software/HM-CCU2-Firmware_Updates/Tutorials/hm_devices_Endkunden.pdf

falls die Putzfrau mal wieder was verstellt

Dafür kann man die Bedienung am Aktor sperren

Gruß
Bruno

Mein lieber Freddy wieder :slight_smile:

Bedienung am Aktor sperren ist bei mir nicht zielführend. Ich will den Aktor ja direkt bedienen können, nur die Putzfrau kommt halt ab und an auf einen Knopf beim Wischen, was aber nicht weiter schlimm ist, da mein Watchdog das ja erkennt und alles wieder richtig einstellt, also alles gut :cool: Trotzdem danke für den Link zur Doku :slight_smile:

Ist ja nicht so, als hätte es vorher nicht funktioniert…nur dank Michael kann ich mir jetzt bei meinem Watchdog einen HM-Sendevorgang sparen :slight_smile:

Grüße,
Chris

Und, wo ist da das Problem? Gut, je nach Virtuosität der Putzfrau kann sie die Sperre am Gerät natürlich auch aufheben, ist ja nicht so schwer :wink:

Also ich hatte es für schwierig, die Thermostate auf manuell zu betreiben.
Erstens kann man die Temp in jedem Modus setzen und zweitens hat man so keine Rückfallsicherheit, wenn IPS mal streikt.

Stimmt schon.
Besser wäre es dann den Party-Modus zu setzen mit eine max. Zeit wo auf jeden Fall zurück in den Auto Modus geschaltet werden soll. Da dies die Geräte dann ja autark machen.
Michael

Moin :smiley:

Ich hatte am Anfang (vor 2-3 Monaten) auch kurz überlegt die Thermostate im AUTO-Betrieb laufen zu lassen, hab mir dass aber dann doch im MANU-MODE umgesetzt und hatte seitdem nicht ein Problem (bis auf das mit der Putzfrau, was ich durch den Watchdog gelöst habe)…und seitdem läuft es ohne Probleme…

Würde ich den AUTO-Wochenplan von der CCU noch pflegen, dann hätte ich natürlich ein „Backup“…hmmm…ma sehen, vlt bau ich das irgendwann mal um, aber bisher bin ich sehr zufrieden mit meiner Heizungsautomatik über Wochenpläne und IPS :loveips:

Grüße,
Chris

Aber dafür gibt es doch das :slight_smile:
Homematic Heizkörperthermostat - Heizprogramme per WebFront einstellen
Michael

Das hatte ich als 1. - aber das war mir irgendwie zu umständlich und einfach nicht so wie ich es gern haben wollte :smiley: