NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Hi,
@Chaot:Hast du sowas irgendwo im Script vorgesehen? `
Im Script ist das so nicht vorgesehen. Das Problem, dass ich dabei sehe ist, dass das Offset wahrscheinlich nicht immer 2 Grad ist.Das hängt vermutlich von der Aussentemperatur des Heizkörpers ab. In der Übergangszeit dürften es z.B. weniger als 2 Grad sein. (lauwarmer Heizkörper).
Wenn es stabil 2 Grad sein sollen, dann kommt die Diff-Temp bei Abwesenheit oder Urlaub in Frage. Die kann man negativ oder positiv setzen.
vG Looxer
-
gelöscht - doppelter Beitrag
-
Ich habe eigentlich alles bei den Standardeinstellungen gelassen.
Ich habe nur HM-IP Thermostate.
Es werden auch keine States angelegt. `
Ich vermute auch, dass es mit den Raum- bzw Gewerkezuordnungen zusammenhängt. Ist auch schon sehr häufig vorgekommen.In der Objektliste von iobroker bei den Objekten der Thermostate kannst du sehr schön sehen ob die Zuordnungen ok sind.
vG Looxer
-
Ich habe aktuell noch eine Fehlermedlung.
Ich denke das das mit dem Adapter "Feiertage" zusammenhängt. Nach der Installation kam dieser Fehler:
javascript.0 2018-10-03 11:12:15.242 error at ContextifyScript.Script.runInContext (vm.js:59:29) javascript.0 2018-10-03 11:12:15.242 error at script.js.Heizung.HeizungGesamt:343:1 javascript.0 2018-10-03 11:12:15.242 error at initializeData (script.js.Heizung.HeizungGesamt:350:5) javascript.0 2018-10-03 11:12:15.242 error at getDevices (script.js.Heizung.HeizungGesamt:580:32) javascript.0 2018-10-03 11:12:15.242 error TypeError: roomName.replace is not a function javascript.0 2018-10-03 11:12:15.241 error ^ javascript.0 2018-10-03 11:12:15.241 error roomNoSpace = roomName.replace(/\s/g, "_"); javascript.0 2018-10-03 11:12:15.241 error script.js.Heizung.HeizungGesamt: script.js.Heizung.HeizungGesamt:580
-
Ich habe aktuell noch eine Fehlermedlung. `
Hi,
ich sehe das hier
javascript.0 2018-10-03 11:12:15.241 error ^
Scheint mir, dass es ein Syntax Fehler ist, vermutlich entstanden bei der Anpassung des Scripts.
vG Looxer
-
Ok, der Fehler ist weg wenn ich
var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
benutze.
Steht da false ist der Fehler vorhanden.
Nächstes Problem:
javascript.0.Heizung.Heizplan.Toilette.Source_Global_Parameter steht auf "Abwesenheit Absenkung"
Woher kommt der Wert?
var UseEventsGlobalParameter = false; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren var UseEventsGlobalProfilSelect = false; // Events mit denen das Profil umgeschaltet werden kann - fuer alle Raeume - Empfehlung erst im zweiten Schritt aktivieren var UseEventsRaumProfilSelect = false; // Events mit denen das Profil fuer einzelne Raeume umgeschaltet werden kann - Empfehlung erst im zweiten Schritt aktivieren var EventG_UrlaubAbwesend = "Urlaub_Abwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_UrlaubAnwesend = "Urlaub_Anwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Party = "Party"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Gaeste = "Gaeste"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Abwesend = "Keiner_DA"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Feiertag = "Feiertag"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist // Die folgenden EVENT Texte muessen in ICAL angelegt werden. Sobald die Texte im google Kalender // aktiv sind wird das Event fuer die Heizungsthermostatsteuerung ausgewertet. // Achtung die Zeichen <> und der Text innerhalb dieser Klammer duerfen nicht geaendert werden // siehe Dokumentation fuer mehr infos var UseEventG_Profil = "Global_Profil_<profilnummer>"; // Events mit denen das Profil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventP_Profil = true ist var UseEventR_Profil = "<raumname>_Profil_<profilnummer>"; // Events mit denen das Raumprofil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventsRaumProfilSelect = true ist // Integration zur Anwesenheitsermittlung - var UseAnwesenheitserkennung = false; // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden // Integration zum Feiertagskalender - var UseFeiertagskalender = true; // wenn der Kalender genutzt wird bitte auf true setzen - Empfehlung: Feiertagsadapter installieren und auf true setzen var StateFeiertagHeuteAdapter = "feiertage.0.heute.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet var StateFeiertagMorgenAdapter = "feiertage.0.morgen.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet wenn es darum geht den nächsten Schaltpunkt zu ermitteln wenn dieser am nächsten Tag liegt</profilnummer></raumname></profilnummer>
Wurde auch noch nie aktiviert.
-
Hallo Zusammen!
Ihr habt doch den Überblick über die vorhandenen Scripte. Soll ich diesen hier nehmen oder den -> viewtopic.php?f=21&t=10111 ?
Ich habe mehrere Homematic-Thermostate und ein Stellventil. Mein Ziel wäre es, alle Thermostate über IOBroker laufen zu lassen.
Was meint ihr?
Schöne Grüße
Thomas
-
Ich habe mir jetzt folgendermaßen beholfen:
// Integration zur Anwesenheitsermittlung - var UseAnwesenheitserkennung = true; // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren var StateAnwesenheitFunction = JSPath + "javascript.0.Heizung.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
Datenpunkt angelegt und manuell auf "false" gesetzt.
Jetzt schein die "Anwesenheitserkennung" nicht mehr in die Steuerung einzugreifen.
-
Hallo, zunächst danke für euer tolles Skript. Ich habe Max! Heizkörperthermostate/Cube und Xiaomi Fensterkontakte im Einsatz.
Alles funktioniert sowiet prima. Nur wenn ich ein Fenster öffne wird die Temperatur am Heizkörper nicht abgesenkt.
Die Öffnung des Fenster wird aber erkannt.
Log-Fenster geöffnet:
javascript.0 2018-10-03 14:50:38.006 info script.js.common.Heizung: Routine SensorChange: Sensor status ist ? true
javascript.0 2018-10-03 14:50:38.006 info script.js.common.Heizung: Routine SensorChange: Sensor ist direktverknuepft ? false
javascript.0 2018-10-03 14:50:38.006 info script.js.common.Heizung: Routine SensorChange: Raum Bad
javascript.0 2018-10-03 14:50:38.006 info script.js.common.Heizung: Routine SensorChange: Fenster mihome.0.devices.magnet_158d000248cb7a.state status geaendert fuer mihome.0.devices.magnet_158d000248cb7a.state Bad true
javascript.0 2018-10-03 14:50:38.006 info script.js.common.Heizung: Routine SensorStatCalc: Sensorstatus ist true fuer devtype = NoneHM und id mihome.0.devices.magnet_158d000248cb7a.state
Log-Fenster geschlossen:
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Bad.Source_Global_Parameter
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Setze Schedule für nächste Planzeit 10 0 16 * * * für Raum Bad
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Schedule gelöscht für Bad
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Setze Bad.Source_Global_Parameter zu Verschluss geschlossen TemperaturAbsenkung zurueck gesetzt
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine ExecuteTempDetermination: raum BadSolltemp nach overrule: 22 Findung Verschluss geschlossen TemperaturAbsenkung zurueck gesetzt
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine ExecuteTempDetermination: raum BadSolltemp nach Switchtime: 22 Findung Mi_16:00:44
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 22 fuer Raum Bad Raumprofil ist 1
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine LoopDevices:Verschluss geschlossen TemperaturAbsenkung zurueck gesetzt
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine LoopDevices: Sensorstatus fuer raum Bad ist false
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorChange: Sensor status ist ? false
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorChange: Sensor ist direktverknuepft ? false
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorChange: Raum Bad
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorChange: Fenster mihome.0.devices.magnet_158d000248cb7a.state status geaendert fuer mihome.0.devices.magnet_158d000248cb7a.state Bad false
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorStatCalc: Sensorstatus ist false fuer devtype = NoneHM und id mihome.0.devices.magnet_158d000248cb7a.state
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorFind ID = mihome.0.devices.magnet_158d000248cb7a.state Raum = Bad
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorFind ID = mihome.0.devices.magnet_158d000248b611.state Raum = Kueche
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorFind ID = mihome.0.devices.magnet_158d00024245c4.state Raum = Schlafzimmer
javascript.0 2018-10-03 14:52:10.659 info script.js.common.Heizung: Routine SensorFind ID = mihome.0.devices.magnet_158d000232c4a9.state Raum = Wohnzimmer
javascript.0 2018-10-03 14:52:10.655 info script.js.common.Heizung: Routine SensorFind ID = mihome.0.devices.magnet_158d000248cb6f.state Raum = Vivian
Definition Sensoren:
NoneHMSenorTab[0] = ['Vivian', 'mihome.0.devices', 'magnet_158d000248cb6f', 'state', false, false];
NoneHMSenorTab[1] = ['Wohnzimmer', 'mihome.0.devices', 'magnet_158d000232c4a9', 'state', false, false];
NoneHMSenorTab[2] = ['Schlafzimmer', 'mihome.0.devices', 'magnet_158d00024245c4', 'state', false, false];
NoneHMSenorTab[3] = ['Kueche', 'mihome.0.devices', 'magnet_158d000248b611', 'state', false, false];
NoneHMSenorTab[4] = ['Bad', 'mihome.0.devices', 'magnet_158d000248cb7a', 'state', false, false];
Definition Thermostate:
NoneHMTab[0] = ['Vivian', 'maxcube.0.devices', 'thermostat_1a1ccf', 'setpoint', 12];
NoneHMTab[1] = ['Wohnzimmer', 'maxcube.0.devices', 'thermostat_1a109b', 'setpoint', 12];
NoneHMTab[2] = ['Schlafzimmer', 'maxcube.0.devices', 'thermostat_1a6e46', 'setpoint', 12];
NoneHMTab[3] = ['Kueche', 'maxcube.0.devices', 'thermostat_1a702c', 'setpoint', 12];
NoneHMTab[4] = ['Bad', 'maxcube.0.devices', 'thermostat_1a1cd7', 'setpoint', 12];
Was läuft hier schief?
Schon mal Danke für eure Unterstützung.
K-L-S
-
Was läuft hier schief? `
Hi,
es gab/gibt einen Fehler und einen Fix dazu, den ich aber noch nicht online gestellt.
Bitte schaue in den Post von mir vom 30.09.2018, 19:56
vG Looxer
-
Hallo,
habe den Fix auf vorheriger Seite gefunden und angewendet. Funktioniert prima.
Herzlichen Dank K-L-S
-
Ich habe noch eine Ausgabe die mir als "warn" dargestellt wird:
javascript.0 2018-10-03 22:50:00.942 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-10-03 22:50:00.942 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-10-03 22:50:00.942 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1060:65) javascript.0 2018-10-03 22:50:00.942 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1604:19) javascript.0 2018-10-03 22:50:00.941 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1684:25) javascript.0 2018-10-03 22:50:00.931 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-10-03 22:50:00.931 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-10-03 22:50:00.931 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-10-03 22:50:00.931 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1060:65) javascript.0 2018-10-03 22:50:00.931 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1604:19) javascript.0 2018-10-03 22:50:00.931 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1655:25) javascript.0 2018-10-03 22:50:00.929 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-10-03 22:50:00.929 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-10-03 22:50:00.929 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-10-03 22:50:00.929 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1059:65) javascript.0 2018-10-03 22:50:00.928 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1604:19) javascript.0 2018-10-03 22:50:00.928 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1684:25) javascript.0 2018-10-03 22:50:00.927 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_wieVortag" not found (3) javascript.0 2018-10-03 22:50:00.927 warn at Object. <anonymous>(script.js.Heizung.HeizungGesamt:648:20) javascript.0 2018-10-03 22:50:00.927 warn at ThermostatChange (script.js.Heizung.HeizungGesamt:923:26) javascript.0 2018-10-03 22:50:00.926 warn at ManAdjustments (script.js.Heizung.HeizungGesamt:1059:65) javascript.0 2018-10-03 22:50:00.926 warn at SelectSwitchTime (script.js.Heizung.HeizungGesamt:1604:19) javascript.0 2018-10-03 22:50:00.926 warn at DetermineSchedule (script.js.Heizung.HeizungGesamt:1655:25) javascript.0 2018-10-03 22:50:00.921 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_wieVortag" not found (3)</anonymous></anonymous></anonymous></anonymous>
Ich habe zwar den Raum Wohnzimmer im Script, aber noch keine View dafür erstellt.
Allerdings habe ich auch die anderen Räume drin und es wird mir nur Wohnzimmer als fehlerhaft ausgegeben.
Im Bad/Toilette ist das Script seit heute mit zugehöriger VIS am Laufen und macht bisher keine Probleme. Selbst die Temperaturerhöhung über Dash Button funktioniert dank der tollen Hilfe von paul53.
-
h habe zwar den Raum Wohnzimmer im Script, aber noch keine View dafür erstellt.
Allerdings habe ich auch die anderen Räume drin und es wird mir nur Wohnzimmer als fehlerhaft ausgegeben.
Im Bad/Toilette ist das Script seit heute mit zugehöriger VIS am Laufen und macht bisher keine Probleme. `
Hi,
sieht für mich aus, dass da ein Konfigfehler im script vorliegt. Das Programm kann vermutlich das zum Wohnzimmer gehoerige Gerät nicht finden und legt daher auch keine Datenpunkte an. Daher kommen dann eine Reihe von verschiedene Warnungen zustande.
vG Ralf
-
Servus,
nachdem bei mir die v1 des Scripts brav ihren Dienst getan hat, hab ich kürzlich auf v2 umgestellt. Läuft auch alles wunderbar. An dieser Stelle ein großes Lob und Dank an die Macher.
Eine Frage hab ich jedoch: mir ist aufgefallen, dass beim Öffnen der Fenster mit Sensor (direktverknüpft) kein Status in Source_GlobalParameter geschrieben wird. Zumindest wird mir im View dann nichts angezeigt (wie z.B. Verschluss offen TemperaturAbsenkung gesetzt, o.ä.). Gibt's den Status lediglich für nicht direktverknüpfte Sensoren? (Ggfs. wurde die Frage auch schonmal gestellt und ich hab's übersehen?)
Grüße
jC
-
Gibt's den Status lediglich für nicht direktverknüpfte Sensoren? (Ggfs. wurde die Frage auch schonmal gestellt und ich hab's übersehen?) `
nein, das sollte für alle Fälle funktionieren. Muss ich mir mal ansehen, wenn ich wieder zuhause Zugriff habe.Ich nehme mal an, dass es nicht so brennt
vG Looxer
-
Oh doch! Ohne Status werd ich erfrieren!
Oder so ähnlich. Supi, dank dir. Alles ganz entspannt.
-
Kurzes Update:
Der Fehler bzw. die Warnmeldung ist seltsamerweise verschwunden.
Regelung Bad läuft seit 24 Stunden ohne Fehler und es ist kein weitere Log Eintrag vorhanden. Ich werde dann am Wochenende die einzelnen Räume langsam dazuschalten.
-
Habe die Änderungen eingefügt und die Sensoren laufen. Alles bestens. Vielen Dank.
-
Eine Frage zu den Events hätte ich noch:
In der VIS sind ja mehrere Schaltpunkte angegeben.
Werden die nicht abgearbeite?
Ich habe in zwei Räumen als letzten Schaltpunkt gestern 0:00 Uhr.
Als Events habe ich bisher ausser dem Feiertagsadapter keinen aktiv geschaltet. Der Anwesenheitsevent steht manuell auf True weil sonst gar nichts funktioniert hat:
// ICAL Einstellungen (erst nach Ersteinstellung Aktivieren) // Wenn keine Events genutzt werden, dann alles auf false setzen // die Events muessen entsprechend in ICAL angelegt werden, sonst gibt es Warnmeldungen im Log // Die Eventnamen koennen angepasst werden. Bitte die Logkik von ICAL unbeding beachten. (siehe Doku im Kapitel ICAL) var UseEventsGlobalParameter = false; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren var UseEventsGlobalProfilSelect = false; // Events mit denen das Profil umgeschaltet werden kann - fuer alle Raeume - Empfehlung erst im zweiten Schritt aktivieren var UseEventsRaumProfilSelect = false; // Events mit denen das Profil fuer einzelne Raeume umgeschaltet werden kann - Empfehlung erst im zweiten Schritt aktivieren var EventG_UrlaubAbwesend = "Urlaub_Abwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_UrlaubAnwesend = "Urlaub_Anwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Party = "Party"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Gaeste = "Gaeste"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Abwesend = "Keiner_DA"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Feiertag = "Feiertag"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist // Die folgenden EVENT Texte muessen in ICAL angelegt werden. Sobald die Texte im google Kalender // aktiv sind wird das Event fuer die Heizungsthermostatsteuerung ausgewertet. // Achtung die Zeichen <> und der Text innerhalb dieser Klammer duerfen nicht geaendert werden // siehe Dokumentation fuer mehr infos var UseEventG_Profil = "Global_Profil_<profilnummer>"; // Events mit denen das Profil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventP_Profil = true ist var UseEventR_Profil = "<raumname>_Profil_<profilnummer>"; // Events mit denen das Raumprofil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventsRaumProfilSelect = true ist // Integration zur Anwesenheitsermittlung - var UseAnwesenheitserkennung = true; // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren var StateAnwesenheitFunction = JSPath + "Heizung.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden // Integration zum Feiertagskalender - var UseFeiertagskalender = true; // wenn der Kalender genutzt wird bitte auf true setzen - Empfehlung: Feiertagsadapter installieren und auf true setzen var StateFeiertagHeuteAdapter = "feiertage.0.heute.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet var StateFeiertagMorgenAdapter = "feiertage.0.morgen.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet wenn es darum geht den nächsten Schaltpunkt zu ermitteln wenn dieser am nächsten Tag liegt</profilnummer></raumname></profilnummer>
Muss ich noch irgendwas aktivieren oder sollte ich einfach auf cron wechseln?
-
Beim durchscrollen habe ich noch zwei Fehlermeldungen entdeckt.
In Zeile 424 "don't make functions within a loop"
und in Zeile 426 "too many errors 17% scanned"
if (debug) {log("Trigger nach Änderung für State " + state.id + " und Raum " + roomName, "info");} TriggerUpdate(roomName); }); } }