NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
So hier einmal der Log wenn ich in der Wohnzimmer Ansicht bin. Habe den "Anwesend" Haken erst entfernt und dann wieder gesetzt. `
Hi,ich kann jetzt erstmal nichts ungewoehnliches sehen.
Ich denke, dass dein Hauptproblem ist, dass du den View nicht richtig erzeugt hast.
Hast du denn mal die List abgearbeitet ? Stimmen die Datenpunkte des Views (der widgets) mit den Datenpunkten der Objektliste überein ?
BTW: ich würde lieber nicht mit Umlauten arbeiten sondern statt Küche lieber Kueche verwenden.
Ich kann mit dir gerne mal per Teamviewer drüberschauen. Schicke mir bitte eine PN falls du das möchtest.
vG Looxer
-
Hallo,
leider habe ich nach Monaten nun auch Probleme mit dem Skript. Ich habe nun ein Update gemacht:
! ````
// ab hier ChangeLog // Aktuelle Version 2.0b01 (erste Beta) 28.12.2017
// Version 2.00b02 05.01.2018 - zweite Beta
//.............................Technische Coding Aenderungen (ueberfluessige log eintragungen und doppel coding entfernt)
//.............................Kein Trigger bei Aenderung von An/Abwesenheit und Feiertagen gefixt
//.............................Bei Einstellung der Duration Manuelle Temp kleiner Null wurde bei einer Thermostataenderung am Thermostat keine Rückstellung auf schedule vorgenommen
//.............................Delay Time (notwendig für alte Thermostate) nach Fensteröffnung wieder aktiviert - 2 Minuten Verzögerung nach Fensterschliessung
//.............................Sensorstatusermittlung fuer HM-Geraete verallgemeinert (keine Speziallogik mehr notwendig. Konfig in der Sensortypetab reicht aus) / logging Eintraege fuer Sensor Aenderungen hinzugefuegt
//.............................Bei Einschalten der Heizperiode wurden die Temperaturen nicht sofort auf die geplanten Temperaturen gesetzt
// Version 2.00b03 02.04.2018 - dritte Beta
//.............................Manuelle Temperaturen werden bei Scriptstart ignoriert/zurückgesetzt
//.............................Thermostabtypetab Position 4 auf Position 8 (nach den Wandthermosteten) verschoben
//.............................NoneHMTab - Fuellen der Position 12 in Controltab falsch (mit 0 ersetzt)
//.............................Bei gleichen Zeiten im schedule von verschiedenen Räumen kam es dazu, dass nicht geschaltet wurde. Eine Zeitverzögerung eingebaut
//.............................externe Dateiausgabe bei manuellen Aenderungen hinzugefügt (writelog)
//.............................Fehler in Routine Sensor Change bei direktvernuepften Fenstersensoren beseitigt.
//.............................Fehler bei den Subscriptions fuer Feiertage fuehrte zu Warnmeldungen, wenn kein Feiertagsadapter genutzt wurde
//
// Naechste Version moegliche Erweiterungen/Aenderungen
// ............................Event Abwesenheit evt noch hinzufügen
//.............................Raumstatus bei mehreren Fenstersensoren
//.............................Delay fuer Nicht-HM-GeräaeteDer Fehler:
2018-04-26 10:48:26.172 - [32minfo[39m: javascript.1 Start javascript script.js.common.Heizung_Looxer
2018-04-26 10:48:26.849 - [32minfo[39m: javascript.1 script.js.common.Heizung_Looxer: Routine GetDevices fuer HM Thermostate Schlafzimmer - hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,0
2018-04-26 10:48:27.366 - [32minfo[39m: javascript.1 script.js.common.Heizung_Looxer: Routine GetDevices fuer HM Thermostate Bad - hm-rpc.0.,HM-CC-RT-DN,Heizkoerperthermostat(neu),HT,4.SET_TEMPERATURE,false,4.MANU_MODE,true,4.ACTUAL_TEMPERATURE,4.CONTROL_MODE,12,0
2018-04-26 10:48:27.809 - [32minfo[39m: javascript.1 script.js.common.Heizung_Looxer: Routine GetDevices fuer HM Thermostate WC - hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,0
2018-04-26 10:48:28.487 - [31merror[39m: javascript.1 script.js.common.Heizung_Looxer: script.js.common.Heizung_Looxer:593
2018-04-26 10:48:28.487 - [31merror[39m: javascript.1 roomNoSpace = roomName.replace(/\s/g, "_");
2018-04-26 10:48:28.487 - [31merror[39m: javascript.1 ^
2018-04-26 10:48:28.487 - [31merror[39m: javascript.1 TypeError: roomName.replace is not a function
2018-04-26 10:48:28.488 - [31merror[39m: javascript.1 at getDevices (script.js.common.Heizung_Looxer:593:32)
2018-04-26 10:48:28.488 - [31merror[39m: javascript.1 at initializeData (script.js.common.Heizung_Looxer:363:5)
2018-04-26 10:48:28.491 - [31merror[39m: javascript.1 at script.js.common.Heizung_Looxer:356:1
2018-04-26 10:48:28.491 - [31merror[39m: javascript.1 at ContextifyScript.Script.runInContext (vm.js:35:29)Ich habe das Skript validiert, alles grün, keine Typos oder doppelte/vergessene Zeichen Ich nutze derzeit keine Events und in der Raumliste steht nur ein Raum ["Bad"]. Die anderen Räume mit Geräten aus den Gewerken Verschluss oder Heizung, die gefunden wurden sind "Schlafzimmer" und "WC". Also keine Leer- oder Sonderzeichen. Setze ich die Raumliste auf Testmodus, gibt es keine Fehler: >! ```` // Raumliste - empfohlen zu benutzen fuer kleine Systeme // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil) // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet var RoomList = []; RoomList[0] = ['Bad']; // Liste der Raeume die gesteuert werden soll zum Testen /*RoomList[1] = ['Schlafzimmer']; RoomList[2] = ['Wohnzimmer']; RoomList[3] = ['Kueche']; RoomList[4] = ['Flur']; RoomList[5] = ['Kinderzimmer']; RoomList[6] = ['WC']; RoomList[7] = ['Raum7']; RoomList[8] = ['Raum8']; RoomList[9] = ['Raum9']; */
Woran liegt's?
Zweite Frage:
Hast du schon eine Idee, wie man platzsparend und übersichtlicht zwei Profile für einen Raum in einer View darstellt?
Entweder beide Heizpläne übereinanderlegen und per Filter ein/ausblenden (evtl. auch per Reiter, schön wäre dafür eine https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_accordion)
oder bei beiden Profilen die gleichen Zeiten nutzen und die Setztemperaturen beider Profile nebeneinander daneben legen ?
Gruß
Pix
-
@pix:etze ich die Raumliste auf Testmodus, gibt es keine Fehler:
Woran liegt's? `
Hi Pix,
ich denke, dass irgendwelche Sonderzeichen in irgendwelchen Räumen auftreten.
Schau dir mal die komplette Raumliste an. Wenn auch nur ein Raum z.B. einen englische -nicht übersetzten- Namen beinhaltet, dann tritt dieser Fehler auf. Das passiert bei Nutzung der Raumliste nicht, da ja dann nciht alle Räume gecheckt werden.
@pix:Zweite Frage:
Hast du schon eine Idee, wie man platzsparend und übersichtlicht zwei Profile für einen Raum in einer View darstellt?
Entweder beide Heizpläne übereinanderlegen und per Filter ein/ausblenden (evtl. auch per Reiter, schön wäre dafür eine Accordion Funktion wie diese)
oder bei beiden Profilen die gleichen Zeiten nutzen und die Setztemperaturen beider Profile nebeneinander daneben legen ? `
Ich nutze keine multiplen Profile für einen Raum. Meine Idee war das über Views zu machen.
also so:
buttom1: call view Profil1 - in view profil1 ein Close Buttom
Buttom2: call view Profil2 - in pview profil2 ein Close tuttom
Was du da beschreibst hatte ich auch mal im Kopf. Allerdings habe ich nicht weiter geforscht wie das umsetzbar ist.
vG Looxer
-
Hallo
gibt es die Möglichkeit wenn Heizperiode = false die Ventile alle auf On zu stellen? Das entlastet die die mechanik und läst die Ventile nicht festkleben.
Gruss Norbert
-
Du kannst die Temperatur im Script auf 30 stellen, dann sind die Ventile offen. Hab ich auch, der Punkt steht in der Doku. Weiss aus dem Kopf nicht wo genau.
Grüße Brati
@nobse:Hallo
gibt es die Möglichkeit wenn Heizperiode = false die Ventile alle auf On zu stellen? Das entlastet die die mechanik und läst die Ventile nicht festkleben.
Gruss Norbert `
Von unterwegs gesendet…
-
OK gefunden
kann man im Script einstellen unter ThermostatTypeTab etwa ab Zeile 200
Parameter Ventilstellung wenn nicht Heizperiode
-
Hi Looxer,
ich bitte dich nochmal um Hilfe.
Mir ist vor kurzem aufgefallen, dass meine (also deine) Heizungssteuerung nicht mehr läuft. Aufgrund der aktuellen Wetterlage, kann ich allerdings nicht mehr sagen seit wann.
Die Views der einzelnen Räume zeigen durchweg keine Werte, also jedes Feld ist leer.
Wenn ich das Script neustart kommen sehr viele Warnungen:
` > javascript.0 2018-07-05 22:29:13.986 warn at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:422:9)
javascript.0 2018-07-05 22:29:13.986 warn at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-05 22:29:13.986 warn at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-05 22:29:13.986 warn at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1389:25)
javascript.0 2018-07-05 22:29:13.985 warn at SelectSwitchTime (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1541:24)
javascript.0 2018-07-05 22:29:13.985 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_1_bis" not found (3)</anonymous> `
gefolgt von einem Error:
` > javascript.0 2018-07-05 22:29:13.990 error at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:422:9)javascript.0 2018-07-05 22:29:13.989 error at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-05 22:29:13.989 error at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-05 22:29:13.989 error at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1409:45)
javascript.0 2018-07-05 22:29:13.988 error Error in callback: TypeError: Cannot read property 'substr' of undefined</anonymous> `
Hast du eine Idee?
Ich habe vor ein paar Wochen ein Backup einspielen müssen, kann aber wie gesagt nicht sagen, seit wann der Fehler mit dem Scrikt auftritt.
Das Problem mit den Raumnamen habe ich schon ausgeschlossen…
Grüße, Rob
-
Hi Rob,
sorry, für die späte Antwort - war unterwegs.
kannst du mal folgende checks machen ?
bei den Thermostaten: (standard Objekte)
-
Sind die Räume in der Objektliste zugeordnet ?
-
Sind die Gewerke in der Objekt liste zugeordnet ?
Die Fehler deuten auf Fehlzuweisungen hin.
Es gab beim letzten REGA adapter update ein Problem mit Zuweisungen mit unterschiedlichen Zuweisungen innerhalb eines Kanals.
Also z.B.
Objekt xyz , Kanal 1
Datenpunkg 1 = Gewerk 1
Datenpunkt 2 = kein Gewerk
Dann wird für all Datenpunkte nur ein Gewerk1 verwendet auch wenn Datenpunkt 2 kein Gewerk in der CCU hat.
Schau dir also mal die Zuordnungen genauer an.
vG Looxer
-
-
Hi looxer,
Danke für deine Antwort!
Scheint schonmal die richtige Fährte zu sein. Die Gewerke und Räume waren tatsächlich nicht vollständig in allen Kanälen der einzelnen Geräte benannt.
Nachdem ich das korrigiert habe, sind zumindest mal alle Warnungen verschwunden.
Was geblieben ist, sind leider noch die Fehlermeldungen:
` > javascript.0 2018-07-09 22:05:54.724 error at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:471:9)javascript.0 2018-07-09 22:05:54.724 error at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-09 22:05:54.723 error at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-09 22:05:54.723 error at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1409:45)
javascript.0 2018-07-09 22:05:54.722 error Error in callback: TypeError: Cannot read property 'substr' of undefined</anonymous> `
an den Views hat sich bisher nichts geändert. Übrigens steht bei letzter Programmdurchlauf teilweise irgendein älteres Datum und teilweise das aktuelle Datum, ohne dass sich sonst irgendetwas unterscheidet.In den Objekten unter javasript / Heizung / Heizplan / Raumname / Source_Last_Program_Run ist es jeweils das gleiche Datum wie im dazugehörigen View.
Macht es eventuell Sinn den kompletten Objektbaum zu löschen und durch Skriptneustart neu anlegen zu lassen bzw. zu prüfen, ob es überhaupt angelegt wird?
Grüße, Rob
-
Hi Rob,
Nachdem ich das korrigiert habe, sind zumindest mal alle Warnungen verschwunden. `
das ist schon mal gut. Ich glaube aber, dass da noch mehr dran hängt.Es gab in der letzten Zeit mehrere Änderungen am Rega Adapter. Es kann sein, dass deine Konstellation damit Probleme macht (Beispiele: Übersetzungen von CCU Standardtexten und CCU Gewerke/Raumzuweisungen.
Könntest du mal testen ob die alte REGA Adapter Version mit dem Script bei dir läuft.
Also
-
erstmal eine Sicherung machen
-
dann auf die drittletzte version des REGA adapters gehen
-
und testen.
Wenn es das ist, dann am Besten mal alle Aufzählungen in ioBroker löschen (hoffentlich hast du keine individuellen) und dann neu synchen. Wenn es dann noch funktioniert mit dem alten REGA adapter, dann auf den neuesten wieder zurückgehen.
vG Looxer
-
-
Moin Looxer,
Danke für deine Geduld.
Hab deine Anleitung befolgt, leider ohne Erfolg.
Hatte es auch mit downgrades auf mehrere frühere Versionen versucht und auch mit dem Löschen aller Aufzählungen.
Jetzt sind die Warnungen auch wieder mit dabei.
Wenn ich irgendeine Einstellung im View vornehme kommt es ebenfalls zu den Warnungen und Error im log.
Grüße, Rob
-
Hi Rob,
kein Problem,
ich bin zur Zeit beruflich unterwegs (wie so oft :shock: )
evt kann ich per Teamviewer am WE bei dir mal reinschauen, wenn du magst.
Sende mir einfach eine PN.
vG Looxer
-
Hey Looxer,
ich hatte gestern mal den kompletten Objektbaum des Heizplanes und das Skript gelöscht und dann das Skript neu eingepflegt.
Und siehe da, plötzlich ging wieder alles…
Woran es nun gelegen hat, kann ich leider nicht sagen, aber ich vermute mal, dass es mit der Wiederherstellung des Backups zu tun hatte.
Vielen Dank für dein Angebot mit der Teamviewer-Hilfe, sollte es im Laufe doch wieder nicht hinhauen, würde ich gerne nochmal darauf zurückkommen.
Schönes Wochenende und
Grüße, Rob
-
ich hatte gestern mal den kompletten Objektbaum des Heizplanes und das Skript gelöscht und dann das Skript neu eingepflegt.
Und siehe da, plötzlich ging wieder alles… `
strange :shock:keine Ahnung was da falsch war. Aber gut, dass es jetzt wieder geht.
vG Looxer
-
Gibt es eine Möglichkeit, den HMIP Fußbodenheizungsaktor "FAL24-C10 " einzubinden und Temperatur Sollwerte vorzugeben?
Leider ist dies nämlich ansonsten nur über Direktverknüpfungen zu HMIP Wandthermostaten möglich. :roll:
-
Gibt es eine Möglichkeit, den HMIP Fußbodenheizungsaktor "FAL24-C10 " einzubinden und Temperatur Sollwerte vorzugeben?
Leider ist dies nämlich ansonsten nur über Direktverknüpfungen zu HMIP Wandthermostaten möglich. :roll: `
Hi,
Nur, wenn du auch manuell eine Temperatur vorgeben kannst. Ich vermute mal, dass das nicht der Fall ist.
Zumindest sehe ich im ScrPrint keinen Datenpunkt für die SollTemp.
Darüber hinaus sollte doch auch die Ist Temp eine Rolle spielen. Ich vermute mal, dass die zwingend vom Thermostat kommt und nicht vom Aktor.
In diesem Fall sehe ich keine Möglichkeit der Steuerung.
vG Looxer
-
Hallo zusammen,
ich bin aktuell beim Umsteigen von der CCU2 auf IOBroker, natürlich darf da die Heizungssteuerung auch nicht fehlen.
Meine, aktuell 2, Thermostate werden in IOBroker erfolgreich erkannt.
Das Script habe ich auch eingebunden, aber ich bekomme da Warnungen und irgendwie habe ich das Gefühl das die entrechenden Datenpunkte nicht erstellt werden (Kann zumindest nirgends was finden.).
UseRoomList ist bei mir auf false, da ja nur 2 Räume aktuell. Kann es daran liegen, das die Räume hier ein Leerzeichen drin haben?
Als Fehler bekomme ich folgendes:
16:09:30.859 [error] javascript.0 script.js.common.Heizung: script.js.common.Heizung:576 16:09:30.859 [error] javascript.0 at getDevices (script.js.common.Heizung:576:32) 16:09:30.859 [error] javascript.0 at initializeData (script.js.common.Heizung:346:5) 16:09:30.859 [error] javascript.0 at script.js.common.Heizung:339:1
Vielleicht hat ja wer ein Tipp was ich hier falsch machen könnte.
VG
Lindi
-
Hi Lindi,
Kann es daran liegen, das die Räume hier ein Leerzeichen drin haben? `
ja, genau. Das Thema hatten wir schon einmal. Leerzeichen sind leider keine gute Idee bei Raumnamen.
vG Looxer
-
Danke, lag wirklich daran, nun habe ich aber folgenden Fehler:
19:46:48.410 [info] javascript.0 Stop script script.js.common.Heizung 19:46:49.105 [info] javascript.0 Start javascript script.js.common.Heizung 19:46:49.105 [error] javascript.0 script.js.common.Heizung: C:\ioBroker\node_modules\iobroker.javascript\javascript.js:2207
Was ist das wieder?
-
Hi Lindi,
könntest du dein Programm mit den Einstellungen posten ?
Ich vermute, dass es ein Problem bei den Einstellungen ist.
Das Programm läuft schon seit langem fehlerfrei. Meist sind Fehler durch Probleme bei den Räumen/Gewerken oder durch falsche Einstellungen verursacht.
vG Looxer