NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Hi,
ich habe eine neue Version hochgeladen. Es ist jetzt die Version 2.00b02.
Die Version ist für alle relevant, da sich im Bereich der globalen Parameter Fehler eingeschlichen hatten.
ChangeLog:
//````
// 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 gesetztBitte beachtet folgendes: Bei den Einstellungen haben sich 3 Aenderungen ergeben 1\. Thermostatabelle für die alten Thermostate sollte ein Delay von 2 Minuten eingegeben werden 2\. SensorTabelle für DrehSensorGriffe muss in Spalte 6 Verschlussstatus eine 0 eingetragen werden (Wert bei geschlossen) 3\. SensorTabelle für HMIP Fenstersensor muss in Spalte 6 Verschlussstatus eine 0 eingetragen werden (Wert bei geschlossen) Ansonsten gibt es keine Aenderungen bei den Usereinstellungen. Es kann also das Coding nach den Einstellungen kopiert werden und diese drei kleinen Aenderungen manuell eingetragen werden. vG Looxer
-
Hi,
ich hätte da evtl. noch einen Verbesserungsvorschlag:
Du hast hm-rpc.0 für HM-Komponenten und hm-rpc.1 für HMIP-Komponenten fest verdrahtet.
Da ich das aber anders habe (hm-rpc.2 und hm-rpc.3) muss ich jedesmal den Code mit Suchen & Ersetzen anpassen.
Würde es da evtl. Sinn machen, dies auch über Variablen abzufangen? Dann könnte man das einfach oben im Einstellungsblock anpassen und gut ist.
–----------------------
Nachtrag:
Bekomme folgende Meldung ins Log (die unteren 3 Warn-Zeilen):
4:16:16.991 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: Routine GetDevices Devices initialisiert 14:16:16.991 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: registered 22 subscriptions and 0 schedules 14:16:18.971 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: Heizungsscript verarbeitung benutzt Trigger und Events 14:16:18.971 [warn] javascript.0 at SetEventGlobalParameter (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:1654:9) 14:16:18.971 [warn] javascript.0 at LoopRooms (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:755:5) 14:16:18.971 [warn] javascript.0 at Object. (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:419:9)
Was sie genau bedeuten, erschließt sich mir gerade nicht
Gruß,
Eric
-
Kann mir wer sagen, welchen Datenpunkt ich in der Visu auswählen muss, dass die Boost Zeit angezeigt wird? Oder geht das nicht? Ich kann den Boost Haken setzen und das funktioniert auch und die Schrift wird auch rot. Aber die 300 Sekunden runterzählen tut er nicht.
Gruß
Markus
-
Du hast hm-rpc.0 für HM-Komponenten und hm-rpc.1 für HMIP-Komponenten fest verdrahtet.
Da ich das aber anders habe (hm-rpc.2 und hm-rpc.3) muss ich jedesmal den Code mit Suchen & Ersetzen anpassen. `
Hi Eric,fest verdrahtet sollte da nix sein. Die ThermostatTypeTab Spalte 0 beinhaltet je Gerät die HMPRC-Instanz und ist einstellbar.
Ich vermute nicht, dass jemand dieselben Gerätetypen verschiedenen Instanzen zuordnen will. Daher sollte das doch so passen ?
An welchen Stellen musst du denn was verändern damit es für dich passt ?
Bekomme folgende Meldung ins Log (die unteren 3 Warn-Zeilen):
Code: Alles auswählen
4:16:16.991 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: Routine GetDevices Devices initialisiert
14:16:16.991 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: registered 22 subscriptions and 0 schedules
14:16:18.971 [info] javascript.0 script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02: Heizungsscript verarbeitung benutzt Trigger und Events
14:16:18.971 [warn] javascript.0 at SetEventGlobalParameter (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:1654:9)
14:16:18.971 [warn] javascript.0 at LoopRooms (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:755:5)
14:16:18.971 [warn] javascript.0 at Object. (script.js.Aktiv.Heizung.Heizungssteuerung_2_0b02:419:9)
Was sie genau bedeuten, erschließt sich mir gerade nicht `
Scheint was mit den globalen Events nicht zu passen. Nutzt du Events und sind die Events im ICAL Adapter eingetragen - existieren also in der Objektliste ? Checke mal bitte ob das alles so stimmt.
Wenn ja, dann wäre interessant zu wissen welche Coding stellen es bei dir exakt sind: Zeilen 419 - 755 - 1654.
Bei mir sind die Zeilen vermutlich nicht 100%ig identisch
vG Looxer
-
Kann mir wer sagen, welchen Datenpunkt ich in der Visu auswählen muss, dass die Boost Zeit angezeigt wird? Oder geht das nicht? Ich kann den Boost Haken setzen und das funktioniert auch und die Schrift wird auch rot. Aber die 300 Sekunden runterzählen tut er nicht. `
Hi Markus,Die Datenpunkte sind BoostTime für den Zähler bei IP und Boost_State für die HM…DN Geräte.
und Boost Mode fuer den BoostModus.
Leider zählt der Zaehler nur am Gerät und wird nur sporadisch an ioBroker uebertragen. Zuverlässig sieht man anfangs nur die Länge der BoostZeit und am Ende wird es zuverlässig zurückgesetzt.
vG Looxer
-
Jemand ne Idee hierzu?
! javascript.0 2018-01-06 22:30:30.112 error at ContextifyScript.Script.runInContext (vm.js:35:29)
! javascript.0 2018-01-06 22:30:30.112 error at script.js.Heizungssteuerung.Heizungssteuerung:337:1
! javascript.0 2018-01-06 22:30:30.112 error at initializeData (script.js.Heizungssteuerung.Heizungssteuerung:344:5)
! javascript.0 2018-01-06 22:30:30.112 error at getDevices (script.js.Heizungssteuerung.Heizungssteuerung:576:130)
! javascript.0 2018-01-06 22:30:30.112 error TypeError: $(…).each is not a function
! javascript.0 2018-01-06 22:30:30.112 error ^
! javascript.0 2018-01-06 22:30:30.111 error $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) {
! javascript.0 2018-01-06 22:30:30.111 error script.js.Heizungssteuerung.Heizungssteuerung: script.js.Heizungssteuerung.Heizungssteuerung:576 -
Hi,
sieht für mich so aus als wäre im Einstellungsbereich irgendwas schief.
sende doch bitte mal deine Einstellungen - komplett
vG Looxer
-
Oder ist das Gewerk einfach nur leer?
Daher könnte evtl. die Meldung „each is not …“ kommen.
Gruß,
Eric
Von unterwegs getippert
-
Oder ist das Gewerk einfach nur leer?
Daher könnte evtl. die Meldung „each is not …“ kommen.
Gruß,
Eric
Von unterwegs getippert `
Welches Gewerk? Heizung und Verschluss ist jeweils gefüllt.
-
War ja nur eine Idee.
Von unterwegs getippert
-
-
Und auch genau so geschrieben in ioBroker? Bitte prüf die Namen man unter Enums im ioBroker. Manchmal wenn man in der CCU die Namen Nicht anfasst heissen die nämlich anders!!
-
Und auch genau so geschrieben in ioBroker? Bitte prüf die Namen man unter Enums im ioBroker. Manchmal wenn man in der CCU die Namen Nicht anfasst heissen die nämlich anders!! `
Ich verstehe die Frage nicht.
Die Gewerke heißen "Heizung" und "Verschluss", genau wie im Steuerungsscript.
` > var HeizungGewerk = "Heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein.
var SensorGewerk = "Verschluss"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein. `
-
Wie heißen die Einträge in ioBroker?? Der ran heißt glaube auf englisch enums, deutsch listen? Weiß nicht grad aus dem Kopf.
Dort gibt es dann enum.functions und enum.rooms. Die sind interessant.
Wenn da was drinsteht wie ${whatever} dann musst du in der ccu einmalig alle Raum und gewerknamen anklicken und speichern und hm-Rega neu starten … im worst case in ioBroker umbenennen.
-
Wie heißen die Einträge in ioBroker?? Der ran heißt glaube auf englisch enums, deutsch listen? Weiß nicht grad aus dem Kopf.
Dort gibt es dann enum.functions und enum.rooms. Die sind interessant.
Wenn da was drinsteht wie ${whatever} dann musst du in der ccu einmalig alle Raum und gewerknamen anklicken und speichern und hm-Rega neu starten … im worst case in ioBroker umbenennen. `
Ich finde im Rega weder Objekte mit functions, noch mit rooms, dafür aber :
! ${ruleTmpProgramName} 1 channel
! 12534 Active state ${ruleTmpProgramName} 1 enabled state state.enabled false
! ProgramExecute state ${ruleTmpProgramName} 1 execute state action.execute false
! 13682 channel ${ruleTmpProgramName} channel
! Active state ${ruleTmpProgramName} enabled state state.enabled true
! ProgramExecute state ${ruleTmpProgramName} execute state action.execute false -
Moin,
Ich finde im Rega weder Objekte mit functions, noch mit rooms, … `
die findest Du auch nicht im Rega, sondern im Reiter „Aufzählungen“ (ggf. musst Du ihn noch einblenden).Gruß,
Eric
Von unterwegs getippert
-
-
Also wie vermutet. Bitte siehe mein Post von gestern Abend. Eine editiersession in der ccu bei Gewerken und räumen. Und in iobroker. Deine gewerke heißen halt faktisch anderes.
Bevor die Frage kommt wo das her kommt: die ccu kann mehrere Sprachen. Also sind alle vorgefüllten Namen wie diese so genannt und werden bei der Anzeige „übersetzt“. Erst wenn man den Namen ändert stehe eigene Namen drin
-
Und im Anschluss das Heizungsscript neu einlesen? Oder muss irgendwas resettet werden?
-
Javascript Adapter Restkarten. Neustart vom Skript passiert damit automatisch.