Universelle Heizungssteuerung

kein Problem und bisher war es wirklich wenig Aufwand … Meine Zeit ist leider im Moment einfach nur ziemlich knapp und IPS muss darunter leiden :frowning:

So, es läuft ohne zu murren :smiley:
Vielen Dank, Ernie. Einrichtungszeit hat knapp 3 Stunden gebraucht für bislang 16 FHTs.
In INTERFACES_Heizungskomponenten.ips.php musste ich Zeile 94/95 korrigieren, weil Hochkommata bei heizungskomponenten fehlten:

if ('heizungsKomponenten' == "HomeMatic") {$result = HM_WriteValueFloat($setPointID, "SETPOINT", $wunschTemperatur);}
		if ('heizungsKomponenten' == "FS20") {$result = FHT_SetTemperature($setPointID, $wunschTemperatur);}

Hallo,

@Ernie
Danke für das tolle Script und deine Arbeit, die du zur Verfügung stellt.
Ich hab am Wochenende angefangen, es für meine Installation anzupassen und stolpere da über eine Fragen:

Blocke „// ### Definition der ObjectIDs an denen die Raum-Soll-Temperaturen geschrieben werden können“

Welchen Type von Variablen muss ich dafür anlegen, da werde ich auch der Doku nicht ganz schlau raus ?

Danke und Grüsse

Thomas

Äh … Temperatur = Float !? :rolleyes:

richtig, das war noch ein Fehler …

Aber ich glaube, die richtige Korrektur ist

		if ($this->heizungsKomponenten == "HomeMatic") {$result = HM_WriteValueFloat($setPointID, "SETPOINT", $wunschTemperatur);}
		if ($this->heizungsKomponenten == "FS20") {$result = FHT_SetTemperature($setPointID, $wunschTemperatur);}

In deiner Variante müssten jetzt eigentlich keine Temperatur gesetzt werden, da die beiden Strings nicht gleich sind, oder?

Wie würdest Du deine PHP Kenntnisse einschätzen?

  • Anfänger
  • Gut
  • Super

Dann können wir den anderen im Wiki einen Anhaltspunkt für die Installationszeit geben …

welches Heizungs-Hardware ???

Für HomeMatic: die IDs von den Thermostaten,
für EinsWire / Wago / HomeMaticHeizenJaNein die selbst angelegten Variablen aus Ernies Heizungsscript

Hast Du als Doku nur die config.php gelesen, oder auch den Wiki-Artikel?

Hallo,

HW = Homematic (HeizenJaNein)

Als Doku hab ich beides rangezogen, finde es aber etwas verwirrend, da die Beschreibung nicht ganz eindeutig ist.

Ich hab soweit ich glaube alles richtig angelegt und die Variablen entsprechend eingetragen, der Heizplan wird auch für die komplette Woche angelegt, aber die Variablen SOLL-Temp werden nicht beschrieben, ergo geht auch nichts an die Thermostate. Meldungen im Log gibt es keine

ich gehe davon aus, dass Du verständlicherweise das „aktionsSripte-trigger.ips.php“ aufrufst, um die Variablen zu setzen …

wird dieses Script als fehlerhaft gekennzeichnet?

Poste mal einen Screenshot einiger deiner HM-Komponenten, den config Teil wo die zugehörigen IDs gesetzt werden und die IPS-Variablen für die SOLL-Temperaturen, die Du angelegt hast. Irgendwo da muss noch ein Fehler sein …

alternativ kannst Du auch mal in der config.php die DEBUG-Meldungen für das setzen der Temperatur höher setzen

$do->addDebugEnvironment('heizungssteuerung_trigger.class[setActualTemperature]'

und

$do->addDebugEnvironment('heizungssteuerung_trigger.class[setActualTemperature]'

Hallo,

Ich bin noch total in der PHP-Lernphase - hab ein paar dicke Fehler gefunden, die muss ich erst mal ausmerzen und gehe ich das komplett Konfigscript nochmal auf richtige Variablen usw. durch.
Mal schauen, ob ich morgen dazu komme.

Sollte ich danach noch Fragen haben, würde ich wenn es dir nicht ausmacht, nochmal nachfragen.

Danke bis hierhin auf jeden Fall schonmal.

EDIT: ich hab da doch nochmal eine Frage dazu:

System ist Homematic ( habs abgeändert von von HomematicHeizenJaNEin):

readRaumSollTemperatur Array: Hier müssen die HomeMatic SETPOINT ObjectIDs verlinkt werden -> d.h. lese ich aus 56108 ?
writeRaumSollTemperatur Array: Hier müssen die HomeMatic THERMOSTAT ObjectIDs verlinkt werden. -> schreib ich nach 42356 ?
readIstRaumTemperatur Array: Hier müssen die HomeMatic WEATHER-TEMPERATURE ObjectIDs verlinkt werden. -> lese ich aus 34320 ?

Ist das richtig so an dem Beispiel „Bad“ im Screenshot ?

Die ganzen Variable, die ich nicht brauche, als z.b. die für HomeMaticHeizenJaNein kommentiere ich dann komplett aus, richtig ?

Grüsse

Thomas

Hallo Thomas,

die ID’s für Bad sollten soweit stimmen …

Ja, HomeMaticHeizenJaNein benötigst Du dann nicht …

Hallo,

soweit scheint das auch zu laufen, bis auf einen kleinen Fehler für einen Raum, den ich noch nicht gefunden habe, scheint vermuttlich ein Syntax-Fehler zu sein ( Raum „Gäste“ nicht bekannt, sollte Gäste-WC sein )

Aber das trigger.class.ips.php wirft ständig Fehler raus für Zeile 79,80, 82,84 und 85.
Undefined offset für die ersten drei und mktime expects parameter für die letzten beiden Zeilen
Auszug davon im Anhang.

Da weiss ich noch nicht so ganz weiter, bin aber noch dran

Auszug.txt (1.7 KB)

die Fehler können mit dem Raum Problem zusammenhängen.

Nenn mal zum testen den Raum „GästeWC“. Eventuell kann es beim parsen der Namen einen Fehler mit dem Bindestrich geben.

Was passiert dann?

Hallo,

jau, sieht gut aus, bisher keine Fehlermeldung mehr.

Danke für die Hinweise.

Jetzt kann ich drangehen, etwas Feinschliff in den Zeiten zu machen :slight_smile:

EDIT: nach zwei Tagen kann ich sagen, das läuft wunderbar bisher und auch fehlerfrei. Hab die Zeitfenster anders aufgeteilt und mehere angelegt ( Nachts, Frühmorgens, Morgens, Vormittag, Nachmittag, Abends, Spätabends ).
Saugt natürlich Variablen der IPS-License weg wie nix, aber noch hab ich genug :slight_smile:

Danke Ernie für das tolle Script, deine Arbeit und das du es hier zur Verfügung stellst :slight_smile:

Grüsse

Thomas

Hallo Ernie,

ich habe das Script bei mir auch in betrieb, allerdings komme ich mit den Fensterkontakten nicht klar. Ich hab „normale“ Fenster/Tür Kontakte von Homematic und möchte diese Einbinden. Sobald ich mehr als einen Einbinde, bekomme ich Fehlermeldungen:

  $this->heizungssteuerung['rootNodesFenster'] = array();
  $this->heizungssteuerung['rootNodesFenster']['Bad'] = array();
  $this->heizungssteuerung['rootNodesFenster']['Bad'][0] 						= 51383 /*[Verwaltung\1. Hs7\1.OG\Bad\Bad Fensterkontakt\ERROR]*/; // cAOIDs ok

  //$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'] = array();
  //$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'][0] 						= 11429 /*[Verwaltung\1. Hs7\1.OG\Schlafzimmer\SZ Fensterkontakt\STATE]*/; // cAOIDs ok

  //$this->heizungssteuerung['rootNodesFenster']['Wohnzimmer'] = array();
  //$this->heizungssteuerung['rootNodesFenster']['Wohnzimmer'][0] 						= 13336 /*[Verwaltung\1. Hs7\1.OG\Wohnzimmer\WZ Fensterkontakt\STATE]*/; // cAOIDs ok
  //$this->heizungssteuerung['rootNodesFenster']['Wohnzimmer'][1] 						= 29286 /*[Verwaltung\1. Hs7\1.OG\Wohnzimmer\WZ Ausstellfensterkontakt\STATE]*/; // cAOIDs ok

binde ich die Kontakte für Wohnzimmer und Schlafzimmer mit ein bekomme ich folgende Meldung im Script:

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\INTERFACES_Heizungskomponenten.ips.php on line 100

Erwartet Dein Script etwas anderes als die „normalen“ Tür/Fenster kontakte? Wenn ja, wie könnte man das umbauen, das es auch mit den „normalen“ Kontakten funktioniert.

Wäre es auch Möglich eine „Fenster offen“ Temperatur zu setzen so wie es die Thermostate eigentlich machen? 12°C Ist hier wohl der „Standard“

Danke für eine Antwort
Gruß Robert

schau mal bitte in die INTERFACES_Heizungskomponenten.ips rein, was in Zeile 100 steht.

Meine ist schon in einer neueren Version und ich weiß nicht, was da steht.

Fenster Offen Temperatur wird beim nächsten Update geben. Ich muss mal schauen, wie ich das mit Hausumbau diesen Sommer hinbekomme …

Gruß,

ernie

Hallo Ernie,

das hier steht in Zeile 100:

public function getWindowStatus ($objectID) {return GetValueInteger($objectID);}

Gruß Robert

mach mal

public function getWindowStatus ($objectID) {return GetValue($objectID);}

draus.

Funktioniert es dann bzw. würft es dann keine Fehler mehr? Hat es vorher funktioniert?

Bei Fenster auf sollte die Abwesenheits-Temperatur gesetzt werden.

Hast Du http://www.ip-symcon.de/forum/f23/universelle-heizungssteuerung-12051/index7.html#post114588 schon gesehen?

Eventuell sind auch deine Werte für die Fenster-Stati noch nicht richtig, momentan sind die Werte für die Griffe mit Kipp-Funktion …

Hallo Ernie,

ich habe das jetzt in

// Fenster Stati-Funktionen fr HomeMatic 
public function getOpendWindowValue() {return 1;} // $FENSTER_OFFEN = 1; 

public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;

geändert und jetzt kommen keine Fehler mehr, die Funktion selber muss ich heute Abend mal noch testen :slight_smile:

Ist es viel Aufwand das zu ändern, dass wenn das Fenster offen ist, er die Solltemperatur auf 12°C stellt?

p.s. soll nicht unverschämt klingen, aber wäre es irgendwann mal, irgendwie möglich, das man auch am thermometer selber die Temeratur anpasst? und er nur zu festen Zeiten wieder die „Standardwerte“ reinschreibt?

Ansonsten, vielen Dank für die klasse Arbeit, ich bin wirklich sehr begeistert von Deinem Script. Habe es für 3 Räume am laufen!

Viele Grüße
Robert

Mehr oder weniger … Momentan liest das Script überall nur 2 Temperaturen. Anwesend und Abwesend. Für Fenster-Offen muss ich noch eine 3. Temperatur-Klasse einführen und Sie überall verlinken, wo Sie benötigt wird. Leider keine Sache von einer Stunde :frowning: Aber kommt auf jeden Fall noch.

Das verstehe ich noch nicht richtig?

Vielen Dank für das Lob