NEWS
[Vorlage] Heizungsthermostatsteuerung - Script
-
Hi,
versucht habe ich es jetzt noch einmal mit "roomlist" true und false.
Dazu habe ich bei dem Gerät "GaesteWC TT" das Leerzeichen entfernt, und dann habe ich es noch mit einem anderen Raum probiert, in dem das Thermostat noch den Originalnamen hat.
Immer die gleiche Fehlermeldung, und unter "Objekte/javascript.0" erscheint nichts….
??
VG
drdoener
-
Hi drdoener,
Also hier mal die Liste zum durcharbeiten:
Gewerke:
Im Script musst du deine Gewerke angegeben, die du den Geräten in der CCU zugewiesen hast
Standard im script ist Heizung und Verschluss. Stimmen die ?
Räume
Die Geräte muessen einem Raum zugewiesen werden.
Die Räume werden automatisch ausgelesen. Belasse mal die roomlist auf false
Objektliste
Siehst du in der Objektliste, dass die Geräte -möglichst alle channel- Raumzuweisungen und Gewerkezuweisungen haben ?
Wenn nicht, dann hast du vermutlich in der CCU nicht alle channel zugeordnet. Brauchst auch in der Regel wenigstens channel 1,4 etc
Geräte
Die Gerätetypen müssen mit der Konfiguration in der Tabelle ThermostatTypeTab übereinstimmen, also z.B. HM-CC-RT-DN
muss dann auch so bei den Objekten unter Beispiel: "PARENT_TYPE": "HM-CC-TC" identisch sein. und zwar inkl gross und kleinschreibung
(die neue Version -noch nicht veröffentlich- ist da toleranter).
Das Feld "PARENT_TYPE" findest du in der objektliste z.B. hm-rpc.0.IEQ0515883 - auf diesem Level gibt es rechts einen Stift.
Nach Änerungen in der CCU (z.B. spaces aus geräten entfernt) solltest du iobroker neu starten.
Wenn das alles nicht klappt dann schick mir mal ein objekt als download
Das kannst du aus der objeklist heraus machen. Ein Thermostat markieren und dann obenlinks auf download druecken.
"die ausgewhaehlte objekt-struktur als json herunterladen"
(ich hoffe, dass du mitterlweile PN senden kannst ?)
Nicht die Geluld verlieren. Ich bin auch sicher, dass es nur Einstellung ist. Das script funktioniert.
vG Looxer
-
Hi Looxer,
bin noch einmal alles durchgeganen, und dabei auf die Bennenung der Gewerke gestoßen.
In meiner CCU heissen die Heizung und Verschluss,
ABER im iobroker funcHeating und wohl funcLock (habe noch keine Verschlussgeräte…)
Im Script habe ich statt Heizung funcHeating eingegeben und <u>NUN FUNKTIONIERT</u> es.
Naja, hätte mich auch vorher anstrahlen können, als recht neuer Nutzer habe ich aber noch nie so wirklich Umgang mit den Gewerken.
Jetzt werde ich mich mal ans Werk machen,
Danke Dir für den Support,
drdoener
-
Im Script habe ich statt Heizung funcHeating eingegeben und NUN FUNKTIONIERT es. `
Du hättest lieber auf der CCU die Gewerke mal kurz editiert und wieder geschlossen, dann den hm-rega neugestartet und hättest die richtigen Bezeichnungen gehabt.Dies ist nämlich ein Bug der CCU
Gruß
Rainer
-
Ok,
habe ich jetzt auch gemacht (siehe Bild)
Sieht jetzt noch nach mehr Bug aus..
-
Sieht jetzt noch nach mehr Bug aus.. `
Wieso?Geh mal auf den Reiter Aufzählungen und klappe die Gewerke ganz auf
Gruß
Rainer
-
Sieht jetzt noch nach mehr Bug aus.. `
auf jeden Fall haben wir den Uebeltaeter. Jetzt brauchst du nur sicherstellen, dass die Gewerkezuordnung und auch Raumzuordnung übrigens in der CCU wirklich stimmen. Am Besten allen Kanälen zuordnen.
Dann - so wie von Rainer vorgeschlagen- gehst du in die Aufzählungen und vergleichst mal.
Falls es Abweichungen gibt löschst du rooms und functions in den Aufzählungen (keine Bange kriegst du wieder mit dem nächsten sync zurück)
Dann empfehle ich ioBroker neu zu starten. Bei mir hat der REGA Neustart nicht immer geholfen. Warum auch immer.
vG Looxer
-
Hi,
es gibt die Version 081. Habe ich im ersten Post hinterlegt.
Was gibt es Neues ?
Erstmal eine Reihe von Fehlern wurde behoben. Dann funktioniert IP jetzt richtig und ist auch vorkonfiguriert.
Ausserdem gibt es jetzt auch die Möglichkeit Nicht-Homematic Fenstersensoren zu berücksichtigen.
Wenn Ihr schon eine Vorgängerversion einsetzt, dann müsst ihr alles nach den User-Einstellungen kopieren, -also auch die Experten Einstellungen.
vG Looxer
Change Log:
// Version 0.81 11,11.2017 - Fehler bei Create States - falscher type
// beim view manually adjusted auf number gestellt und text korrigiert.
// Fehler in der Roomlist: es wurden auch Geraete aus anderen Raeumen eingelesen
// IP - Konfiguration angepasst fuer Wand und Heizkoerperthermostat
// IP Geräte können jetzt auf den manuellen Modus gesetzt werden
// Funktion: Nicht HM-Sensoren hinzugefügt
// Userexit Datenpunkte bei den Experteneinstellungen auf initial gesetzt
// Die Abfrage des GeraeteTypes fuer Thermostate wurde angepasst und checked ob der angegebene Type als Substring enthalten ist
// und die Vergleichsstrings werden in Grossschrift verglichen (sensoren und Thermostate)
// Nicht HM-Sensoren hinzugefügt mit subscription
// Selektion der Geräte ohne ID Laenge
-
Hmmm… gerade um 3:30 die Heizungen ausgemacht... Irgendwas stimmt da noch nicht in der neuen Version ...
-
Hmmm… gerade um 3:30 die Heizungen ausgemacht... Irgendwas stimmt da noch nicht in der neuen Version ...
hier sind meine errors
javascript.0 2017-11-13 03:28:46.013 error at ContextifyScript.Script.runInContext (vm.js:59:29) javascript.0 2017-11-13 03:28:46.013 error at script.js.Heizungsther_0_81:318:1 javascript.0 2017-11-13 03:28:46.013 error at getDevices (script.js.Heizungsther_0_81:482:33) javascript.0 2017-11-13 03:28:46.013 error TypeError: Cannot read property 'common' of null javascript.0 2017-11-13 03:28:46.013 error ^ javascript.0 2017-11-13 03:28:46.013 error FullName = getObject(id).common.name; javascript.0 2017-11-13 03:28:46.013 error script.js.Heizungsther_0_81: script.js.Heizungsther_0_81:482 javascript.0 2017-11-13 03:28:46.012 warn Object "javascript.0.Heizung.zwave1.4.SET_TEMPERATURE" does not exist javascript.0 2017-11-13 03:28:46.008 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.953 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.942 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.930 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.919 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.896 info script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2 javascript.0 2017-11-13 03:28:45.881 info Start javascript script.js.Heizungsther_0_81 javascript.0 2017-11-13 03:28:45.869 info Stop script script.js.Heizungsther_0_81
-
jap, da hatte ich vergessen einen meiner Datenpunkte bei den Nicht-HM Geräten zu entfernen.
Habe jetzt Version 0.81_2 hochgeladen.
vG Looxer
-
Bei mir funktioniert die neue Version immer noch nicht richtig. In den meisten Zimmer klappts anscheinend. Aber im Wohnzimmer wo ein Stellmotor schon regelmäßig Verbindungsprobleme hat, da wird irgendwie auch gar nicht die manuelle Soll-Tempereratur deaktiviert. Obwohl die Gültigkeit mit 11.11. angegeben ist.
Wie kann ich bei der Fehleranalyse helfen?
Edit: Hab auch gerade noch was im log gefunden:
avascript.0 2017-11-14 00:45:00.691 warn at Object. (script.js.Heizungsther_0_81_2:337:1) javascript.0 2017-11-14 00:45:00.691 warn at LoopRooms (script.js.Heizungsther_0_81_2:636:13) javascript.0 2017-11-14 00:45:00.691 warn at LoopDevices (script.js.Heizungsther_0_81_2:734:18) javascript.0 2017-11-14 00:45:00.691 warn at ManAdjustments (script.js.Heizungsther_0_81_2:1005:9) javascript.0 2017-11-14 00:45:00.691 warn at InitilizeManChange (script.js.Heizungsther_0_81_2:1600:5) javascript.0 2017-11-14 00:45:00.689 warn Wrong type of javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.
-
Hi,
die warnings kommen aus einem Datenpunkt, der statt auf number auf string steht. Bitte Aendere im Object:
javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.
Das Format von string auf number.
oder
Wenn du statt der Aenduerng im Objekt das Objekt löschst und das Coding anpasst, dann hat das den gleichen Effekt.
von
createState(State, "init", {read: true, write: true, type: 'string', name: 'Datum und Zeit der letzten Tempanpassung' , desc: 'Zeitstempel'}); State = RoomPath + "View_Manually_Adjusted";
auf
createState(State, 0, {read: true, write: true, type: 'number', name: 'Datum und Zeit der letzten Tempanpassung' , desc: 'Zeitstempel'}); State = RoomPath + "View_Manually_Adjusted";
Aber das Problem dürfte woanders herkommen.
bitte checke mal im Raum-View wann das Prorgramm den Raum zuletzt bearbeitet hat. (unten rechts "letzter Programmlauf")
Wenn da kein heutiges Datum steht, dann wird der Raum nicht selektiert.
Auf jeden Fall downloade mal die Objektstruktur für den Raum. (Gehe zu Objekte, selektiere den Raum (unter javascript, heizung etc)
und oben links auf download objektstruktur gehen. Dann als txt datei speichern und per PN an mich. So kann ich gut sehen wie der letzte Stand ist.
Auch würde ein erweitertes log helfen. Also im Programm logging auf true und dann mal einen durchlauf abwarten. Den logauszug dann auch als pn an mich.
Nachdem du den download und logging gemacht hast, bitte auch mal im Raumview die manuelle Temp auf 0 setzen und schauen was passiert.
Die objektstruktur kann ich leider erst am Freitag/Samstag auswerten. Bin unterwegs ohne System.
vG Looxer
-
die warnings kommen aus einem Datenpunkt, der statt auf number auf string steht. Bitte Aendere im Object:
javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.
Das Format von string auf number.
… ` Also ich hab die entsprechenden Datenpunkte jetzt mal überall auf Number gestellt. Keine Ahnung wie sich das verstellen kann. Ich war da auf jeden Fall nicht dran.
bitte checke mal im Raum-View wann das Prorgramm den Raum zuletzt bearbeitet hat. (unten rechts "letzter Programmlauf")
Wenn da kein heutiges Datum steht, dann wird der Raum nicht selektiert. ` Der letzte Durchlauf ist immer nur ein paar Minuten her. Scheint also normal bearbeitet zu werden.
Auf jeden Fall downloade mal die Objektstruktur für den Raum. (Gehe zu Objekte, selektiere den Raum (unter javascript, heizung etc) und oben links auf download objektstruktur gehen. Dann als txt datei speichern und per PN an mich. So kann ich gut sehen wie der letzte Stand ist.
Auch würde ein erweitertes log helfen. Also im Programm logging auf true und dann mal einen durchlauf abwarten. Den logauszug dann auch als pn an mich.
Nachdem du den download und logging gemacht hast, bitte auch mal im Raumview die manuelle Temp auf 0 setzen und schauen was passiert.
vG Looxer ` wird gemacht.
-
wird gemacht. `
super, danke.Eines habe ich noch vergessen. Eine Objektstruktur-Download des Gerätes (Thermostat) wäre noch hilfreich.
Dazu auf das Thermostat gehen und wiederum den Download machen.
vG Looxer
-
Dank der intensiven Betreuung durch looxxer01 konnte ich den Fehler finden: In dem nicht korrekt arbeitenden Zimmer war noch ein alter, defekter Fenster-sensor angemeldet. Ich hatte ihn zwar nicht mehr mit dem Thermostat verbunden, aber für diese Script war er (vor allem weil geöffnet und nicht mehr erreichbar)relevant. Nach dem Entfernen des Sensors vom CCU2 und einem Neustart der Homematic-Adapter funktioniert jetzt alles wie es soll!
Vielen Dank noch einmal für den Script!
btw. aus dem https://homematic-forum.de/forum/viewtopic.php?f=31&t=5621 kenne ich noch die Möglichkeit auch bei alten Thermostaten den Modus zu wechseln. Ich brauche die Funktion selber eigentlich nicht, aber man könnte natürlich überlegen das in iobroker auch zu ermöglichen.
-
btw. aus dem https://homematic-forum.de/forum/viewtopic.php?f=31&t=5621 kenne ich noch die Möglichkeit auch bei alten Thermostaten den Modus zu wechseln. Ich brauche die Funktion selber eigentlich nicht, aber man könnte natürlich überlegen das in iobroker auch zu ermöglichen. `
Ich brauche es schon eher weil ich im Sommer auch meine Klimaanlage steuern will
Ich schau mir das mal an, hab da eine Idee.
-
btw. aus dem https://homematic-forum.de/forum/viewtopic.php?f=31&t=5621 kenne ich noch die Möglichkeit auch bei alten Thermostaten den Modus zu wechseln. Ich brauche die Funktion selber eigentlich nicht, aber man könnte natürlich überlegen das in iobroker auch zu ermöglichen. `
Ich brauche es schon eher weil ich im Sommer auch meine Klimaanlage steuern will
Ich schau mir das mal an, hab da eine Idee. `
Ich hab bisher in Homematic diese Möglichkeit genutzt um im Urlaub alle Thermostate auf manuell, 17° und bei Rückkehr alle Thermostate auf Auto zu setzten. Leider wird die erste Temperatur im Auto-Modus erst aktiv wenn ein Schaltpunkt erreicht wird, insofern ist das nicht ganz so einfach zu handhaben.
-
Ich hab bisher in Homematic diese Möglichkeit genutzt um im Urlaub alle Thermostate auf manuell, 17° und bei Rückkehr alle Thermostate auf Auto zu setzten. Leider wird die erste Temperatur im Auto-Modus erst aktiv wenn ein Schaltpunkt erreicht wird, insofern ist das nicht ganz so einfach zu handhaben. `
Mit dem Heizungsscript braucht es das nicht, wenn
-
im google Kalender z.B. Urlaub Abwesend eingetragen ist
-
und z.B. ein Tag vor Rückkehr dieser Eintrag endet
-
und zugleich z.B. eine Absenkung fuer Urlaub Abwesenheit eingetragen ist (z.B. mit Mindesttemperatur 17 Grad),
dann hat das den gleichen Effekt mit dem Vorteil, dass es bereits warm ist bei der Rückkehr
vG Looxer
-
-
[…]dann hat das den gleichen Effekt mit dem Vorteil, dass es bereits warm ist bei der Rückkehr `
Klaro, hab jetzt alles mit deinem Script ersetzt! Läuft super. Auch wenn durch die Anwesendheitserkennung viele Punkte überflüssig werden: Viele Schaltpunkte brauche ich nämlich iegentlich nicht mer: wenn anwesend warm (Ausnahme: nachts) und wenn nicht: kalt. Aber es ist natürlich gut alle Möglichkeiten zu haben.