FHT Heizungs-Steuerung über Google Calendar

Hey Nall chan, was meinst Du mit „der Setpunkt nimmt die Daten entgegen“?
Mir ist nur set_temp bekannt.
Kannst Du mir kurz mit einem Schnipsel Code zeigen wie der Befehl lautet?

Und Bayern, kannst Du mir einmal den Watchdog als Code geben?

Zu guter Letzt: ihr habt doch sicher irgendwie Wochenpläne oder wie auch immer, kann mir mal jemand seinen Posten?
Dann sehe ich mal wie man das „ordentlich“ Programmiert und kann was lernen und es für mich umbiegen :wink:
Danke und frohe Weihnachten!

Zuerst sollten wir alle vielleicht mal aufhören diesen Thread mit OT voll zu müllen :wink:
Es gibt für HM und gerade für die neuen Heizungs- und Wandthermostaten genügen Threads im HM Bereich des Forums.
IP-Symcon Community Forum
IP-Symcon Community Forum
Dort sind u.a. auch die Datenpunkte erklärt/diskutiert worden.
Abschließend verweise ich mal wieder auf die Datenpunktliste vom Hersteller auf dessen Website (der Links ist auch schon 20x im Forum :wink:
Michael

Mag vielleicht ein Mod die ganzen OT-Beiträge mal absplitten und in einen eigenen Thread verschieben? :smiley:
> Möglicher Titel wäre „Fragen zu HM und Google und überhaupt allem - von Maeffjus“ :wink: :smiley:

@Maeffjus:

Auch wenn du meinen Nickname nicht richtig geschrieben hast… :smiley: Hier mein Watchdog für die HomeMatic-Heizungsthermostate (hier wird überwacht, ob alle Heizungen im manuellen Modus sind - wenn nicht, dann wird der Manu_Mode eingestellt und die vom Wochenplan festgelegte Soll-Temperatur):

<?
// Wenn ein Heizungsthermostat ausversehen (durch putzen/...) auf AUTO-MODE geschaltet wird, dann diesen wieder auf MANU_MODE umschalten, damit die IPS Heizungsautomatik funktioniert.
// Ansonsten greift die Homematic Automatik (was ich nicht will)

$wt01_controlmode = GetValue(37264 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat\CONTROL_MODE]*/);
$ht01_controlmode = GetValue(36139 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT01 Heizungsthermostat Wohnzimmer (Hofseite)\Thermostat\CONTROL_MODE]*/);
$ht02_controlmode = GetValue(58264 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT02 Heizungsthermostat Wohnzimmer (Straßenseite)\Thermostat\CONTROL_MODE]*/);
$ht03_controlmode = GetValue(37274 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT03 Heizungsthermostat Bad oben (Türecke)\Thermostat\CONTROL_MODE]*/);
$ht04_controlmode = GetValue(18568 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT04 Heizungsthermostat Bad oben (Duschecke)\Thermostat\CONTROL_MODE]*/);
$ht05_controlmode = GetValue(23957 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT05 Heizungsthermostat Bad unten\Thermostat\CONTROL_MODE]*/);
$ht06_controlmode = GetValue(54251 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT06 Heizungsthermostat Küche\Thermostat\CONTROL_MODE]*/);
$ht07_controlmode = GetValue(16358 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT07 Heizungsthermostat Gästezimmer\Thermostat\CONTROL_MODE]*/);
$ht08_controlmode = GetValue(11386 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT08 Heizungsthermostat Schlafzimmer\Thermostat\CONTROL_MODE]*/);
$ht09_controlmode = GetValue(51445 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT09 Heizungsthermostat Flur \Thermostat\CONTROL_MODE]*/);

$wt01_thermostat = 56145 /*[Hardware\HomeMatic\Heizung und Temperaturen\WT01 (Wandthermostat Wohnzimmer)\Thermostat]*/;
$ht01_thermostat = 25177 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT01 Heizungsthermostat Wohnzimmer (Hofseite)\Thermostat]*/;
$ht02_thermostat = 45405 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT02 Heizungsthermostat Wohnzimmer (Straßenseite)\Thermostat]*/;
$ht03_thermostat = 38297 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT03 Heizungsthermostat Bad oben (Türecke)\Thermostat]*/;
$ht04_thermostat = 16170 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT04 Heizungsthermostat Bad oben (Duschecke)\Thermostat]*/;
$ht05_thermostat = 27616 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT05 Heizungsthermostat Bad unten\Thermostat]*/;
$ht06_thermostat = 57870 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT06 Heizungsthermostat Küche\Thermostat]*/;
$ht07_thermostat = 12675 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT07 Heizungsthermostat Gästezimmer\Thermostat]*/;
$ht08_thermostat = 39576 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT08 Heizungsthermostat Schlafzimmer\Thermostat]*/;
$ht09_thermostat = 48777 /*[Hardware\HomeMatic\Heizung und Temperaturen\HT09 Heizungsthermostat Flur \Thermostat]*/;

$wt01_solltemp = GetValue(11022 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\WT01_TEMP_SOLL]*/);
$ht01_solltemp = GetValue(47416 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT01_TEMP_SOLL]*/);
$ht02_solltemp = GetValue(20697 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT02_TEMP_SOLL]*/);
$ht03_solltemp = GetValue(12563 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT03_TEMP_SOLL]*/);
$ht04_solltemp = GetValue(52941 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT04_TEMP_SOLL]*/);
$ht05_solltemp = GetValue(44265 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT05_TEMP_SOLL]*/);
$ht06_solltemp = GetValue(32504 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT06_TEMP_SOLL]*/);
$ht07_solltemp = GetValue(36115 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT07_TEMP_SOLL]*/);
$ht08_solltemp = GetValue(27411 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT08_TEMP_SOLL]*/);
$ht09_solltemp = GetValue(12468 /*[Skripte & Variablen\Heizungssteuerung\SOLL-IST\HT09_TEMP_SOLL]*/);



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

if (($ht01_controlmode != 1) AND ($ht01_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht01_thermostat,"MANU_MODE", $ht01_solltemp);
}

if (($ht02_controlmode != 1) AND ($ht02_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht02_thermostat,"MANU_MODE", $ht02_solltemp);
}

if (($ht03_controlmode != 1) AND ($ht03_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht03_thermostat,"MANU_MODE", $ht03_solltemp);
}

if (($ht04_controlmode != 1) AND ($ht04_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht04_thermostat,"MANU_MODE", $ht04_solltemp);
}

if (($ht05_controlmode != 1) AND ($ht05_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht05_thermostat,"MANU_MODE", $ht05_solltemp);
}

if (($ht06_controlmode != 1) AND ($ht06_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht06_thermostat,"MANU_MODE", $ht06_solltemp);
}

if (($ht07_controlmode != 1) AND ($ht07_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht07_thermostat,"MANU_MODE", $ht07_solltemp);
}

if (($ht08_controlmode != 1) AND ($ht08_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht08_thermostat,"MANU_MODE", $ht08_solltemp);
}

if (($ht09_controlmode != 1) AND ($ht09_controlmode != 3)) {
   IPS_Sleep(2000);
   HM_WriteValueFloat($ht09_thermostat,"MANU_MODE", $ht09_solltemp);
}

?>

Hier eine Übersicht der Ereignisse bei Variablenänderung (damit wird das Skript aufgerufen, wenn Control_Mode der HM-Thermostate sich ändert):

Und hier noch Screenshots von einem meiner Wochenpläne für meine Heizungsautomatik:
wochenplan0.png

wochenplan1.png

wochenplan2.png

Grüße,
Chris

Oh Bayaro, da musst Du dich bei Swiftkey bzw meinem Xperia Z3 beschweren (und auch n bisschen bei mir, weil ichs nicht gesehen habe.
War die Autokorrektur.
Naja, gilt mein Kram schon als OT? Ist doch eig. zu dem hier genannten Thema.

Eine (blöde?) Frage hätte ich zu dem Skript - ich lege das in der Baumstruktur an - wie wird das ausgeführt? Also ereignis, zyklisch etc?
Wie mache ich das generell wenn ich etwas „permanent laufen lassen“ möchte?

@Nall Chan:

Du hast doch selbst den Tipp gepostet:

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

Ich habe darauf doch nur nochmals nachgefragt.

[b]Zudem ist es (generell an alle) vielleicht etwas nervig / ungewohnt, dass ich solche, für euch einfachen dämlichen Dinge frage. Allerdings bin ich komplett neu hier und habe kaum Ahnung von dem was ich tue - ich frickel zwar jeden Abend (erst die letzten 3 Tage) 2-3h in Skripten rum, allerdings fällt mir das nicht so leicht - es geht voran, aber mühsam.
Ich kenne mich auch nicht so recht mit dem Forum bzw genauer seiner Struktur aus - bevor ich etwas frage, suche ich meist schonmal - allerdings fehlen mir z.t. auch aufgrund der fehlenden Kenntnisse die richtigen Schlagworte bzw. Wissen über vorherige Projekte, wo schon einmal etwas brauchbares verwendet wurde.

Wie gesagt, ich will euch nicht nerven sondern nur weiter kommen - ich würde auch sehr gerne etwas davon „zurück geben“ leider fehlt mir aktuell da aber noch das notwendige Wissen zu.

Gibt es denn hier (habe ich bisher nicht gesehen) so ne Section wie „Fragen & Antworten“ wo ich meine fragen loswerden kann?[/b]

Am Rande leider noch eine Frage (ich habe mir den Befehl ausgiebig angesehen, komme aber nicht 100% mit der Syntax klar):

<?
$heute = date("d.m.Y");  // z.B.  "30.10.2014"
$regexheute = '/$heute (.*)/';
$kalenderdata = getvaluestring (47992);
preg_match($regexheute, $kalenderdata, $termine);
print_r($termine);
?>

Hier bekomme ich immer nur zurück:

Array
(
)

(Kalenderdata enthält folgendes (bsp.):

26.12.2014 ---  Ganztägig  ---   N
27.12.2014 ---  Ganztägig  ---   X
28.12.2014 ---  Ganztägig  ---   X

Irgendwie stimmt ja bei der suche evtl. die Definition von $regexheute nicht. Ich möchte / muss ein N oder X etc. zurückbekommen. Und es dürfen nur Bezeichnungen mit einem Zeichen (N, S, X, U und nicht "Geburtstag Fritzchen Mayer) ausgewertet werden.

Wie gesagt - ich entschuldige mich für die dummen Fragen und hoffe auf euer Verständnis! Ich denke ihr wart ja auch mal „Anfänger“.

Alles kein Problem.
Fragen sollten dort gestellt werden wo sie hin gehören.
Du fragst in einen Showcase Thread wo es um FHT geht. Nicht Homematic.
Es ist ursprünglich die Vorstellung von einen Projekt gewesen.
Die Links zu den HM-Geräten hatte ich doch gepostet :confused:
Außerdem ist es im Script von Bayaro enthalten. Für ihn war auch die Info.
Und von Bruno gab es den Post zu der Datenpunktliste.
Zum Google Kalender… dort hat sich eine Menge getan, ich glaube nicht das dich ein Thread aus 2009 weiter hilft. Zumal du da ja auch schon gefragt hast.
Und ja jeder hat mal angefangen, klar das Fragen auftauchen. Aber vielleicht erstmal Grundlagen erarbeiten zu den einzelnen Themen, bevor man mehrere angeht und versucht in sein System einzubauen und miteinander zu verknüpfen.
Michael

Der Anfang eben war wieder total OT, aber vlt. trennt es ja ein Mod noch in einen extra Thread :smiley:

Mein Watchdog? Wie da das Skript ausgeführt wird? Wie ich sagte, durch die Ereignisse, welche auf Variablenänderung bei den Control_Mode Variablen der HM-Thermostate schauen. (Ereignis hinzufügen - Ausgelöstes Ereignis)

Aber jetzt kommen wir ja wieder zum Thema Google Kalender und damit die Heizung steuern :slight_smile:

…zu deiner Frage mit dem regex…ich hatte nur BEISPIELE geposted (Ansätze mit denen man weiter suchen/programmieren kann - nichts fertiges)…und da sagte ich dir, dass du mal nach Mülltermine suchen sollst, das ist genau das was du brauchst > Google Kalender auslesen, Infos aus den Terminen rausfiltern und anhand der Einträge dann entweder Mülltonnen-Meldungen ausgeben oder einen Wochenplan schalten, das ist dann egal :wink:
Hier ein Beispiel mit der alten API, funktioniert also nicht mehr, aber der untere Teil mit den Auswertungen der Tonnen und Geburtstag usw. ist noch passend > Google Kalender Termine im WebFront anzeigen - Seite 7
…auch hier wird sowas in der Art gemacht: ZVO - Gelber Sack / Blaue Tonne auslesen

Wenn man, wie du, ein leeres Array zurück bekommt, dann hat der regex einfach nichts gefunden, deshalb leer.

Allgemein kannst du deine Fragen in jedem passenden Thread/Bereich im Forum stellen. Nur sollte man z.B. nicht in einem Thread über z.B. GOOGLE KALENDER nach den Spritverbrauch von einem Porsche fragen…weißte wie ich mein? :wink: Weil sonst findet keiner mehr im Forum irgendwas wieder…man sucht ja nicht in einem Thread über Tomaten nach den Spritpreisen für Diesel…

Um der Sache mal näher zu kommen und wieder eine Struktur hier ins Thema zu bringen…poste doch bitte mal die Ausgabe von diesem Skript:

<? 
$kalenderdata = getvalue(47992); 
echo $kalenderdata;
?>

MfG,
Chris

PS: Du musst aktuell noch nichts zurückgeben…aber was du SOLLTEST ist selbst etwas mehr Einsatz zeigen :wink: Mal Tante Google verwenden oder zumindest mal die Suche im Forum…und was du MUSST ist dem „folgen“ was man dir vorschlägt oder wo man dich hin verweist, wie z.B. mein Mülltermine-Tipp :slight_smile: Aller Anfang ist schwer, aber wo ein Wille ist, da ist auch ein Weg :cool:

Danke für deine Hilfe - ich habe (weil Ihr euch ja - verständlicherweise! - beschwert habt) einen neuen Thread im PHP-Teil des Forums aufgemacht.
Wir können ja - damit das hier im Showcase nicht zu durcheinander wird, dort weiter schreiben.

Zur Ausgabe: Das was ich geschrieben hatte war die Ausgabe:
Hier nochmal vollständig:
Code:

25.12.2014 ---  Ganztägig  ---   X
26.12.2014 ---  Ganztägig  ---   N
27.12.2014 ---  Ganztägig  ---   X
28.12.2014 ---  Ganztägig  ---   X
29.12.2014 ---  Ganztägig  ---   X
30.12.2014 ---  Ganztägig  ---   X
31.12.2014 ---  Ganztägig  ---   X
01.01.2015 ---  Ganztägig  ---   X
02.01.2015 ---  Ganztägig  ---   F
03.01.2015 ---  Ganztägig  ---   X
04.01.2015 ---  Ganztägig  ---   X
05.01.2015 ---  Ganztägig  ---   S
06.01.2015 ---  Ganztägig  ---   S
07.01.2015 ---  Ganztägig  ---   S
08.01.2015 ---  Ganztägig  ---   S
09.01.2015 ---  Ganztägig  ---   N
10.01.2015 ---  Ganztägig  ---   N
11.01.2015 ---  Ganztägig  ---   N
12.01.2015 ---  Ganztägig  ---   X
13.01.2015 ---  Ganztägig  ---   Oswald Geb. 
13.01.2015 ---  Ganztägig  ---   X
14.01.2015 ---  Ganztägig  ---   S
15.01.2015 ---  Ganztägig  ---   F
15.01.2015 14:30:00 - 15:30:00   Helen treffen 
16.01.2015 ---  Ganztägig  ---   F
17.01.2015 ---  Ganztägig  ---   X
18.01.2015 ---  Ganztägig  ---   X
19.01.2015 ---  Ganztägig  ---   X
20.01.2015 ---  Ganztägig  ---   X
21.01.2015 ---  Ganztägig  ---   S

Geht halt nur noch weiter bis zum 26.01.15.

Hier der Link zu dem anderen Beitrag - die Sache mit dem Müll sehe ich mir gleich an.
Kalender-Termine ausfiltern / div. Fragen
Und das mit dem preg_match habe ich bereits gegoogelt und leider nur sowas gefunden: PHP: preg_match - Manual
Daraufhin habe ich auch etwas rumprobiert, komme aber zu keiner Ausgabe oder Fehlermeldungen.
Gruß,
Matthias

Hier bitte BTT und im anderen Thread geht es weiter und da gibt es auch schon eine Antwort :cool:
Kalender-Termine ausfiltern / div. Fragen

-Chris-

Hallo zusammen,

habe leider das Problem das ich die Fehlermeldung: Warning: Variable #0 existiert nicht in C:\IP-Symcon\scripts\37270.ips.php on line 324 erhalte.

Code: if (GetValueFloat($TargetTemperature) != (float)$newtemp ) {

Jemand ne Ahnung wieso die Fehlermeldung aufschlägt?

Besten Dank und viele Grüße
Marc

Bist du dir sicher, dass $TargetTemperature wirklich die Variablen ID enthält? Sonst funktioniert GetValueFloat nämlich nicht.