NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Derzeit ist es saukalt im Arbeitszimmer, weil das Thermostat ausgeschaltet ist. Das verstehe ich garnicht. `
Hi,
laut log gibt es die Datenpunkte für das Arbeitszimmer gar nicht:
2018-10-30 19:48:22.947 - warn: javascript.0 getState "javascript.0.Heizung.Heizplan.Arbeitszimmer.Profil-1.undefined_1_bis" not found (3)
da steht ein undefined im zu suchenden Datenpunkt. Das kann ich im Moment nicht erklären. Das undefined steht an einer Stelle wo eigentlich der Wochentag stehen sollte, also z.B. Mo, Di etc.
ich nehme mal an, dass die Datenpunkte korrekt angelegt sind aber zur Laufzeit gibt es ein Problem und der Wochentag ist nicht definiert.
Ich nutze da standard funktionen. Hast du an anderen Stellen noch javascript probleme ?
Nur mal so ein Versuch:
stoppe das Script und lösche mal alle Datenpunkte des Arbeitszimmers, warte bis alles wirklich gelöscht ist und lass das Script nochmal laufen
vG Looxer
-
Hi,
Ich habe extra gestern das aktuelle Script installiert., daran kann es nicht liegen. `
kannst du bitte folgendes machen:-
setze im script "var debug = true" - steht im standard auf false
-
lasse das script laufen
-
oeffne eine Türe/Fenster mit entsprechenden xiaomi Sensor
-
und kopiere / poste das log, das vom script erzeugt wurde
Zusätzclich hätte ich gerne das Programm, das du benutzt.
Wenn du willst entweder hier posten oder per PN.
vG Looxer
-
-
Jetztb steht aktuell die richtige Temperatur drin.
Wahrscheinlich hat das Löschen der Datenpunkte etwas gebracht.
Danke!
-
Ich habe extra gestern das aktuelle Script installiert., daran kann es nicht liegen. `
Fehler gefunden.Kannst du bitte folgenden Code austauschen ?
// if (Check_SensorDV(roomName) === false) { // ist der Sensor direktverknuepft ? // SetTemp(roomName, VerschlussAbsenkungsGrenze, id, false); // }
und zwar mit:
// if (Check_SensorDV(roomName) === false) { // ist der Sensor direktverknuepft ? SetTemp(roomName, VerschlussAbsenkungsGrenze, id, false); // }
-
Hi,
es scheint, dass der Fehler vom 14.10. immer noch in Script 2.00 enthalten war.
Habe ich jetzt korrigiert mit Version 2.01. und hochgeladen.
vG Looxer
-
Ich habe extra gestern das aktuelle Script installiert., daran kann es nicht liegen. `
Fehler gefunden.Kannst du bitte folgenden Code austauschen ?
// if (Check_SensorDV(roomName) === false) { // ist der Sensor direktverknuepft ? // SetTemp(roomName, VerschlussAbsenkungsGrenze, id, false); // }
und zwar mit:
// if (Check_SensorDV(roomName) === false) { // ist der Sensor direktverknuepft ? SetTemp(roomName, VerschlussAbsenkungsGrenze, id, false); // } ```` `
Ich nutze aktuell die Vorherige Version Version 2.00a02 vom 14.10.2018
da war das auch schon so drin bei mir läuft aktuell alles
Vielen Dank nochmal für das Script und den großartigen Support looxer01
-
Ich habe extra gestern das aktuelle Script installiert., daran kann es nicht liegen. `
Fehler gefunden.Kannst du bitte folgenden Code austauschen ? `
Habe ich gemacht - jetzt läuft aber das script pausenlos und triggert sich immer wieder selbst - das log läuft voll - log schicke ich per pn -
Hallo,
nochmal genauer analysiert:
Code geändert - läuft.
Fenster auf - geht –> Sollwert auf 12
Fenster wieder zu --> wird erkannt, aber Script triggert sich jetzt pausenlos immer wieder
Der Effekt ist reproduzierbar (zumindest bei mir)
Edit:
Ich weiß nicht, ob die Endlosschleife es verursacht hat, aber die CCU2 hat sich jetzt komplett weggehängt - war auch über das Webinterface nicht mehr erreichbar und die HM-Geräte konnten nicht mehr darüber gesteuert werden. Musste ich einmal aus und an schalten, um wieder Verbindung zu bekommen.
-
Fenster wieder zu –> wird erkannt, aber Script triggert sich jetzt pausenlos immer wieder `
mmmh , muss ich mir ansehen. Dauert aber vielleicht bis Morgen.
vG Looxer
-
Ich habe seit heute plötzlich eine Fehlermeldung:
javascript.0 2018-11-01 20:00:01.161 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-11-01 20:00:01.160 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-11-01 20:00:01.160 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1072:65) javascript.0 2018-11-01 20:00:01.160 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1616:19) javascript.0 2018-11-01 20:00:01.152 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1696:25) javascript.0 2018-11-01 20:00:01.150 warn getState "javascript.0.Heizung.Heizplan.Julia.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-11-01 20:00:01.150 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-11-01 20:00:01.150 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-11-01 20:00:01.150 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1072:65) javascript.0 2018-11-01 20:00:01.150 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1616:19) javascript.0 2018-11-01 20:00:01.150 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1667:25) javascript.0 2018-11-01 20:00:01.148 warn getState "javascript.0.Heizung.Heizplan.Julia.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-11-01 20:00:01.132 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-11-01 20:00:01.131 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-11-01 20:00:01.131 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1071:65) javascript.0 2018-11-01 20:00:01.131 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1616:19) javascript.0 2018-11-01 20:00:01.131 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1696:25) javascript.0 2018-11-01 20:00:01.130 warn getState "javascript.0.Heizung.Heizplan.Julia.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-11-01 20:00:01.130 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-11-01 20:00:01.129 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-11-01 20:00:01.129 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1071:65) javascript.0 2018-11-01 20:00:01.129 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1616:19) javascript.0 2018-11-01 20:00:01.129 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1667:25) javascript.0 2018-11-01 20:00:01.104 warn getState "javascript.0.Heizung.Heizplan.Julia.Profil-1.undefined_wieVortag" not found (3) fritzdect.0 2018-11-01 20:00:01.058 info Comet ID: 119600699192 identified for command (mode) : 0</anonymous></anonymous></anonymous></anonymous>
Es wurde zwar am Nachmittag ein Update gemacht, aber der Fehler ist erst jetzt aufgetaucht.
-
Mega Skript!
Habe zwar keine HM Geräte aber läuft trotzdem sauber. Habe mich an die Anleitung gehalten und ließt sich super!
Ich glaube ich habe jedoch einen Fehler entdeckt:
Es heißt ja:
Verschlussstatus true=geoeffnet - false = geschlossen
In dem NoneHMSenorTab muss man an der 4. Stelle sagen welcher Zustand bei geschlossenem Fenster sein soll. Ich habe einen Sensor, da ist dieser Zustand "true". Trage ich jedoch true ein, wird bei offenem Fenster der "Verschlussstatus" mit false eingetragen und bei geschlossenem Fenster ein true. (Also falsch herum). Komischerweise kann ich das System nicht austricksen, wenn ich an der 4. Stelle ein false eintrage… Es muss also i-wo anders noch ein Fehler sein.
Wäre cool wenn du das Problem lösen könntest.
Vielen Dank!
-
Hallo looxer01,
vielen Dank an dieser Stelle für das Script. Der Wahnsinn. So muss ich nicht jedes Mal in die CCU, um was anzupassen. Allerdings habe ich auch das Problem, das die manuellen Werte leider auf 4,5°C gesetzt werden. Ich weiß das Thema gab es schon, ich habe es in den vielen Beiträgen aber nicht mehr gefunden. Siehe Screenshots. Gab es hier schon eine Lösung?
4249_fehler-heizung-001.png
4249_fehler-heizung-002.png -
Hallo looxer01,
vielen Dank an dieser Stelle für das Script. Der Wahnsinn. So muss ich nicht jedes Mal in die CCU, um was anzupassen. Allerdings habe ich auch das Problem, das die manuellen Werte leider auf 4,5°C gesetzt werden. Ich weiß das Thema gab es schon, ich habe es in den vielen Beiträgen aber nicht mehr gefunden. Siehe Screenshots. Gab es hier schon eine Lösung? ` Ist das View selbst gemacht?
Gesendet aus Hessen.
-
Ist das View selbst gemacht?
Gesendet aus Hessen. `
Es basiert auf dem VIEW von looxer01. Ist aber modifiziert. Da ich mehrere Displays in verschiedenen Auflösungen habe, ist es floatent, passt sich automatisch der Auflösung an. Daher habe ich es meinen Bedürfnissen angepasst
-
Wie bekommt man das hin mit floatent?
Ist das View selbst gemacht?
Gesendet aus Hessen. `
Es basiert auf dem VIEW von looxer01. Ist aber modifiziert. Da ich mehrere Displays in verschiedenen Auflösungen habe, ist es floatent, passt sich automatisch der Auflösung an. Daher habe ich es meinen Bedürfnissen angepasst `
Gesendet aus Hessen.
-
Wie bekommt man das hin mit floatent?
Gesendet aus Hessen. `
Ich stelle meins hier gerne zur Verfügung, aber nicht mehr heute.
-
Super vielen Dank.
Gesendet aus Hessen.
-
Kein Problem. Anbei die Dateien für das VIEW. Die CSS muss auch eingebunden werden, sonst funktioniert es nicht. Bitte nicht wundern dass es im Editor etwas verschoben aussieht, dass liegt daran, das Bildschirm keine 100% Breite hat, durch die Werkzeugfenster links und rechts. Anbei nochmal 2 Screenshots. 1x PC mit 1920px Auflösung und 1x mein Tablett mit einer 1280px Auflösung. Gleiches VIEW.
@looxer01, schau mal bitte nach meiner Frage in https://forum.iobroker.net/posting.php?mode=reply&f=21&t=10096#pr190026. Danke
4249_card_wohnzimmerheizungautomation.txt
4249_card_wohnzimmerheizungautomation_css.txt
4249_1280-tablett.png
4249_1920-pc.png -
@looxer01: Ich habe für die DECT Thermostate durch einen Hinweis in einem anderen Tread eine Lösung gefunden.
Scheinbar lässt sich die Boost Funktion manuell schalten.
Das würde im Script eventuell unnötige Umwege ersparen.
Die Schaltung erfolgt direkt über einen Datenpunkt im Thermostat Objektbaum:
fritzdect.0.Comet_1196006xxxxx.mode
und wird zwischen
0= auto
1= closed
2= open
geschaltet. Diese Schaltung wird weder von deinem Script noch von der Fritzbox überschrieben.
Der Countdown und die Funktion wird in VIS korrekt dargestellt.
Somit wäre nur noch die Notwendigkeit im Script die Boost Funktion direkt aufzurufen, falls du das einbauen möchtest.
Ansonsten funktioniert diese Lösung:
Boost wird ausgelöst über einen Dash Button und läuft für 60 Minuten.
Das dient bei mir dazu die Heizung im Bad für einige Zeit zu erhöhen und die Grundsteuerung auszuschalten (Duschen für Weicheier).
Trigger und Laufzeit ist im Grunde beliebig wählbar. Es würde auch über einen beliebigen Funkschalter oder einen Softbutton in VIS funktionieren.
Zeit ist im Script individuell einstellbar:
const idTaster = "amazon-dash.0.00-fc-8b-xx-xx-xx.pressed"/*pressed*/; const idBoost = "fritzdect.0.Comet_1196006xxxxx.mode"; const idVis = "javascript.0.Heizung.LaufzeitBad"; // Anzeige Restdauer in Minuten var cnt = getState(idVis).val; var timer = null; function countDown() { cnt--; setState(idVis, cnt, true); if(cnt <= 0) { clearInterval(timer); setState(idBoost, 0); } } on({id: idTaster, val: true}, function () { setState(idBoost, 2); cnt = 60; setState(idVis, cnt, true); if(timer) clearInterval(timer); timer = setInterval(countDown, 60000); // jede Minute });
-
Guten Abend!
Erstmal bedanke ich mich für die tolle Arbeit! Ich bin noch ziemlich am Anfang mit dem Script und habe da noch zwei Baustellen an denen ich gerade nicht weiter komme.
1. Mir gelingt es nicht ein "zweites Script" für die Einliegerwohnung zum laufen zu bekommen. Was genau muss ich alles ändern damit die Räume der Wohnung von meinen Räumen getrennt angelegt werden? (Also die Räume habe ich bereits in RoomList eingetragen und auf true gestellt).
2. Beim ersten "Durchlauf" (Script 1) für meine eigenen Räume sind auch die Räume der EInliegerwohnung (Datenpunkte) angelegt worden. Muss ich diese löschen, damit diese dann über das zweite Script angelegt werden?
Script 1 läuft soweit mit allen Einstellungen.
Vielen Dank und noch einen angenehmen Abend!