NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Bei der Abwesenheits Absenkung. Zwei Blöcke weiter rechts. Da steht per Default 1 drin.
Gruß
Holger `
Vielen Dank !!
Gruß
Thomas
-
Hab's jetzt 1 1/2 Stunden im 10 Minuten Wechsel durchlaufen lassen jedes mal mit geöffneten Fenster und ca. 2 min nach dem
Zeitabschnitt Fenster geschlossen, Raumthermostat wurde sofort umgestellt und nach ~5 min die HK-Thermostate.
Also ohne Fehler funktioniert `
Danke euch fürs Testen. Dann werde ich zum WE eine neue Version machen.vG Looxer
-
Danke euch fürs Testen. Dann werde ich zum WE eine neue Version machen.
vG Looxer
Wir haben zu Danken!!
Lg
-
Ich habe meine alte Heizungssteuerung jetzt komplett von der Fritzbox auf den ioBroker gelegt.
Zum Script ein paar Sachen bei denen ich vermute das es an den DECT Thermostaten liegt:
Steuerung per Event funktioniert nicht. Ich arbeite mit dem Cron Job.
Boost können die Dinger nicht direkt per Befehl
Gerade das Boost wollte ich wieder haben. Dazu habe ich im letzten Jahr einen Dash Button installiert der den Thermostat für 60 Minuten auf 28 °C gestellt hat.
Jetzt mit dem neuen Script dachte ich das ich das problemlos so weiterverwenden kann - denkste!
Das Heizungsscript überschreibt logischerweise meine Einstellung.
Mit etwas experimentieren habe ich dachte ich eine Lösung gefunden. Aber es scheint nicht so richtig zu funktionieren:
Ich setze den Datenpunkt View_manually_adjusted auf eine Temperatur und denke das der dann die Steuerung übersteuert.
Das Script dazu:
!
const idTaster = "amazon-dash.0.00-fc-8b-f6-4b-a9.pressed"/*pressed*/; const idTarget = "javascript.0.Heizung.Heizplan.Toilette.View_Manually_Adjusted"/*View_Manually_Adjusted*/; const idVis = "javascript.0.Heizung.LaufzeitBad"; // Anzeige Restdauer in Minuten const High = "32"; ! var cnt = getState(idVis).val; var timer = null; ! function countDown() { cnt--; setState(idVis, cnt, true); if(cnt <= 0) { clearInterval(timer); setState(idTarget, 0); } } ! on({id: idTaster, val: true}, function () { setState(idTarget, High); cnt = 60; setState(idVis, cnt, true); if(timer) clearInterval(timer); timer = setInterval(countDown, 60000); // jede Minute }); !
Allerdings ist es jetzt scheinbar so das die manuelle Temperatur zwar kurz ins Thermostat geschrieben wird, aber nach wenigen Augenblicken wieder die "normale" Temperatur dort steht.Dazu ist mir auch noch aufgefallen das ich andere Werte eintragen muss.
Bei 27 °C muss ich 30 eintragen und bei 28°C dann 32.
Wo habe ich meinen Denkfehler oder welchen Datenpunkt muss ich ansteuern um die Funktion zu erreichen.
Ich gebe zu das das vielleicht der absolute Weicheimodus ist, aber da ich oft zu unterschiedlichen Zeiten zum Duschen komme hat es sich doch als recht sparsam erwiesen erst zu dem Zeitpunkt die Heizung wirklich anzusteuern.
-
Hi,
wenn du die Temp direkt am thermostat aenderst (per programm), dann sollte dies als manuelle Änderung erkannt werden. im View stellst du die Gültigkeit auf 60.
hast du das schon probiert?
Vg looxer
Gesendet von meinem SM-G965F mit Tapatalk
-
Nein, das funktioniert bei den DECT Teilen nicht so.
Die haben eine Basisprogrammierung die alle 15 Minuten von der Fritzbox mit den in der Box vorliegenden Daten überschrieben wird. Es wird zwar die Temperatureinstellung ausgelesen, aber ignoriert.
Es gibt zwar einen manuellen Modus, aber der setzt gleichzeitig die Programmierfähigkeit außer Kraft.
Im Ursprünglichen Script habe ich ja den Thermostat über die Fritzbox direkt auf die Temperatur gesetzt. Das wird aber dann von Heizungsscript wieder überschreiben.
Das würde aber auch die Box wieder überschreiben weil sie nach 15 Minuten wieder auf die Ursprungsprogrammierung zurückfällt.
Ich müsste also wirklich im Heizungsscript die Temperatur ändern.
Was mich zur nächsten Frage bringt:
Wenn ich das im VIS manuell ändere funktioniert das auch nicht. Warum? Wenn ich dort 60 Minuten und die Temperatur eingebe sollte das doch für 60 Minuten auf der Temperatur landen.
Ja, mir ist klar das das ein echt blödes DECT System ist…..
-
Hallo,
wenn das neue Skript kommt, muss ich die View dann NEU machen bzw. einstellen?
Und was ist eigentlich das genau: Aktueller Solltemp Zeitabschnitt
-
enn das neue Skript kommt, muss ich die View dann NEU machen bzw. einstellen? `
Nein, du musst nur unterhalb der Einstellungen den Code austauschen.
-
keine Aenderung der Eisntellungen
-
keine VIS Aenderungen
However. Fuer zukuenftige Erweiterungen kann es sein, dass Einstellungsoptionen geaendert werden oder auch zum VIS was hinzukommt.
Das werde ich aber immer beschreiben und eine komplette Neuinstallation sollte nicht notwendig sein.
vG Looxer
-
-
DANKE
-
Die haben eine Basisprogrammierung die alle 15 Minuten von der Fritzbox mit den in der Box vorliegenden Daten überschrieben wird. Es wird zwar die Temperatureinstellung ausgelesen, aber ignoriert.
Es gibt zwar einen manuellen Modus, aber der setzt gleichzeitig die Programmierfähigkeit außer Kraft.
Im Ursprünglichen Script habe ich ja den Thermostat über die Fritzbox direkt auf die Temperatur gesetzt. Das wird aber dann von Heizungsscript wieder überschreiben.
Das würde aber auch die Box wieder überschreiben weil sie nach 15 Minuten wieder auf die Ursprungsprogrammierung zurückfällt.
Ich müsste also wirklich im Heizungsscript die Temperatur ändern.
Was mich zur nächsten Frage bringt:
Wenn ich das im VIS manuell ändere funktioniert das auch nicht. Warum? Wenn ich dort 60 Minuten und die Temperatur eingebe sollte das doch für 60 Minuten auf der Temperatur landen. `
Hi,
also fuer diesen Fall funktionieren ueberhaupt keine manuellen Einstellungen, weil ja das Thermostat immer mit seiner Einstellung daherkommt. Das Script kann nicht wissen, ob das so gewollt ist oder nicht.
Daher muessen die manuellen Aenderungen des Thermostates grundsätzlich übersteuert werden. das kannst du machen indem du die Gueltigkeit der manuellen Einstellung auf 0 stellst.
Damit ist deinem Boost-Wunsch aber natürlich nicht geholfen.
Ich könnte mir vorstellen einen manuellen Boost vorzusehen, der alles andere übersteuert und mit einer eigenen Gültigkeit versehen ist.
Die 5 Minuten bei Homematic, die von den Thermostaten einstellbar sind, sind m.E. auch relativ knapp bemessen.
Es könnten sich also noch mehr Fälle ergeben, die Sinn machen.
Muss ich mir ansehen. Dauert aber etwas.
vG Looxer
-
Und was ist eigentlich das genau: Aktueller Solltemp Zeitabschnitt `
sorry, gerade gesehen, dass noch eine Frage offen ist.Der Solltemp Zeitabschnitt ist die Zeitspanne für die jeweils eine Soll-Temperatur geplant worden ist.
Entsprechend ist der aktuelle Soll-Temperatur Zeitabschnitt die Zeitspanne mit der im Moment gültigen Soll-Temperatur.
vG Looxer
-
Ich habe das jetzt noch auf verschiedene Wege versucht und schaffe das offensichtlich nicht.
Was mir aufgefallen ist, das sich auch wenn ich über VIS die Temperatur manuell setze diese nur ganz kurz übernommen wird und dann sofort wieder auf die Ursprungseinstellung zurückfällt.
-
Hi,
Ich nehme an, dass du die Gültigkeit auf 0 gestellt hast. damit werden alle manuellen Änderungen ignoriert. so ist es auch richtig bei dir.
wie gesagt: ich kann da was machen, wenn du etwas Geduld hast.
Vg looxer
Gesendet von meinem SM-G965F mit Tapatalk
-
Ok, Danke dir.
-
Hi,
basierend auf die Diskussion zur Boostfunktion habe ich mir das unten beschriebene Konzept überlegt.
Feedback wäre klasse und auch vielleicht 2-3 Tester, die die Funktion checken könnten, auch im Kontext der anderen Funktionen wie z.B. manuelle Änderungen.
Vermutlich habe ich eine erste Version fertig am 04.11.18
vG Looxer
Manueller Boost - Konzept
Funktion.
-
Nach aktivieren eines raumbezogenen Datenpunkts (setzen auf true) wird die Temperatur der Raumthermostate auf die in den Raumeinstellungen eingestellt BoostTemp gestellt.
-
Nach einer raumbezogenen Ablaufzeit wird die Temperatur zurückgestellt auf den normalen Schedule. Dabei werden auch evt eingestellte globale Parameter beibehalten (Party/ Gaeste etc)
-
Dabei hat die manuelle Boost Funktion Vorrang vor allen anderen einzustellenden Temperaturen bzw. Temperaturkorrekturen inkl. manueller Verstellung im View oder am Thermostat. Ausnahme ist lediglich die Heizperiode bei der die Thermostate auf die Sommereinstellung gehalten werden.
-
Die Boost-Temperatur bleibt erhalten auch nach Stoppen und Wiederanlaufen des Scriptes (da in Datenpunkten erhalten)
Vorteile,
- Es kann von aussen über eigene Logik durch einfache Aenderung eines einzelnen Datenpunktes eines Raumes die Boost Funktion aktiviert werden.
(z.B. Dash Button drücken im Badezimmer) oder durch andere Events, die nicht durch den Schedule abgebildet werden können
- Durch Voreinstellungen läuft die Funktion zuverlässig, unabhängig von anderen Einstellungen
(Voreinstellung ist: Laufzeit des Boost je Raum
-
Die Standard Boost-Einstellung der Thermostate ist unabhängig von der manuellen Boost Funktion. Der Vorteil der manuellen Boostfunktion ist aber, dass je Raum die Dauer flexibel eingestellt werden kann (z.B. 60 Minuten)
-
Es werden auch Thermostate unterstützt, die keine Boostfunktion haben
-
Auch bei Thermostaten, die keine manuelle Uebersteuerung zulassen kann die BoostFunktion genutzt werden
Umsetzung:
Einstellungsbereich (neue Variable)
Es gibt eine neue Variable im Einstellungsbereich. Diese Variable bestimmt die Boost-Temperatur für alle Thermostate. Wäre wahrscheinlich besser aufgehoben bei der Thermostdefinition, allerdings würde das für jeden mehr Aufwand machen beim update des Scriptes. Sollte aber auch so kein Problem geben.
Datenpunkte ( 3 neue Datenpunkt je Raum: )
-
BoostActive (boolean true oder false)
-
BoostAblaufZeit: Zeit/Datum an dem die BoostTemperatur ablaufen wird
-
BoostTime: Einstellzeit in Minuten für die BoostTemperatur
VIS
- Wer die Funktion nutzen möchte muss in VIS 3 neue Zeilen einbauen
o BoostActive als Switch
o BoostAblaufZeit als Anzeige
o BoostTime als Input (Zeit in Minuten)
- Dazu werde ich eine neue View zur Verfügung stellen
Technische Umsetzung:
-
Neue Variable im Einstellungsbereich
-
Neue Datenpunkte über CreateState je Raum
-
Subscription auf BoostActive
-
Übersteuerungslogik ergänzen (1. Heizungsperiode dann 2. manuellerBoost, dann den Rest der global Parameter)
-
Setzen der Temperatur und Ablaufzeit speichern wenn flag gesetzt
-
Rücksetzen der Temperatur und Ablaufzeit initialisieren wenn Flag rückgesetzt
-
Rücksetzen der Temperatur und Ablaufzeit initialisieren wenn Ablaufzeit erreicht/ueberschritten rückgesetzt
-
VIS (View) Erweiterung
-
-
Hallo,
Habe mich gestern Abend mit den Direktverknüpfungen wegen der Boost Funktion gespielt,
(Deinen Vorschlag für die Manuelle Boost Funktion finde ich Super!)
dabei ist mir aufgefallen, dass die HK-Thermostate (HM-CC-RT-DN) nicht von „Auto“ auf „Manu“ umgestellt werden, das Raumthermostat wird auf „Manu“ gesetzt jedoch nicht auf die HK-Thermostate übertragen. (Direktverknüpfungen wurde über Gruppen hergestellt.)
Sollte eine "Manuell gesetzte Soll-Temperatur" über einen "Solltemp Zeitabschnitt" bestehen bleiben?
Danke
Lg Helmut
-
abei ist mir aufgefallen, dass die HK-Thermostate (HM-CC-RT-DN) nicht von „Auto“ auf „Manu“ umgestellt werden, das Raumthermostat wird auf „Manu“ gesetzt jedoch nicht auf die HK-Thermostate übertragen. (Direktverknüpfungen wurde über Gruppen hergestellt.) `
ja, ich glaube HM macht das nicht für die AUTO MANU Umstellung, das gilt immer nur für das Thermostat, dass du gerade bediennen möchtest.
Kann man auch argumentieren, dass es keinen Sinn macht Auto/Manu zu synchen.
ollte eine "Manuell gesetzte Soll-Temperatur" über einen "Solltemp Zeitabschnitt" bestehen bleiben? `
ja, ist das nicht der Fall ? Würde mich wundern.
vG Looxer
-
ja, ich glaube HM macht das nicht für die AUTO MANU Umstellung, das gilt immer nur für das Thermostat, dass du gerade bediennen möchtest.
Kann man auch argumentieren, dass es keinen Sinn macht Auto/Manu zu synchen. `
Habe mir eingebildet dass wenn das Script gestartet wird die HK-Thermostate und das Raumthermostat auf "Manu" gesetzt wurde,
würde ich aber nicht beschwören.
Hab jetzt gerade das kleingedruckte gelesen "erzwinge Manuell Mode (nur für neue Thermostate)"
ollte eine "Manuell gesetzte Soll-Temperatur" über einen "Solltemp Zeitabschnitt" bestehen bleiben?
ja, ist das nicht der Fall ? Würde mich wundern.
vG Looxer `
Hallo,Ist ein wenig kniffliger zu beschreiben,
Wenn die „manuell gesetzte Soll-Temperatur“ über einen „Solltemp Zeitabschnitt“ geht wird ca. 2 min nach der Wechselzeit die Temperatur des neuen „Solltemp Zeitabschnitt“ eingestellt, die Anzeige „Manuelle Temperaturanpassung“ wird gelöscht und die anzeige in "Raumparameter" bleibt unverändert. Rund 2 Minuten nach Ablauf der "Gültig bis" werden die "Raumparameter" bereinigt jedoch wird wieder
„Manuelle Temperaturanpassung“ angezeigt.
Hoffe einigermaßen verständlich
Lg Helmut
-
Wenn die „manuell gesetzte Soll-Temperatur“ über einen „Solltemp Zeitabschnitt“ geht wird ca. 2 min nach der Wechselzeit die Temperatur des neuen „Solltemp Zeitabschnitt“ eingestellt, die Anzeige „Manuelle Temperaturanpassung“ wird gelöscht und die anzeige in "Raumparameter" bleibt unverändert. Rund 2 Minuten nach Ablauf der "Gültig bis" werden die "Raumparameter" bereinigt jedoch wird wieder
„Manuelle Temperaturanpassung“ angezeigt. `
ok, danke. Das schaue ich mir genauer an. Wird aber etwas dauern.Habe mir eingebildet dass wenn das Script gestartet wird die HK-Thermostate und das Raumthermostat auf "Manu" gesetzt wurde,
würde ich aber nicht beschwören.
Hab jetzt gerade das kleingedruckte gelesen "erzwinge Manuell Mode (nur für neue Thermostate)" `
die DN sind ja schon die "neuen" Thermostate. Es gibt einen Unterschied zwischen direktverknüpft und nicht.Bei Direktverknüpfung wird nur das Wandthermostat auf manuell gesetzt. Die anderen werden gar nicht beachtet.
bei Nicht-Direktverknüpft ist es ähnlich -Ein führendes Thermostat wird auf manuell gesetzt und das Script synched alle anderen aber eben nicht den Modus.
Kann aber im Prinzip auch implementiert werden, ich bin aber nicht sicher ob das überhaupt Sinn macht.
vG Looxer
-