Heizkörperthermostat Heizprogramme per WebFront einstellen

Hallo nochmal,

ich wolte noch mal nachfragen, ob sich auch für HomematicIP über CCU2 eine Möglichkeit ergeben kann?

Grüße aus Jena

Hi Swifty,

hier die ersten 20

<?
include "HM_Heizung_Funktionen.ips.php";
include "hmxml.inc.php";
include "HM_Heizung_Konfig.ips.php";


$dayArray = array("MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY");
$parentID=IPS_GetParent ($_IPS['SELF']);

$HM_Zimmer_Auswahl_id=CreateVariableByName($parentID, "HM_Edit_Zimmer_Auswahl", 1, Profil_anlegen("HM_Heizung_Auswahl"), "HMeditZimmerAuswahl", 1);
IPS_SetVariableCustomAction($HM_Zimmer_Auswahl_id, $_IPS['SELF']);

$Praesenz_Profil_Auswahl_id=CreateVariableByName($parentID, "HM_Edit_Präsenz_Profil", 1, "Praesenz", "HMeditPraesenzProfil", 2);
IPS_SetVariableCustomAction($Praesenz_Profil_Auswahl_id, $_IPS['SELF']);

$Profil_Wochentage_id= CreateVariableByName($parentID, "HM_Edit_Wochentag_Auswahl", 1, "HM_Heizung_Wochentag", "HMeditWochentagAuswahl", 3);
IPS_SetVariableCustomAction($Profil_Wochentage_id, $_IPS['SELF']);

$Profil_Slot_Auswahl_id= CreateVariableByName($parentID, "HM_Edit_TagesProfil_Slot_Auswahl", 1, "HM_Heizung_Slot", "HMeditTagesProfilSlotAuswahl", 4);
IPS_SetVariableCustomAction($Profil_Slot_Auswahl_id, $_IPS['SELF']);

und hier 182 bis 225, der komplette Anweisungsblock

	Switch ($_IPS['VARIABLE'])
	   {
		Case $HM_Zimmer_Auswahl_id:
		Case $Praesenz_Profil_Auswahl_id:
			  //33994*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Zimmer_Auswahl]*/

			If (GetValue($HM_Zimmer_Auswahl_id)== 0) // Zurücksetzen
			   {
			   SetValue($Profil_Slot_Auswahl_id,1);
			   SetValue($Profil_Wochentage_id,0);
			   SetValue($WochenProfil_Daten_edit_id, "");
			   $str = 	$str = "<table align='center' border=0 cellpadding=3 cellspacing=3 width=90%>
								<tr height=30 ><th> Slot </th><th> Start </th><th> Ende </th><th> SollWert</th></tr>";
            $str .= "<tr  align='center' height=25> <td width=25%>  </td><td width=25%> </td><td width=25%> </td><td width=25%> </td></tr></table>";
            SetValue($TagesProfil_edit_Anzeige_id, $str);
				SetValue($WochenProfil_edit_Anzeige_id,"");
				SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
				}

			If (GetValue($HM_Zimmer_Auswahl_id)> 0)
				{
            $ProfilDaten= unserialize(GetValue($IPS_HM_Wochenprofil[GetValue($HM_Zimmer_Auswahl_id)]));
				SetValue($WochenProfil_Daten_edit_id, serialize(@$ProfilDaten[GetValueFormatted($Praesenz_Profil_Auswahl_id)]));

				If (GetValue($WochenProfil_Daten_edit_id)=="N;")  //Profil ist leer
				   {
				   $str = $str = "<table align='center' border=0 cellpadding=3 cellspacing=3 width=90%>
								<tr height=30 ><th> Slot </th><th> Start </th><th> Ende </th><th> SollWert</th></tr>";
		         $str .= "<tr  align='center' height=25> <td width=25%>  </td><td width=25%> </td><td width=25%> </td><td width=25%> </td></tr></table>";
	            SetValue($TagesProfil_edit_Anzeige_id, $str);
					SetValue($WochenProfil_edit_Anzeige_id,"");
					SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
   			   }
				   else
					{
    				SetValue($WochenProfil_edit_Anzeige_id, HM_WochenTempProfil_html($WochenProfil_Daten_edit_id, GetValue($Profil_Wochentage_id)));
					$tmp=(unserialize(Getvalue($WochenProfil_Daten_edit_id)));
					$day=GetValue($Profil_Wochentage_id);
					SetValue($TagesProfil_edit_Anzeige_id, HM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
					SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
					}
				}

		 break;

Auf die Umlaute habe ich geachtet siehe hier meine Konfig:

$HM_Edit_Wfe_ID= 31244 /*[Heizung]*/;
//******************************************************************************
$HM_Typ[1]="HM-CC-TC";
$Zimmer[1]="Kueche";
$IPS_HM_DeviceID[1]=44205 /*[Thermostate\Kueche\CLIMATECONTROL_REGULATOR]*/ ;
$HM_ID_W[1]=18996 /*[Thermostate\Kueche\WEATHER]*/  ;
$HM_ID_VD[1]=37365 /*[Thermostate\Kueche\Stellantrieb rechts\CLIMATECONTROL_VENT_DRIVE]*/;
$HM_Wfe_ID[1]=14502 /*[Heizungsteuerung\Räume\Küche]*/;
//****************************************************************************

//******************************************************************************
$HM_Typ[2]="HM-CC-TC";
$Zimmer[2]="Gang";
$IPS_HM_DeviceID[2]=30393 /*[Thermostate\Gang\CLIMATECONTROL_REGULATOR]*/ ;
$HM_ID_W[2]=25970 /*[Thermostate\Gang\WEATHER]*/ ;
$HM_ID_VD[2]=28340 /*[Thermostate\Gang\Stellantrieb\CLIMATECONTROL_VENT_DRIVE]*/;
$HM_Wfe_ID[2]=13482 /*[Heizungsteuerung\Räume\Gang]*/;
//****************************************************************************
?>

Besten Dank für Deine Hilfe!

Gruß
Peter

Hallo Peter,

M.E. kann IPS in Zeile 203 die Variable „$HM_Zimmer_Auswahl_id“ nicht finden.

$ProfilDaten= unserialize(GetValue($IPS_HM_Wochenprofil[GetValue($HM_Zimmer_Auswahl_id)])); 

Diese wird zuvor in Zeile 10 mit der Funktion

$HM_Zimmer_Auswahl_id=CreateVariableByName($parentID, "HM_Edit_Zimmer_Auswahl", 1, Profil_anlegen("HM_Heizung_Auswahl"), "HMeditZimmerAuswahl", 1);

gefüllt.

Frage: Existiert in Deinem Objektbaum - dort wo die HM_Edit drin steht - eine Variable mit dem Namen „HM_Edit_Zimmer_Auswahl“ ?

Gruß

Swifty

Hallo Swifty,
schön, dass Du wieder hier bist…

Unter 294 hast Du dies geschrieben…

Hallo…
ich sag nur die Zeit, die Zeit …
Ich habe mein Heizungs-Script umgebaut und dort die VirtualDevices (Gruppen) und den Party-Modus integriert.
Leider schaffe ich es zur Zeit einfach nicht, dies zu veröffentlichen.

Gruß
Swifty

Wie ist der Stand der Dinge, um Deine aktuellen Skripte zu veröffentlichen? (Party-Modus, VirtualDevices)
Nun läuft meine Heizungssteuerung zur volle Zufriedenheit, Dank Deiner Vorarbeit…

mfg
Matthias

P.S. Wie und wo kann man für solche Arbeit eine Belohnung (Spende) einreichen?

Hi Swifty,

ja, gleich die erste Variable, Typ „Integer“, Wert „Kueche“.
Ist bei mir lange her aber sollte „Integer“ nicht eine ganze Zahl repräsentieren?

BTW: Wenn man Dir für das Skript einen Obulus zukommen lassen kann bin ich auch dabei!

Gruß

Peter

Hallo Matthias,

da hat ja jemand ein Elefantengedächtnis … (Der Beitrag ist vom Dez. 2014) …:rolleyes:
Ich habe bei mit alles etwas umgestrickt, VM und Party laufen bei den HM-Devices und der Rest auch bei HMIP.

Ich habe meine aktuellen Skripte hier mal beigefügt. An der Vorgehensweise zur Installation hat sich im Prinzip nichts geändert. Erst die Grundkonfiguration ans Laufen bekommen - einschließlich der HM_Edit (siehe Bild „Modul1“), dann kann man sich um die virtuellen Gruppen kümmern (siehe Bild „Modul 2“) und zum Schluss mit dem Party-Modus rumspielen (Modul 3).

Die >>hmxml.inc<< sollte auch mit der alten Version laufen und könnte einfach ausgetauscht werden (auf eigens Risiko bitte Backup nicht vergessen !!!)

Leider ist die Skriptsammlung nicht selbsterklärend und für den PHP-Anfänger sicherlich verwirrend aber bei mir läufts. :D. Eigentlich müsste man mehrere richtige IPS-Module erstellen… also Mutige vor … :rolleyes:, Ich helfe gern im Rahmen meiner praktischen und zeitlichen Möglichkeiten.

Bild2.jpg

Skriptsammlung.zip (26.6 KB)

Gruß

Swifty

PS: Ggf. sollten wir einen neuen Thread aufmachen, um die Versionen nicht durcheinander zu würfeln.
PPS: Danke für Euer Angebot, mir einen kleinen Obolus zukommen zu lassen zu wollen … ich bin geschmeichelt …:loveips:
Meine Arbeit steht aber jeden Frei zur Verfügung. Denn ich habe auch viel von anderen Usern gelernt und profitiere sehr von deren Wissen, KnowHow und den professionellen Modulen. Wenn ich - als PHP-Leihe - mit meinen Ideen und Skripten etwas zurückgeben kann, mache ich das sehr gerne …

Hallo Peter,

der Wert „Kueche“ passt schon … ist nur die Assoziation.

Wir müssen den Fehler Stück für Stück eingrenzen. Versuch mal z.B. hinter der Zeile 10 ein

echo $HM_Zimmer_Auswahl_id;

einzubauen und schau mal, was IPS dann beim Ausführen des Skriptes ausspuckt.
Das sollte die ID der Variablen „$HM_Zimmer_Auswahl_id“ sein.

Gruß

Swifty

Hi Swifty,

da kommt 34965 als Ausgabe.

Gruß

Peter

Hallo Swifty,
Danke für die Blumen:

… da hat ja jemand ein Elefantengedächtnis … (Der Beitrag ist vom Dez. 2014) …
Ich habe bei mit alles etwas umgestrickt, VM und Party laufen bei den HM-Devices und der Rest auch bei HMIP.

So ist das beim Widder: Stur bis zum Umfallen.

Und auch Danke für die neuen Skripte.
Ich werde sie mir sogleich zu Gemüte führen.

Matthias

Hallo Peter,

jetzt bin ich mit meinem Latein am Ende. …
Noch eine Letzte Frage, in der Variablen „HM_Wochenprofil_Daten“ überhaupt Werte gespeichert ? Diese werden dort abgelegt, sofern man in WFE den Button „Aktualisieren“ drückt und dann den Button „Profil speichern“.

Ggf. könnten wir am WE mal per TeamView das Problem einkreisen.

Gruß

Swifty

Hi swifty,

wo find ich den die Variable in der Console oder soll ich sie mir im Script per echo ausgeben lassen?

TeamViewer können wir gerne machen, jederzeit, sag einfach an wann.

Gruß

Peter

Hallo Peter,

sorry, ich meinte die Variable „HM_Wochenprofil_Daten“. Hab ich gerade korrigiert. Diese sollte bei Die unter Heizungssteuerung/Kueche zu finden sein.

Alles weiter sollten wir per PM klären, sonst wird dass hier zu unübersichtlich …:rolleyes:

Gruß

Swifty

Hallo,

ich hoffe, mir kann hier jemand helfen. Das Azslesen des Wochenplanes vom HMIP-Thermostaten funktioniert jetztz. Nur leider ist mitr immer, wenn ich das Script „HM_Heizung_WochenProfil_auslesen“ starte, mein Dashboard zerschossen.
Ich h änge mal die Fehlermeldung dran, welche kommt, wenn ich das Dashboard öffnen möchte.
Es liegt unmittelbar mit dem Script „HM_Heizung_WochenProfil_auslesen“, denn bevor ich das Script ausführe, funktioniert noch alles.

Hallo Swifty,

ich habe alle Skripte soweit am laufen… Es gibt noch eine Fehlermeldung die dauerhaft erscheint beim änder der Temperatur oder der Zeiten. Aber Funktionieren tut alles verstehe nicht warum der Fehler erscheint. Er zeigt mir an das ich in der HM_Heizung_Funktionen einen Fehler haben sollte in der Zeile 336… Ich habe mir die Zeile angeschaut verstehe aber nicht was in der Zeile den abgefragt wird?? Könntest du mir einen Typ geben wo mein Fehler liegen könnte.

ip-symcom_heizung.PNG

Hallo,

Ich hatte die Script´s von Swifty erfolgreich im Einsatz.
Jetzt habe ich testweise mal die letzen Script´s von Swifty installiert.

Nun mein Problem

Ich hab e vorher alles gelöscht und die Scripte installiert.
Beim HM_Edit Script kommt leider der Fehler das die Variablen nicht erstellt werden können.
Unter dem Profilmanager sind durch den Import alle Profile vorhanden.

Wenn ich nun HM_Edit ausführe bekomme ich diese Fehlermeldung

Fatal error: Call to undefined function CreateVariableByIdent() in C:\IP-Symcon\scripts\HM_Edit.ips.php on line 10
Abort Processing during Fatal-Error: Call to undefined function CreateVariableByIdent()
Error in Script C:\IP-Symcon\scripts\HM_Edit.ips.php on Line 10

Auch beim Script Party_eingabe der selbe Fehler

Fatal error: Call to undefined function CreateVariableByIdent() in C:\IP-Symcon\scripts\HM_Party_Eingabe.ips.php on line 10
Abort Processing during Fatal-Error: Call to undefined function CreateVariableByIdent()
Error in Script C:\IP-Symcon\scripts\HM_Party_Eingabe.ips.php on Line 10

Hat jemand für mich einen Tip wo ich suchen könnte?

Gruß

Stephan

Hallo xero315,
hallo Stephan,

ich kann die Fehler leider nicht nachvollziehen. Könnt Ihr mir bitte sagen, welche Skripte Ihr im Einsatz habt. Am besten mit Link auf den Beitrag. Hier schwirren auch einige modifizierte Versionen herum.

Gruß

Swifty

Hallo Swifty,

Danke das du versucht mein Problem nachzuvollziehen.
Ich habe extra die Skripte verwendet die du als letztes (Skripsammlung) hier im Forum gepostet hast.
Es funktionier ja fast, nur das die Variablen nicht angelegt werden.
So wie ich das sehe werden ja die Variablen eigentlich durch das HM_Edit Script erstellt, nur nicht bei mir :banghead:
Ist den dieses Script bei Auführung von den include Scripte Abhängig oder sollten diese Variablen trotzdem erstellt werden ?

Was macht den die erste Zeile die den Fehler bringt genau ?
$HM_Zimmer_Auswahl_id=CreateVariableByIdent($parentID, „HM_Edit_Zimmer_Auswahl“, 1, Profil_anlegen(„HM_Heizung_Auswahl“), „HMeditZimmerAuswahl“, 1);

Danke
Stephan

Hallo Stephan,

du hast sehr wahrscheinlich nicht alle Dateien aus der Skriptsammlung in Dein System übernommen.

Die HM_Edit.php includiert die Datei HM_Heizung_Funktionen.ips.php. Wenn du die alte „HM_Heizung_Funktionen.ips.php“ nicht durch die neue Datei ersetzt, sucht sich die HM_Edit.php nen Wolf nach der Funktion „CreateVariableByIdent“. Diese ist in der alten „HM_Heizung_Funktionen.ips.php“ nicht enthalten.

Gruß

Swifty

Hallo Swifty,

Oh du hast Recht das war es. :banghead:
Komisch ich hatte eigentlich alles Scripte importiert aber vielleicht ist mir da ein Fehler unterlaufen.
Vielen Dank nochmals.

Gruß

Stephan

Hallo Swifty,

Ein Problem habe ich noch.
In dem neuen Script HM_Heizung_Funktionen wurden die Einträge zb.von SetLinkByName zu SetLinkByIdent oder auch IPS_GetObjectIDByName auf IPS_GetObjectIDByIdent geändert.
Dadurch funktioniert leider das HM_Heizung_Global von Inspra aus #227 nicht mehr.
Habe zwar pobiert alle …by von Name auf Ident in dem HM_Heizung_Global Script zu ändern aber das funktioniert leider nicht.
Vielleicht hast Du noch einen Tip für mich.

Danke und Gruß

Stephan