NEWS
[Vorlage] Heizungsthermostatsteuerung - Script
-
Hallo,
ich habe das Skript und die Visualisierung mittlerweile auch bei mir laufen (allerdings noch mit alten FHT-Thermostaten, aber die sind halt nunmal schon da laufen laufen via FHEM Adapter einwandfrei). Soweit so gut, dem Ersteller gebührt ein riesengroßes Dankeschön.
Leider habe ich bei der Darstellung aber ein grafisches Problem. Die Kästchen mit den Uhrzeiten zum Auswählen der Profilzeiten sind irgendwie zu groß und nicht ganz am Platz, ebenso oben bei "Gültigkeit in min":
Das ganze ist sowohl unter Linux, Windows, Android, mit verschiedenen Browsern und auch in der iobroker Android-App so. Komischerweise sieht alles im Editor aber aus wie es soll:
Da ich dachte, es könnte vielleicht mit meiner minimalen Anpassung der VIS-Seite zu tun haben (ein Zurück auf die vorherige Seite) habe ich mal den Code direkt hier aus dem ersten Beitrag als neue Ansicht erstellt, und hier das gleiche. Es hilt auch nichts, mit F5 oder STRG das Bild zwangszuaktualisieren Im Editor ist alles wie es sein soll, in der fertigen Ansicht dann nicht.
Anbei noch der Export eines Views und des Skriptes, wobei ich mir einen Zusammenhang zum Skript eigentlich nicht vorstellen kann.
View:
Skript:
Wäre echt gut, wenn mir hier jemand einen Tip geben könnte, wie ich diesen Schönheitsfehler beheben kann. Die Funktion ist ja gegeben, nur sieht es nicht sehr professionell aus. :mrgreen:
Gruss, Jürgen
-
Ich habe leider auch noch ein Problem. An sich lief das Script bis gesternabend…leider ist dann mein iobroker-System etwas unsaft heruntergefahren worden. Seitdem (mal am Beispiel eines Raumes) folgenes Problem:
! 07:25:00.828 [info] javascript.0 script.js.common.HzThSt: Starte Abarbeitung fuer Raum Bad_oben
! 07:25:00.844 [info] javascript.0 script.js.common.HzThSt: Routine ManAdjustments: Manuelle Temperatur Erkennung ist ausgeschaltet
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [warn] javascript.0 at SelectSwichTime (script.js.common.HzThSt:1034:29)
! 07:25:00.844 [warn] javascript.0 at ExecuteTempDetermination (script.js.common.HzThSt:997:21)
! 07:25:00.844 [warn] javascript.0 at LoopDevices (script.js.common.HzThSt:651:13)
! 07:25:00.844 [warn] javascript.0 at LoopRooms (script.js.common.HzThSt:570:13)
! 07:25:00.844 [warn] javascript.0 at Object. (script.js.common.HzThSt:305:1)
! 07:25:00.844 [info] javascript.0 script.js.common.HzThSt: raum Bad_obenSolltemp nach Switchtime: 0 Findung
! 07:25:00.844 [info] javascript.0 script.js.common.HzThSt: raum Bad_obenSolltemp nach overrule: 0 Findung
! 07:25:00.844 [info] javascript.0 script.js.common.HzThSt: Routine SetTemp: ID to be updated hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Raum Bad_oben SollTemp = 0
! 07:25:00.844 [info] javascript.0 script.js.common.HzThSt: Ende Abarbeitung fuer Raum Bad_obenIn der Visualisierung waren auch sämtliche Felder leer und sämtliche Haken deaktiviert.
Inzwischen erhalte ich bei manueller Änderung am Thermostat folgendes:
! 07:51:14.074 [info] javascript.0 script.js.common.HzThSt: Routine ManAdjustments: Manuelle Temperatur Erkennung initialisiert und ausgeschaltet
! 07:51:14.074 [info] javascript.0 script.js.common.HzThSt: Starte Sync fuer Manuelle Temperatur fuer hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Temperatur = 4.5
! 07:51:36.310 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkanntFür Ideen bin ich dankbar.
Grüße
jC
-
Hi
Leider habe ich bei der Darstellung aber ein grafisches Problem. `
Leider ist das VIS bzw. die Eingabewidgets an der Stelle fehlerhaft. Ich habe das schon ein paar mal gemeldet. Erstmals am 01.03.http://forum.iobroker.net/viewtopic.php … xer#p56145
...und auch im Trello. Dem Problem hat sich leider aber keiner angenommen.
Das Problem habe ich auch in anderen Fällen, die nicht mit dem Heizungsview zusammenhängen. Ist also allgemein.
Es scheinen allerdings nicht viele die Eingabe Widgets zu verwenden.
Vielleicht beschreibst du dort ebenfalls mal dein Problem aus deiner Sicht. Je mehr Infos zusammenkommen, desto besser.
An sich lief das Script bis gesternabend…leider ist dann mein iobroker-System etwas unsaft heruntergefahren worden `
Die Meldungen sind ungewöhnlich. Es scheint als wären Werte in der Objektliste initialisiert was das Programm so nicht erwartet. Hast du die Werte mal überprüft ? Die meisten sollten ja einen Wert haben, da bei der Anlage der States Werte übergeben werden.
Falls dem so ist, dann kannst du manuell eingreifen. oder die States löschen. Sie werden dann neu angelegt.
vG Looxer
-
Ok, dann versuche ich gleich mal die Zustände zu löschen.
Was mich allerdings auch verwundert ist die Raumbezeichnung "undefined" im zweiten Spoilertag.
Danke für deine Mühen.
Edit:
Habe unter den Objekten mal einen Testraum rausgeworfen. Wurde auch sauber neu angelegt. Nun erhalte ich allerdings:
! 09:52:07.536 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkannt
! 09:52:07.536 [info] javascript.0 script.js.common.HzThSt: Routine ManAdjustments: Manuelle Temperatur Erkennung ist ausgeschaltet
! 09:52:07.536 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: ACHTUNG Fall 1 ThermostatChange in Temperatur Source_ManTempSet hat keinen Wert - kann nicht synchen -
Hi,
@looxer01: Danke für die Info. Dann kan ich ja lange den Fehler bei mir bzw. dem Server suchen… :lol:
Ich lese mich im anderen Thread auch mal ein, evtl. melde ich mich auch bei Trello an und schreibe das Problem da nochmal. Vielleicht tut sich ja irgendwann eine Lösung auf.
Vielen Dank für die rasche Hilfe und das Heizungsskript generell und überhaupt. 8-)
Gruss, Jürgen
-
Habe unter den Objekten mal einen Testraum rausgeworfen. Wurde auch sauber neu angelegt. Nun erhalte ich allerdings: `
Raum undefined ist nicht gut. Kannst du nochmal überpruefen, dass die Raumnamen 100% mit den ioBroker Raumnamen übereinstimmen ?
Insbesondere auf die Zuordung der Geräte (hier MEQ1581663) zum Raum bezogen.
Bei eingeschalteten Debug erhältst du ja auch noch eine Liste der Geräte und Räume. Die könntest du auch analysieren.
vG Looxer
-
Räume passen, debugging sagt auch:
! 11:48:25.685 [info] javascript.0 script.js.common.HzThSt: fullname HM-CC-RT-DN MEQ1581663:4.SET_TEMPERATURE ID hm-rpc.2.MEQ1581663 Raum Bad_oben Gewerk Heizung
! 11:48:25.685 [info] javascript.0 script.js.common.HzThSt: Routine getdevice fuer Bad_obenHeizplan scheint auch zu funktionieren. Lediglich die Erkennung der Bedienung am Gerät selbst sorgt für:
! 1:56:40.988 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkannt
! 11:56:40.988 [info] javascript.0 script.js.common.HzThSt: Routine ManAdjustments: Manuelle Temperatur Erkennung ist ausgeschaltet
! 11:56:40.988 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: ACHTUNG Fall 1 ThermostatChange in Temperatur Source_ManTempSet hat keinen Wert - kann nicht synchenKann ich theoretisch das komplette "Heizung"-Objekt löschen, so dass das mit nächster Script-Ausführung neu angelegt wird?
-
Kann ich theoretisch das komplette "Heizung"-Objekt löschen, so dass das mit nächster Script-Ausführung neu angelegt wird? `
Ja, kannst du.Es sieht so aus, dass du die manuelle Temperaturerkennung ausgeschaltet hast.
Das ist dann der Fall, wenn die Gueltigkeit auf null gestellt ist. gib dort mal z.B. 60 ein. (60 Minuten)
Dann sollte bei einer manuellen Temperatur keine Aenderung für mindestens 60 Minuten erfolgen.
Warum aber der Raum undefined ist, ist damit auch nicht erklärt. Funktionieren andere Räume ?
vG Looxer
-
Mal am Beispiel von zwei Räumen:
! 12:51:45.318 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581003.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkannt
! 12:51:45.318 [warn] javascript.0 at ManAdjustments (script.js.common.HzThSt:865:5)
! 12:51:45.318 [warn] javascript.0 at ThermostatChange (script.js.common.HzThSt:686:18)
! 12:51:45.318 [warn] javascript.0 at Object. (script.js.common.HzThSt:432:25)
! 12:51:45.318 [info] javascript.0 script.js.common.HzThSt: 5.Fall Manuelle Temperatur Verstellung im Termostat auf 4.5 erkannt
! 12:51:45.318 [info] javascript.0 script.js.common.HzThSt: Starte Sync fuer Manuelle Temperatur fuer hm-rpc.2.MEQ1581003.4.SET_TEMPERATURE Temperatur = 4.5
! 12:51:51.347 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkannt
! 12:51:51.347 [warn] javascript.0 at ManAdjustments (script.js.common.HzThSt:865:5)
! 12:51:51.347 [warn] javascript.0 at ThermostatChange (script.js.common.HzThSt:686:18)
! 12:51:51.347 [warn] javascript.0 at Object. (script.js.common.HzThSt:432:25)
! 12:51:51.347 [info] javascript.0 script.js.common.HzThSt: 5.Fall Manuelle Temperatur Verstellung im Termostat auf 4.5 erkannt
! 12:51:51.347 [info] javascript.0 script.js.common.HzThSt: Starte Sync fuer Manuelle Temperatur fuer hm-rpc.2.MEQ1581663.4.SET_TEMPERATURE Temperatur = 4.5Also es funktioniert (sowohl Temperaturänderungen via Zeitplan als auch die manuelle Erkennung)…aber die undefined-Meldung bleibt auch nach kompletter Entfernung des Objekts Heizung.
-
lso es funktioniert (sowohl Temperaturänderungen via Zeitplan als auch die manuelle Erkennung)…aber die undefined-Meldung bleibt auch nach kompletter Entfernung des Objekts Heizung. `
ich glaube das ist nur ein Problem mit dem log und kein Funktionsproblem. Muss ich mir bei Gelegenheit ansehen.
Wenn du debug ausschaltest sollte keine Meldung mehr kommen.
vG Looxer
-
Alles klar. Dann noch einmal vielen Dank für den Einsatz!
Dann muss ich jetzt nur noch rausfinden, warum die LCARS-Button-Widgets anscheinend seit dem letzten VIS-Update fehlerhaft dargestellt werden und dem neuen UI steht quasi nichts mehr im Weg. g
-
Guten Morgen,
die kalte Jahreszeit fängt an und die Heizungssteuerung rückt in den Vordergrund.
Ich habe gestern meine Heizperiode aktiviert und das Script ist sauber angelaufen.
In einem Raum war das Fenster geöffnet und die Absenktemperatur wurde gesetzt.
Wir haben das Haus verlassen und die Abwesenheit hat die Temperatur um ein Grad gesenkt und in dem Raum mit offenen Fenster wurde die Absenktemperatur vom Sollwert überschrieben.
Nach Anwesenheit wurde wieder auf Sollwert gesetzt obwohl das Fenster offen ist.
Ich habe ein anderes Fenster im Raum geöffnet und die Absenktemperatur wurde gesetzt.
Nach schliessen des gleichen Fensters wurde die reguläre Solltemperatur eingestellt obwohl das erste Fenster immer noch offen ist.
Aus meiner Sicht ein Fehler,oder?
LG
Sebastian
-
Aus meiner Sicht ein Fehler,oder? `
Hi Sebastian,
ja das hört sich so an. Ich glaube, dass ich das nie getestet habe mit mehreren Sensoren fuer einen Raum.
Muss ich mir ansehen.
nach Anwesenheit wurde wieder auf Sollwert gesetzt obwohl das Fenster offen ist. `
Hier bin ich mir nicht so sicher was genau passiert. Das Fenster war während der Abwesenheit geöffnet ?
bzw. wurde nach Anwesenheit geöffnet aber bevor die Anwesenheit festgestellt wurde ?
oder wurde geöffnet nachdem die Anwesenheit festgestellt wurde ?
vG Looxer
-
Ich war anwesend und Sollwert waren 17 Grad.
Dann habe ich das Fenster geöffnet und die Absenktemperatur wurde auf 5 Grad gesetzt.
Später bin ich außer Haus und bin 2 Stunden später wieder zurückgekommen und sah die Absenktemperatur bei Abwesenheit von 16 Grad als Sollwert
( Einstellung -1Grad ) und das Fenster war ja noch offen , bei Fenster offen im Raum dürfte auf nichts reagiert werden.
Nach Programmdurchlauf wurde dann auf 17 Grad gestellt (wegen Anwesenheit) , aber das Fenster (1 von 3 Fenster) war ja immer noch offen.
Ich habe ein 2.Fenster geöffnet … 5 Grad Sollwert wurde gesetzt.
Das 2.Fenster wurde wieder geschlossen und das erste blieb offen ... 17 Grad Sollwert wurde gesetzt.
LG
-
Stimmt es das jedesmal wen das script neu gestartet wird, nicht per shedule sonder iObroker reboot oder script stop/start er alle werte ueberschreibt ?
Ich habe z.b. fuer 2 thermostate ein profiel eingstellt und die globale anwesenheit auf true gesetzt. Wen ich jedoch jetzt dass script stoppe und wieder starte sind diese werte weg und alles wieder auf default
Greetz,
Dutch
-
Stimmt es das jedesmal wen das script neu gestartet wird, nicht per shedule sonder iObroker reboot oder script stop/start er alle werte ueberschreibt ? `
Also, wenn du die Anwesenheitserkennung eingeschaltet hast, dann schaut das Script danach und überschreibt manuelle Einstellungen.
Wenn sie nicht eingeschaltet ist, dann sollte sie erhalten bleiben.
Hast du die Anwesenheitserkennung eingeschaltet ?
vG Looxer
-
Stimmt es das jedesmal wen das script neu gestartet wird, nicht per shedule sonder iObroker reboot oder script stop/start er alle werte ueberschreibt ? `
Also, wenn du die Anwesenheitserkennung eingeschaltet hast, dann schaut das Script danach und überschreibt manuelle Einstellungen.
Wenn sie nicht eingeschaltet ist, dann sollte sie erhalten bleiben.
Hast du die Anwesenheitserkennung eingeschaltet ?
vG Looxer `
var UseAnwesenheitserkennung = false;
-
So, ich hab bei mir nun soweit alles lauffähig, denke ich. Bei manueller Umstellung am Thermostat erhalte ich allerdings im Log (am Beispiel Kinderzimmer)
! 16:59:23.048 [info] javascript.0 script.js.common.HzThSt: Routine ThermostatChange: Thermostat hm-rpc.2.MEQ1581041.4.SET_TEMPERATURE Raum undefined Thermostat Solltemperatur-Aenderung erkannt
! 16:59:23.048 [info] javascript.0 script.js.common.HzThSt: Routine SetTemp: ID to be updated hm-rpc.2.MEQ1581041.4.SET_TEMPERATURE Raum Kinderzimmer SollTemp = 17
! 16:59:23.048 [warn] javascript.0 at ManAdjustments (script.js.common.HzThSt:824:5)
! 16:59:23.048 [warn] javascript.0 at ThermostatChange (script.js.common.HzThSt:686:18)
! 16:59:23.048 [warn] javascript.0 at Object. (script.js.common.HzThSt:432:25)Eine Idee dazu?
-
Bei manueller Umstellung am Thermostat erhalte ich allerdings im Log (am Beispiel Kinderzimmer) `
sieht doch ok aus.
du hast manuell eine Temperatur gesetzt. Die wurde erkannt.
Eigentlich sollte noch die Dauer im log stehen.
Funktioniert es denn nicht ?
-
Funktioniert. Die Warnungen irritieren mich lediglich.