NEWS
[Vorlage] Heizungsthermostatsteuerung - Script
-
Das ioBroker die FHT80b nicht ansteuern kann hat übrigens nichts mit dem Script zu tun!
So weit, das zu testen bin ich ja garnicht gekommen!
LG
Wolfgang
-
Hi Looxer,
leider kann ich Dir keine PN senden, da die Funktion noch nicht bei mir freigeschaltet ist.
Ich benutze überigens nur HM-Thermosate (am Heizkörper und aktuell ein Wandthermostat).
Das Script läuft in "KEINE GRUPPE".
In meiner letzten Version habe ich nur folgende Einstellungen im Script geändert:
var cron = 1;
var UseRoomList = false; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
var RoomList = [];
RoomList[0] = ['GaesteWC'];
var UseEventsGlobalParameter = false;
Alles andere habe ich unberührt gelassen.
Die Warnung aus Zeile 297 habe ich angehängt, "hinter den" Ausrufezeichen in Zeile 317 und folgend steht "Don´t make functions within a loop".
???
Hoffe, dass die Angaben weiter helfen.
Danke und VG
drdoener
4076_hz4.jpg -
Hi,
Ich benutze überigens nur HM-Thermosate (am Heizkörper und aktuell ein Wandthermostat). `
welche genau ?Es gibt die alten HM mit den Stellventilen
oder die neueren mit dem Display am Heizkörper
oder die ganz neuen HM-IP
Die Warnung aus Zeile 297 habe ich angehängt, "hinter den" Ausrufezeichen in Zeile 317 und folgend steht "Don´t make functions within a loop". ??? `
Den Hinweis "Dont make functions" kannst du ignorieren.Zeile 297 ist lediglich ein Funktionsaufruf.
Kannst du bitte das komplette Script einfach hier hochladen. Steht ja nichts sensibles drin, nehme ich mal an
vG Looxer
-
Hi,
in Benutzung sind die neuesten HM (NICHT HMIP) Thermostate, Bsp:
HM-CC-RT-DN OEQ0663024
HM-TC-IT-WM-W-EU OEQ0578846
Das Script lade ich hoch (eine meiner ca. 15 verschiedenen Versuche).
Danke und Gruß
drdoener
4076_hz_vers4.txt -
oder dürfen die Geräte etwa nicht wie bei mir benannt sein (siehe Anhang)?
(ist mir gerade so eingefallen).
Gruß
drdonener
4076_iobroker_thermostate.jpg -
Hi
oder dürfen die Geräte etwa nicht wie bei mir benannt sein (siehe Anhang)? `
Spaces waren in der Tat mal ein Problem, sollte aber jetzt gehen.Du hast die Roomlist auf true. Das heisst, dass das Programm nur fuer den Raum GaesteWC Devices findet
Du hast ein GaesteWC TT device also soll das so sein , dass du nur fuer diesen Raum testest ?
Falls das nicht das Problem ist, dann entferne bitte testhalber die spaces aus den Geraeten.
(zumindest mal aus einem)
vG Looxer
-
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.