Universelle Heizungssteuerung

Solch eine Globale-Absenk-Temperatur wird es in der nächsten Version geben …

Mann kann dann in der config.php wählen, ob er die Abwesenheits-Temperatur oder die Globale-Fenster-Auf Temperatur verwenden soll.

Super Sache!

Hallo,

habe das Script soweit eingebunden. Habe allerdings 2 Probleme:

  1. Im Webfront kann ich nicht zwischen Anwesend und Abwesend schalten, es passiert einfach nichts. Script ist hinterlegt, Variable ist Boolean.

  2. Bekomme alle 2 Min wenn das Script ausgeführt wird folgende Fehlermeldung für ALLE Räume:

FEHLER: de\IPSymcon\ernie\HomeMaticKomponentenHeizenJaNein implementiert NICHT die Raum-Steuerungs-Technik: SIMPLE-DELTA

Das gleiche kommt wenn ich für die Räume angebe, das KEINE der Steuerungstechniken benutzt werden soll, da ich eig. HomeMatic und gute Thermostate habe.

Wäre für Hilfe sehr dankbar :rolleyes:

Archer

Hallo,

kannst Du die Variable in der Console schalten?

#########

Wie die Meldung schon aussagt, funktioniert SIMPLE_DELTA Steuerung nicht mit HomeMaticHeizenJaNein.

Wenn Du willst, dass die Homematic deine Wunsch-Temperatur + oder - die Delta-Temperatur erhält und die Thermostate selbst den Raum regeln, musst du HOMEMATIC_KOMPOENTEN als Interface und SIMPLE_DELTA als Heizungssteuerung nutzen.

Wenn Du der HomeMatic Regelung nicht traust, kannst Du HOMEMATIC_KOMPOENTEN_HEIZEN_JANEIN als Interface und SOLL_IST_VERGLEICH als Steuerungstechnik verwenden. Hier wird wie im Wiki und im Thread beschrieben das Ventiel zwangsweise geöffnet (100%) oder geschlossen (0%) indem das Script 6° oder 30° an das Thermostat schickt.

Hallo und danke für die fixe Antwort!

Ja in der Console kann ichs manuell umschalten.


Bin gerade auch im script „INTERFACE_Heizungskomponenten“ auf die Antwort gestoßen. Meldung ist nun weg…dafür kommt jetzt die Meldung:

MISSLUNGENER Versuch, Temperatur für Heizkörper XYZ auf 17° zu setzen

Folgende Meldung sehe ich im aktionsScripte-trigger:

Warning: hm_writevaluefloat: Instance #42884 not found! in C:\IP-Symcon\scripts\heizungsteuerung\interfaces_Heizungskomponenten.ips.php on line 90

Habe die IDs gepürft. Im Script steht ja man muss dort die ID der SETPOINT-Variable angeben, habe ich auch gemacht.

Archer

was ist den 42884 für ein Objekt?

Das HomeMatic Thermostat, 42884 ist die SETPOINT-Variable, also die SOLL-Temperatur.

Hmm…werde aus deinem Kommentar nicht schlau:

Definition der ObjektIDs an denen die Raum-Soll-Temperaturen geschrieben werden können
Eventuell sind diese gleich "Gelesen", Bei HomeMatic jedoch nicht...
dort wird die Variable ausgelesen, jedoch ins Thermostat zurückgeschieben
LAST CHANGE IN REVISION 3
Entweder direkte Thermostate bei Homematic

LESEN von Temperaturen von der SetPoint-Variable-ID
SCHEIBEN von Temperaturen an die Thermostat-ID

siehe
Ernies Heizungsscript

erklärt es das?

Wenn Du Dir ein kleines Test Script schreibt, dass einfach die Temperatur aus dem Thermostat ausliest und dann per HM_WriteValue die Temperatur neu setzen willst, kannst Du es bestimmt nachvollziehen …

Ach…alles klar…jetzt geht es :slight_smile: Danke!

Aber wie siehts denn mit den Schaltungen im Webfront für An-/Abwesenheit aus?

Komisch finde ich noch, das der bei ANWESENHEIT die Temperatur auf 17° stellt, obwohl im config-Script steht das der bei „Anwesenheit“ die 22° Variable nehmen soll und nicht die Abwesenheits-Variable mit 17°. Passt da was nicht???

Archer

Das verstehe ich nicht :frowning:

Es gibt keine „17°-“ oder „22°-Variable“ … Schick mal einen Screenshot, wo ich das besser erkennen kann.

Fahr aber vorher mal deinen IPS Rechner neu hoch und schau, ob Du es dann die Variablen im WF schalten kannst.

Hier steht sogar im Wiki: :wink:

http://www.ip-symcon.de/w/images/3/3e/ErnieHeizungsscript_IPS_-_4._Temperatur_Profile.png

Hatte den Rechner bereits neugestartet. Leider keine Änderung.

Hallo Ernie,
ich würde dein Script ebenfalls gerne einbinden.
Trotz vielem lesen in diesem Thread bin ich noch nicht ganz schlau geworden wie geeignet es für FBH ist? (Stichwort „Überschwappen“ der Temperaturen).

Ich werde das Script nicht in naher Zukunft einbauen, bin somit sehr geduldig was zukünftige Implementierungen angeht :slight_smile:

Mich interessiert im Endeffekt nur, funktioniert das Script mit FBH sauber sobald deine „Überschwapp DELTA Technik“ eingebunden ist?
Ich habe HM Wandthermostate, HM Heizkörperstellantriebe (für einen Heizkörper), HM Funk Schaltaktor 4 fach (zum Anschluß der 230 Volt Stellantriebe für die FBH)

Oder benötige ich noch weitere Komponenten?

Vielen Dank schonmal für alles

ah!

Ich erinnere mich dunkel, dass ich die Variablen am Anfang auch nicht im WF steuern konnte. Wahrscheinlich hast du die das entsprechenden Custom Profil noch nicht angelegt. Dort wird eingestellt, dass das Toogle-Script für Boolean angesteuert wird, wenn Du auf die Variable klickst.

Funktioniert ist, wenn Du Dir
Ernies Heizungsscript

noch mal anschaust?

Danach musst Du auf jeden Fall noch mal createHeizplanForOneWeek ausführe, da deine aktuellen Variablen auf jeden Fall ohne Custom-Profile erstellt wurde.

Zum Testen kannst Du das Profil einer Boolean-Variable per Hand ändern und schauen ob es klappt.

@Crackpot: ich habe gerade nicht so viel Zeit, ich antworte nachher …

Hallo,

Hat sich im selben Moment erledigt! Habs auch gerade gesehen, hatte ne falsche ID eingetragen. Bin da wohl mit den Nummer eine Zeile verrutscht :wink:

Jetzt fehlt nurnoch das mit den An-/Abwesenheits Temperaturen…

#Edit: Geht jetzt zwar aber der setzt nicht alle auf die Abwesenheits-Temp. obwohl ich manuell über Webfront alle auf Abwesenheit gesetzt habe (natürlich für den Heutigen Tag und die richtige Zeit). Er setzt zB nur das Wohnzimmer alle 2Min auf Abwesenheit, alle anderen aber nicht…

es dauert einen Moment bis die HomeMatic Termostate das mitbekommen.

Und ich glaube mich zu erinnern, dass Du beim HomeMatic Interface (im Gegensatz zu HomeMatic_HeizenJaNein) nicht die IPS-Variablen für An- und Abwesenheits gesetzt bekommst (was ja nicht nötig ist) …

Heiz-Stati heizen/abkühlen wird ja hier von HomeMatic im Thermostat geregelt.

Ob es funktioniert erkennst Du an den LOG-Einträgen und daran, ob im Homematic-Thermostat die An- oder Abwesenheitstemperatur eingestellt ist.

Und bis die Temperatur sich aktualisiert, dauert es einen Moment.

Also mal An- / Abwesenheit ändern, 5 Minuten warten und dann am Thermostat schauen, ob die Wunsch-Temperatur sich geändert hat.

Gruß,

ernie

Hallo,

danke. Aber genau das habe ich ja gemacht :slight_smile:

Aber es scheint jetzt zu gehen, warum auch immer… trotzdem vielen Dank für deine Hilfe! 1a Script hast du da! Ich freue mich auf den Praxistest! :smiley:

Archer

offTOP*

:loveips:

Hallo ja mein erster Beitrag „bin seit ca 4 Monaten aktive am mitlesen“.

Riesen Respekt an die Mitglieder hier im Forum !! durch die vielen Code schnipsel und Installations Anleitungen bin ich jetzt doch mit meinem Wissen am Limit.

So jetzt zu meinem Problem

Die Heizungsregelung ist perfekt das Überschwingen ist Geschichte.

Aber bekomme immer noch folgende Fehler im PHP script siehe Bild 1

Als Info noch Installiert Homematic RaumThermostat und Stellantrieb
ohne CCU , LAN Interface und IPS 2.4 .

Welches Profil fehlt ?? so könnte ich die Fehlersuche eingrenzen ?

Und warum ist die Variable nur lesend ??

Schönen Abend

Gruß Jens

ein nicht zu setzendes Profil sollte auf Anhieb vielleicht hieran Ernies Heizungsscript liegen?

Hast Du das CustomProfil angelegt?

Was steht in deiner config-Zeile

		$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID']	= 54305 /*[Heizung\Heizungssteuerung\Scripte\aktionsScripte-changeWebfrontVariable.ips.php]*/; // cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'] 				= "b_Anwesend-Abwesend"; 	// cAOIDs ok
		// $this->heizungssteuerung['createHeizplanConstants']['WebFrontWunschTempeaturProfileName'] = "f_Raumtempperatur";     // wird nur manuell den Wunsch-Temperatur Variablen zugewiesen
		$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'] 				= "~Switch"; 					// cAOIDs ok

?

Hast Du das Profil dazu angelegt?

Das es read-only Variablen gibt, wusste ich nicht, könnte aber natürlich sein (auf IPS-Ebene). Es gibt aber auf jeden Fall HomeMatic-Variablen, die Du nicht beschreiben darfst. Auf welche Variable versuchst Du zu schreiben, bzw. welche ist als WriteRaumSollTemperatur in der config angegeben?

Ich würde sagen, dass es irgendwie noch falsch gesetzte IDs in der config gibt.

Funktioniert die Steuerung denn und Du bekommst nur den Fehler? Oder werden die Thermostate korrekt angesteuert?

Gruß,

ernie

@ernie Hast Du das CustomProfil angelegt?

Ich denke ja siehe Bild

@ernie Was steht in deiner config-Zeile

hier meine Konfig

		$this->heizungssteuerung['createHeizplanConstants'] = array();
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID']	= 30390 /*[Heizungssteuerung\aktionsScripte-changeWebfrontVariable.ips]*/ ; // cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'] 				= "b_Anwesend-Abwesend"; 	// cAOIDs ok
//		$this->heizungssteuerung['createHeizplanConstants']['WebFrontWunschTempeaturProfileName'] = "f_Raumtempperatur";     // wird nur manuell den Wunsch-Temperatur Variablen zugewiesen
		$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'] 				= "~Switch"; 					// cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['CreateShortHeizplanVariablen'] 			= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['CreateiFrontToogleButton'] 					= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableBoolean'] 					= 0;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableInteger'] 					= 1;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableFloat'] 					= 2;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;

Die Steuerung der Ventile funktioniert zu 100%

Hier die Raum Soll-ISt konfig

		// ###    bei HomeMatic muss hier die SETPOINT Variable der Thermostate verlinkt werden
		// ###    bei 1-Wire in IPS selbst definierte Variablen
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['readRaumSollTemeratur'] = array();
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
//		$this->heizungssteuerung['readRaumSollTemeratur']['Bad'] 			= 11496 /*[Objekt #11496 existiert nicht]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Bad\Bad - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 45796 /*[HomeMatic Socket\Sollwert Büro\SETPOINT]*/ ; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Büro\Büro - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
//		$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] 	= 54771 /*[Objekt #54771 existiert nicht]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Gästezimmer\Gästezimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 23406 /*[HomeMatic Socket\Sollwert Schlafzimmer\SETPOINT]*/  ;
//		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 50601 /*[Objekt #50601 existiert nicht]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Wohnzimmer\Wohnzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		// ###    z.B. bei HomeMaticHeizenJaNein
		// ### Test-Szenario CHANGE CHANGE CHANGE 2/3
//		$this->heizungssteuerung['readRaumSollTemeratur']['Bad'] 			= 42715 /*[Objekt #42715 existiert nicht]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
//		$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 57644 /*[Objekt #57644 existiert nicht]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
//		$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] 	= 26155 /*[Objekt #26155 existiert nicht]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
//		$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 35587 /*[Objekt #35587 existiert nicht]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
//		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 53457 /*[Objekt #53457 existiert nicht]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Wohnzimmer]

		// ###
		// ### Definition der ObjectIDs an denen die Raum-Soll-Temperaturen geschrieben werden können
		// ### Eventuell sind diese gleich "Gelesenen", bei HomeMatic jedoch nicht ...
		// ### dort wird die Variable ausgelsen, jedoch ins Thermostat zurückgeschrieben
		// ### LAST CHANGE IN IN REVISION 3
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['writeRaumSollTemeratur'] = array();
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Bad'] 				= 36797 /*[Objekt #36797 existiert nicht]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 34450 /*[HomeMatic Socket\Sollwert Büro]*/ ; // cAOIDs ok ;
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] 	= 31325 /*[Objekt #31325 existiert nicht]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 25135 /*[HomeMatic Socket\Sollwert Schlafzimmer]*/ ;
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 42515 /*[Objekt #42515 existiert nicht]*/; // cAOIDs ok ;
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		/*
		$this->heizungssteuerung['writeRaumSollTemeratur']['Bad'] 				= 42715 /*[Objekt #42715 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 57644 /*[Objekt #57644 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] 	= 26155 /*[Objekt #26155 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 35587 /*[Objekt #35587 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
//		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 53457 /*[Objekt #53457 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Wohnzimmer]
		*/

		// ###
		// ### Definition der ObjectIDs, an denen die Raum-Ist-Temperaturen gelesen werden können
		// ### LAST CHANGE IN IN REVISION 2
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['readRaumIstTemeratur'] = array();
//		$this->heizungssteuerung['readRaumIstTemeratur']['Bad'] 				= 30941 /*[Objekt #30941 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Büro']				= 15947 /*[HomeMatic Socket\Istwert Büro\TEMPERATURE]*/ ; // cAOIDs ok
//		$this->heizungssteuerung['readRaumIstTemeratur']['Gästezimmer'] 	= 47279 /*[Objekt #47279 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Schlafzimmer'] 	= 39358 /*[HomeMatic Socket\Istwert Schlafzimmer\TEMPERATURE]*/ ; // cAOIDs ok
//		$this->heizungssteuerung['readRaumIstTemeratur']['Wohnzimmer'] 	= 10100 /*[Objekt #10100 existiert nicht]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs, an denen die Heiz-Stati der Räume gelesen werden können
		// ### Diese ObjectIDs müssen nur definiert werden, wenn das Interface entweder
		// ### HomeMaticHeizenJaNein oder EinsWireWagoKombinationsKomponenten ist
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['heizStatiRaeume'] = array();
//		$this->heizungssteuerung['heizStatiRaeume']['Bad'] 				= 52917 /*[Objekt #52917 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Büro']				= 32258 /*[HomeMatic Socket\Sollwert Büro\ADJUSTING_COMMAND]*/ ; // cAOIDs ok
//		$this->heizungssteuerung['heizStatiRaeume']['Gästezimmer'] 		= 31397 /*[Objekt #31397 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Schlafzimmer'] 	= 10660 /*[HomeMatic Socket\Sollwert Schlafzimmer\ADJUSTING_COMMAND]*/  ; // cAOIDs ok
//		$this->heizungssteuerung['heizStatiRaeume']['Wohnzimmer'] 		= 46096 /*[Objekt #46096 existiert nicht]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs der Fenster-Kontakte
		// ### LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['rootNodesFenster'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'][0] 				= 25649 /*[HomeMatic Socket\Fensterkontakt Schalfzimmer\STATE]*/ ; // cAOIDs ok
		$this->heizungssteuerung['rootNodesFenster']['Büro'] = array();
		$this->heizungssteuerung['rootNodesFenster'][' Büro'][0] 				= 14920 /*[HomeMatic Socket\Fensterkontakt Büro\STATE]*/ ; // cAOIDs ok

Danke für die Antwort

Gruß Jens

Hi,

wir sind das Wochenende unterwegs, deshalb eine etwas höhere Latenzzeit …

Ich habe ich mir noch nicht genau angeschaut, aber ich vermute es liegt vielleicht an den Fußbodenheizungsventilen. Ich habe das Script damit noch nicht getestet.

Kannst Du in einem Einzel-Script die Variablen per HM_Write_Value selbst setzen, die in der config für WriteRaumSoll Temperatur angegeben sind?

Was für Parameter erwarten die Thermostate? Wie bei normalen Thermostaten auch eine Grad Anzahl? Oder TRUE bzw. FALSE für Heizen oder Abkühlen?

Gruß,

ernie