ich glaube, dass wir bei Fensterkontakten gerade aufpassen und differenzieren müssen …
Es gibt zum einen den Fehler, dass die Fensterkontakte gar nicht bzw. falsch erkannt werden und zum anderen, dass der Wunsch gehegt wird, nicht nur eine Abwesend sondern auch noch eine Fenster-Auf Temperatur zu haben …
Die letzten Posts waren hier glaube ich nicht eindeutig dem jeweiligen Thema zuzuordnen …
Da hast du wohl recht. Ich habe beide Probleme momentan mit einem eigenen kleinen Hilfsskript und einer zusätzlichen Variable gelöst. Ich werde mal einen Screenshot machen, sofern ich heut Abend an meinen Pc komme.
ich habe das Heizungsscript schon einige Monate im Einsatz und hat auf Anhieb gut funktioniert - bis ungefähr zu dem Tag, wo ich das IPSLibrary installiert hatte. Kann auch ein Zufall sein…
Jedenfalls habe ich derzeit das Problem, dass der WT-IT-ST - Vergleich nur mehr bei Heizplanübergängen und nach Änderungen der Wunschtemperatur erfolgt. Die aktionsScripte-trigger.ips.php wird alle 5 Minuten aufgerufen, die Ist-Temperatur wird dabei aktualisiert, allerdings erfolgt kein Abgleich mehr zw WT-IT-SollTemperatur.
Wenn ich mich richtig erinnere, schien der Abgleich der einzelnen Räume im 5minuten-Rhytmus auch im Log auf, was jetzt nicht mehr der Fall ist.
Heizungsinterface: HomeMatic Heizen JA/NEIN
Ich hoffe, mein Problem ist verständlich ausgedrückt.
Hey,
Hier ist noch der versprochene Screenshot und das Skript für meine momentane Lösung mit den Fenster Kontakten und die Absenktemperatur.
Sorry für die Verspätung. Hat leider nicht früher geklappt dank der Firma.
Getriggert wird das ganze endweder durch die jeweiligen Fenster und durch veränderungen an der Anwesen Temperatur.
<?
//Sollwert für Anwesend der im Webfront eingestellt werden kann
$Anwesend = GetValueFloat (49618 /*[Heizungsteuerung\Heizplan\00-Temperatur Profile\Rechts\Wohn-, Esszimmer & Flur\Anwesend]*/);
//Temp. Sollwert der von dem Heizunsskript wieder Ausgelesen wird.
$Sollwert = 27419 /*[Heizungsteuerung\Heizplan\00-Temperatur Profile\Rechts\Wohn-, Esszimmer & Flur\Anwesend\Speicher]*/;
//Fenster die für die Absenkung zuständig sind.
$Fenster = array (
GetValueBoolean (56485 /*[Geräte\Erdgeschoss\Flur & Esszimmer\Fenster Flur\SENSOR]*/),
GetValueBoolean (11984 /*[Geräte\Erdgeschoss\Flur & Esszimmer\Fenster Esszimmer\SENSOR]*/),
);
//Auswertung des Array
If (in_array (true, $Fenster))
{
SetValueFloat($Sollwert, 6); //Speicher auf 6°C Setzten um Ventile zu Schließen
//echo 'auf';
}
else
{
SetValueFloat($Sollwert, $Anwesend); //Speicher auf Anwesend Temp. Setzten
//echo 'zu';
}
?>
Das Heizunsskript Liest dann wieder die Temperatur aus der Speicher Variable aus.
Im LOG erscheint eigentlich nur was, wenn sich eine Temperatur oder ein Heiz-Status ändert. Ob es etwas mit der Library zu tun hat lässt sich schwer sagen. Sollte und dürfte aber eigentlich nicht.
Lässt Du mit der Library irgendwie deine HomeMatic Geräte lesen oder schreiben? Könnte eventuell die Library die HM-Thermostate beeinflusse.
Stehen die Thermostate auf „CENT?“
Wird die Temperatur auf 30° gestellt, wenn Du in innerhalb eines zeitslots die Anwesenheit von Abwesend auf Anwesend stellst?
Lasse nur mit Highcharts die Soll- und Ist-Temperaturen grafisch darstellen. Sonst hat eigentlich nichts mit den HM-Thermostaten zu tun
ja
nur wenn die Isttemperatur < Solltemperatur ist. Dann würde es eine Anpassung auslösen. Allerdings bleibt die Temperatur mindestens solange auf 30°, bis ein neuer Zeitslot beginnt. Erst dann folgt wieder die Prüfung, wie sich die IT-ST-WT verhalten.
Da einige Zeitslots recht lange sind, wird es ganz schön warm…
Noch mal zu dem Thema mit den Links, die Raumbezogen zusammengestellt werden soll …
Da ja der Aufwand zu groß ist das Script komplett umzuschreiben, wie würde dann ein Schript aussehen, welches alle Variablen raussucht, die mit einem bestimmten Text anfangen und dann zu diesen variablen Links in einem bestimmten Ordner erstellt (vorher natürlich vorhandene Links löschen) ?
Dieses Script würde man dann täglich nach Erstellung des Heizplans laufen lassen und hätte somit zumindest die Möglichkeit immer die aktuellen Links zu verwenden?
Das Löschen der Links könnte man vielleicht vor Neuerstellung des Heizplans machen, damit keine fehlerhaften Links in der Zeit der Neuerstellung da sind.
Wie würde so etwas funktionieren bzw. geht das eleganter?
getChildrenIDs(Heizplan)
(wenn man den Ordner Wunschtemperaturen woanders hin packt, dann so weiter?)
die Sache mit den Homematic Fenster/Türkontakte habe ich bei mir so gelöst:
In der Datei INTERFACES_Heizungskomponenten.ips.php habe ich die Zeile 100 und 229
public function getWindowStatus ($objectID) {return GetValueInteger($objectID);}
durch
public function getWindowStatus ($objectID) {
$var = IPS_GetVariable($objectID);
if ($var['VariableValue']['ValueType']==0) {
$val = GetValueBoolean($objectID);
if ($val) return 2;
else return 0;
}
else {
return GetValueInteger($objectID);
}
}
ersetzt.
Ich prüfe einfach ob die ObjektID eine Integer oder Boolean Variable ist. Ist es ein Boolean - also ein Funk-Fensterkontakt - gebe ich bei geöffneten Fenster einfach 2 zurück ansonsten den Wert 0.
Jetzt mus die Abfrage von Heizungstrigger noch angepasst werden.
Wenn alles so klappt, wie ich es mir Vorstelle, braucht man dann in der config.class nur noch den Debuggerbereich.
Denn Heizplan und die Struktur habe ich in je eine class ausgelagert.
Wer das mal testen möchte, bitte melden. Dann lade ich gerne mal den momentanen Stand hoch.
Bis jetzt habe ich 2 neue Scrippte erstellt und die createHeizplan.class.ips.php umgeschrieben.
Hier mal die neue createHeizplan.class.ips.php !!bitte nur zum anschauen!!!
Die funktioniert alleine nicht. createHeizplan.class.ips.rar (1.44 KB)
Alles was du da beschrieben hast, geht damit.
Links löschen.
Variblen löschen
Variablen anlegen.
Links erstellen.
alles vom Vortag. Dafür braucht man aber eine definierte Struktur. Dynamisch bekomme ich das nicht hin. ist wohl auch sehr aufwendig.
Die Struktur ist im Bild zu sehen, wobei der Name (Bezeichnung) jeder für sich anpassen könnte.
Hier noch der Entwurf von der class.struktur.ips.php createHeizplan.class.ips.rar (1.44 KB)
Ich habe bisher auch alles umgesetzt … es gibt quasi eine Kategorie für das Heizungswebfront, in der die Einzelnen Räume als Kategorie liegen (also separate Struktur für das Webfront, kein Ersatz für den Heizplan)
Für jeden Raum gibt es eine Instanz, unter der die Zeiten dann dargestellt werden. Diese ID benötigt man eigentlich nur und dann werden alle Tage incl. Wunschtemperatur darunter angelegt. Löschscript löscht dann alle Links wieder. Sind dann auch 2 einzelne Scripte.
Werde mein vorheriges Posting noch mal anpassen.
Das Ganze als Class bekomme ich nicht hin, aber es funktioniert …
Bin noch nicht so weit.
Mein Ziel, wie schon erwähnt, ein(ige) Script(e) der(die) alles automatisch erledigen.
Vom Anlegen der Kategorien bis hin zu den Variablen, HM Modulen und der Links fürs Webfront.
Werde wo noch einige Wochen brauchen, halt so wie es die Zeit zulässt.
Genau das habe ich schon fertig als Class. Muss ich alles noch bereinigen und optimieren und den Debugger einbinden.
Das wird noch ein Thema der Debugger.
Hat jemand von euch auch EinsWireWago Komponeten. Da kenne ich mich garnicht mit aus. Oder habt ihre alle nur Homematic?
Ohne es mangels Zeit genau geprüft zu haben, sollte die Eintragungen für die Fenstergriffe im Interface genau das lösen … Aber wenn es anders klappt, super!
Soweit ich das vom der Meldungs-Ausgabe her beurteilen kann, funktioniert das bei mir recht gut. Sobald Fenster-Kontakt „offen“ meldet, wird die Soll-Temperatur auf den „Abwesenheitswert“ gesetzt - mit der von HM üblichen Verzögerung von teilweise mehreren Minuten.