Danke Boui!
Hallo,
Ist keine Class aber hier ist schon mal eine erste kleine Bibliothek mit Funktionen, die über XMLRPC ein paar wichtige Dinge, die IPS nicht abdeckt, steuern. Habe ich natürlich dank euren Beiträgen hier gebastelt.
Da in „Home Automation“ auch Automation drin steht, habe ich versucht alles zu automatisieren, damit es auch schön wie IPS Befehle aussieht.
Die Bibliothek deckt alles ab, was ich brauche. Ich kann aber gerne mehr hinzufügen, falls Interesse besteht.
Beispiel:
include "hmxml.inc.php";
$result = HMXML_setTCMode(29123 /*[HM TC Instanz]*/, 0); // Set to Central mode
$tempProfile = HMXML_getTempProfile(29123 /*[HM TC Instanz]*/, "MONDAY", false);
$tempProfileNew = array();
$tempProfileNew['MONDAY']['EndTimes'] = array("06:30","08:30","16:30","22:00","24:00");
$tempProfileNew['MONDAY']['Values'] = array(17.0,20.0,17.0,19.5,17.0);
$result = HMXML_setTempProfile(29123 /*[HM TC Instanz]*/, $tempProfileNew);
HMXML_setTCValveMode(29123 /*[HM TC Instanz]*/, 1); // Close the Valve
$RFLevels = HMXML_getRFLevelsAB("IEQ012345", 29123 /*[HM Gerät Instanz]*/);
etc…
Viel Spaß (hoffentlich).
Gruß,
Zapp
hmxml.inc.php.zip (5.25 KB) i[/i]
Ja ist denn heut schon Weihnachten?
Ich habe mir mal die neuen Funktionen aufgelistet und mit den ersten Sachen gespielt. Ich kann nur den Hut ziehen.
Das macht es deutlich einfacher und angenehmer.
Vielen Dank.
Hallo Zapp,
das ist 'ne Klasse Arbeit, ich bin begeistert!
Vielen Dank!!!
Hallo Zusammen.
Echt klasse was ihr hier auf deine Beine gestellt habt. Ich habe jetzt alle Parameter mit HMXML_getParamSetDesc durchgesehen, aber leider noch immer keine möglichkeite gefunden zwischen Comfort und Absenkung umzuschalten, bzw den Status abzufragen. Hab ich den nur übersehen, oder gibts den nicht?
P.S. Ich arbeite über den LAN Adapter.
Hallo,
was ist das denn hier für ein Mist!
Ich war wieder mal angefangen meine Heizungsreglung neu zu gestalten, als wird von IPS aus gesteuert.
Kann ich jetzt alles voll vergessen, dank deiner geilen Arbeit.
Respekt, darauf haben schon viele gewartet. Jetzt habe ich die Idee alles ins Thermostat zu senden und der soll mal machen, der Vorteil liegt ja auf der Hand. Wenn IPS oder die CCU ausfällt bleibt es immer noch warm in der Bude.
Also noch einmal Danke für deine Arbeit.
Gruß Uwe
Hallo zusammen!
Super Funktionen!
Nur habe ich ein paar Probleme damit denk
sende ich Temperaturprofile von IPS zum WT:
$tempProfileNew = array();
$tempProfileNew['MONDAY']['EndTimes'] = array("05:00", "12:00", "16:00", "20:00", "24:00");
$tempProfileNew['MONDAY']['Values'] = array(17.0, 19.0, 21.0, 23.0, 17.0);
$result = HMXML_setTempProfile(35168 /*[Wohnung 1\Wohnzimmer\Wandthermostat\Sollwerte]*/, $tempProfileNew);
kommen diese nur irgendwie komisch an.
Programm aus dem WT für Montag:
00:00 - 05:00 => 17,0°C
05:00 - 07:00 => 19,0°C
07:00 - 07:10 => 21,0°C
07:10 - 07:20 => 23,0°C
07:20 - 07:30 => 17,0°C
07:30 - 00:00 => 20,0°C
Wenn ich allerdings die Profile über ein Script abfrage, dann sieht mein Ergebnis wieder richtig aus.
Abfrage:
$SollwertID =35168 /*[Wohnung 1\Wohnzimmer\Wandthermostat\Sollwerte]*/;
$tempProfile = HMXML_getTempProfile($SollwertID, "MONDAY", true);
Ergebnis:
MONDAY
1: 00:00 -> 05:00 = 17 °C
2: 05:00 -> 12:00 = 19 °C
3: 12:00 -> 19:10 = 21 °C
4: 19:10 -> 24:00 = 23 °C
Mache ich hier was Falsch, oder hakts da woanders?
Gruß, Christian.
Hallo,
@zapp: SUPER! Vielen Dank!
@UH368: Wenn Du da was gebaut hast, lässt Du es uns/mich mal wissen? Ich habe eine HM Steuerung gebaut die auf sFHT aufbaut. Aber wie Du schon sagtest hat es gewaltige Vorteile alles direkt an die Thermostate zu schicken.
Aber man muss natürlich schon überlegen wie man z.B. mit Feiertagen umgeht… oder auch längerer Abwesenheit, so dass man dann ferngesteuert die Heizung wieder einstellen kann. Und dann natürlich (fast am wichtigsten) wie man den Config file gestaltet, in dem die Temperaturprofile, Feiertage, etc stehen (siehe auch sFHT).
Gruss
gros_ibou
Hallo,
Danke für den Feedback. Schön, dass die Bibliothek euch gefällt und hilfreich ist.
Die Heizungsteuerung mache ich selbst komplett über IPS aber zB die Profile direkt am WT richtig zu setzen oder den Regler schließen kann bei einem Ausfall helfen.
Eine neue Version mit Bug-fixes und zusätzlichen Funktionen könnt Ihr mit denselben Link aus meinem letzten Beitrag holen.
@ChristianS
Danke. Gut beobachtet! Ich hatte das selbst nach dem Versenden gar nicht auf dem WT überprüft und habe mich auf das Output der get Funktion verlassen. Die Werte wurden zwar richtig übergeben, aber die Interpretation war falsch. Ich hatte Boui’s Beitrag zu schnell gelesen und TIMOUT relativ zum vorigen Wert berechnet. Habe ich jetzt korrigiert.
@sschnake
Das konnte ich auch nicht finden. Ich denke, dass die Tag/Nacht Taste auf dem WT einfach nur SETPOINT für eine gewisse Zeit (nächste Temperaturänderung im Profil?) auf den jeweiligen Wert setzt und dadurch nichts in den Parametern ändern braucht.
Neue Funktionen:
HMXML_setTempLoweringValue(29123 /*[HM TC Instanz]*/, 16.0);
HMXML_setTempPartyValue(29123 /*[HM TC Instanz]*/, 21.0);
HMXML_setPartyEnd(29123 /*[HM TC Instanz]*/, 1, 1, 0);
...
Gruß,
Zapp
Dachte gar nicht, dass den überhaupt jemand gelesen hat.
Selbst hatte ich mir nen Ersatz-WT zum IPS-Server gelegt und wollte Dein Werk am WE mal komplett testen aber dann kam ich doch nicht dazu.
Aber so ein Forum deckt alles auf.
Hallo,
ich denke jetzt wirklich darüber nach meine ganze Heizungssetuerung in die Theromstate zu verlagern.
Was dazu wichtig wäre und was ich aus dem Code nicht direkt ersehen konnte ist:
(1) Kann man auch „weekdays“ und „weekend days“ evtl „all days“ setzen statt jeden Tag einzeln
(2) Kann man die „Fenster auf“-Temepratur setzen? Dazu habe ich nichts gefunden
@zapp: kannst Du mich da vielleicht erleuchten?
(3) Schön wäre es auch noch einstellen zu können ob das WT Luftfeuchtigkeit/aktuelle Temperatur oder Soll Temperatur anzeigt.
Das ist es was mir im Moment an (für mich - hoffentlich auch für andere) hilfreichen Fuktionen einfällt.
@zapp: wäre super, wenn Du das noch implementieren könntest
Gruss (und Dank)
gros_ibou
Hallo,
Darüber denke ich jetzt auch langsam nach
Ich habe aber viel Zeit verbraucht, die Heizungsteuerung in IPS zu implementieren und daher wird das über WT bei mir wohl zur Zeit nur als „Backup“ dienen.
- Dafür gibt es keine Parameter im WT aber das könnte leicht über eine Funktion gemacht werden
- Die Temperatur bei offenem Fenster habe ich auch bisher vergeblich gesucht.
- Das geht direkt über Parameter
Implementiere ich gerne aber ich werde jedoch nicht vor dem Wochenende dazu kommen, da ich gerade unterwegs bin.
Gruß,
Zapp
Danke! Muss ja nicht sofort sein:).
zu (1). Ist klar, dass das einfach mit einer Funktion zu machen ist. Aber ich wollte auch den Datenverkehr zur Homematic begrenzen, oder ist das Deiner Erfahrung nach kein Problem?
Viele Grüsse
gros_ibou
PS: Ich hab auch viel Zeit mit meiner IPS gesteuerten Heizungskontrolle verbracht und es tut deshalb etwas weh sie ausser Betrieb zu nehmen :mad:.
Aber zumindest bei mir kann man wenn man jetzt einfach die Temperaturprofile ins WT schickt (und beispielsweise an einem Feiertag einfach für den entsprechenden Tag das Sonntagsprofil schickt - und am Ende des Tages wieder zurücknimmt) gewaltig entrümpeln. Deshalb mache ich es glaube ich trotz allem.
Hallo,
hab jetzt angefangen mit den Funktionen zu spielen.
Bei folgendem Beispiel von Zapp
$tempProfileNew = array();
$tempProfileNew['MONDAY']['EndTimes'] = array("06:30","08:30","16:30","22:00","24:00");
$tempProfileNew['MONDAY']['Values'] = array(17.0,20.0,17.0,19.5,17.0);
$result = HMXML_setTempProfile(29123 /*[HM TC Instanz]*/, $tempProfileNew);
bekomm ich diese Fehlermeldung
Notice: Undefined variable: previousTimeEnd in C:\IP-Symcon\scripts\hmxml.inc.php on line 230
Jemand eine Idee?
Gruss
gros_ibou
24:00 Uhr gibt es nicht. Wenn, dann 00:00 Uhr.
Hatte schon 23:50 probiert. Gleiches Problem!
Sorry, mein Fehler. Irgendwie kommt die Warnung bei mir nicht und ich hatte das übersehen. Habe da wohl einen zu niedrigen Error Report Level.
Ich habe es korrigiert und hochgeladen.
Gruß,
Zapp
Danke!!!
gros_ibou
Moin Zapp,
Der Fehler
Notice: Undefined variable: timePrevious in K:\IP-Symcon2\scripts\inc_Homematic.ips.php on line 193
kommt nur bei eingeschalteten $echo in der function
HMXML_getTempProfile($IPS_DeviceID, $day = false, $echo = true);
da in der Zeile 193 ein nicht definierte Variable $timePrevious eingetragen und definiert ist.
if ($echo) echo "$index: $timePrevious -> $Time = $Temp °C
";
Ah, das ist doch scheisse!! :mad:
Ich habe gerade den Redesign für meine Heizungssteuerung fertig.
Jetzt kann ich nochmal anfangen.
Aber, die Vorteile liegen klar auf der Hand.
Da muss ich wohl durch.
Einfach klasse!! Besten Dank!!