NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Hallo zusammen,
wenn ich das Script zum ersten mal startet, bekomme ich diese Fehlermeldung !
Also bis hier geht es und dann ist Schluss ehrlich gesagt weiß ich jetzt auch nicht weiter.
Was ist noch falsch ?
-
@MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?
alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:
-
Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind
-
Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.
-
Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.
-
nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten
-
-
@Adnim sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
@MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?
alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:
-
Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind
-
Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.
-
Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.
-
nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten
Hi so sieht es aktuell aus.
zu Punkt 1 habe ich bereits mehrmals gemacht. Ist i.o.
zu Punkt 2 Irgendwas mit "$" habe ich nicht in der Auflistung.
zu Punkt 3 Habe ich auch schon gemacht. Alles gelöscht.
zu Punkt 4 IOBroker neustart habe ich bis jetzt nicht gemacht. Das werde ich jetzt noch mal testen. Und mich dann wieder melden mit neuen Infos Hoffentlich positiv.
Gewerke:
Räume:
[EDIT] So ich habe mein Problem erst mal gefunden. Lag an Gewerke ! Dann wollen wir uns mal den Rest anschauen.
-
-
Hallo zusammen,
erst mal danke an @looxer01 für das super Script.
Leider habe ich ein kleines Problem. Das Script erkennt nu die Heizung in meinem Wohnzimmer.In meinem Wohnzimmer habe ich ein HmIP-eTRV-2 und im Bad sowie Schlafzimmer je ein HM-CC-RT-DN.
Die Thermostate sin sauber den Räumen und dem Gewerk zugeordnet.
Das Script findet aber nur das Thermostat im Wohnzimmer und legt dafür Datenpunkte an.
Ich hab mir zum testen mal den Programmcode der nach den Thermostaten sucht in ein externes Script gepackt und dort ausgeführt.
var ThermostatTypeTab = []; ThermostatTypeTab[0] = ['hm-rpc.1.', 'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)' ,'WT', '2.SET_TEMPERATURE' , false, '2.MANU_MODE', true, '1.TEMPERATURE', '2.CONTROL_MODE', 12, 0]; ThermostatTypeTab[1] = ['hm-rpc.1.', 'HM-CC-TC' , 'Wandthermostat (alt)' ,'WT', '2.SETPOINT' , false, false, false, '1.TEMPERATURE', false, 12, 0]; ThermostatTypeTab[2] = ['hm-rpc.1.', 'HM-CC-RT-DN' , 'Heizkoerperthermostat(neu)' ,'HT', '4.SET_TEMPERATURE' , false, '4.MANU_MODE', true, '4.ACTUAL_TEMPERATURE', '4.CONTROL_MODE', 12, 0]; ThermostatTypeTab[3] = ['hm-rpc.0.', 'HmIP-eTRV' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[4] = ['hm-rpc.0.', 'HmIP-WTH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[5] = ['hm-rpc.0.', 'HmIP-WTH-2' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[6] = ['hm-rpc.0.', 'HmIP-STH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[7] = ['hm-rpc.0.', 'HmIP-STHD' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[8] = ['hm-rpc.0.', 'HmIP-eTRV-2' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[9] = ['hm-rpc.0.', 'HmIP-eTRV-B' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.SET_POINT_MODE', true, '1.ACTUAL_TEMPERATURE', '1.SET_POINT_MODE', 12, 0]; ThermostatTypeTab[10] = ['hm-rpc.0.', 'HmiP-BWTH' , 'Heizkoerperthermostat(HMIP)','IPWT', '1.SET_POINT_TEMPERATURE', true, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; var HeizungGewerk = "Heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein. var allRooms = getEnums('rooms'); // Lade alle Raeume var rooms = {}; // jetzt Thermostate einlesen // Lade alle Raeume for (var i in allRooms) { // loop ueber alle Raeume var roomName = allRooms[i].name; for (x in ThermostatTypeTab) { $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) { log("Ein Thermostat wurde im Raum " + roomName + " gefunden."); }); }; };
Das ist die Ausgabe davon:
3.10.2019, 12:47:36.836 [info ]: javascript.1 Start javascript script.js.Heizung.Test 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Badezimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Schlafzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden. 3.10.2019, 12:47:36.836 [info ]: javascript.1 script.js.Heizung.Test: registered 0 subscriptions and 0 schedules 3.10.2019, 12:47:38.253 [info ]: javascript.1 Stop script script.js.Heizung.Test
Es werden also in jeden Raum Thermostate gefunden.
Ich habe dann im Srcript von @looxer01 nach Zeile 657 mal eine Debug-Ausgabe eingefügt.for (x in ThermostatTypeTab){ // loop ueber die moeglichen Thermostattypen hmrpc = ThermostatTypeTab[x][0]; devTypeThermTab = ThermostatTypeTab[x][1].toUpperCase(); StateDP = ThermostatTypeTab[x][4]; $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) { log("Ein Thermostat wurde im Raum " + roomName + "gefunden") idExtract = id.substr(0,id.length - StateDP.length - 1); fullname = getObject(id).common.name; devtype = getObject(idExtract).native.TYPE.toUpperCase();
12:51:48.079 info javascript.0 Start javascript script.js.Heizung.Heizungssteuerung 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Badezimmer wird jetzt ueberprueft 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Routine getdevice fuer Wohnzimmer 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Routine GetDevices fuer HM Thermostate Wohnzimmer - hm-rpc.0.,HmIP-eTRV-2,Heizkoerperthermostat(HMIP),IPHT,1.SET_POINT_TEMPERATURE,false,1.CONTROL_MODE,false,1.ACTUAL_TEMPERATURE,1.CONTROL_MODE,12,0 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden 12:51:48.079 info javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
Und siehe da, außer im Raum "Wohnzimmer" wird der Code her nicht ausgeführt.
Hat hier jemand eine Idee?EDIT:
Ich habe mal das HMIP-Thermostat aus dem Raum "Wohnzimmer" entfernt und dem Raum "Schlafzimmer" hinzugefügt. Jetzt findet das Script im Schlafzimmer das HMIP-Thermostat aber die anderen beiden immer noch nicht.
Scheint wohl irgendwie mit dem Thermostattyp zusammen zu hängen.Gruß,
dsiggi -
Hallo zusammen,
kann mir mal jemand Hilfestellung zu den Fensterkontakten vom MiHome liefern ? Ich habe jetzt 2 Stunden gesucht , komme aber nicht weiter.
Wie kann ich die Xiaomi Fensterkontakte ins Script einbinden für die Steuerung ?
Wahrscheinlich habe ich schon zuviel gelesen und überlesen.
-
@MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
Hallo zusammen,
kann mir mal jemand Hilfestellung zu den Fensterkontakten vom MiHome liefern ? Ich habe jetzt 2 Stunden gesucht , komme aber nicht weiter.
Wie kann ich die Xiaomi Fensterkontakte ins Script einbinden für die Steuerung ?
Wahrscheinlich habe ich schon zuviel gelesen und überlesen.
HAllo, sehe ich das richtige das ich jeden Raum Sensor (Für Fenster) dort manuell hinterlegen muss ?
Wie ich es unter **NoneHMSenor gemacht habe ?// Tabelle der Verschlusssensoren fuer NichtHomematic Geräte // 5 = wenn script die Absenktemperatur setzen soll, dann false var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2. Datenpunkt Geraet 3. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5. TempAbsenkung automatisch NoneHMSenorTab[0] = ['initial', 'javascript.0.Heizung.Heizplan', 'Wohnzimmer' , 'TestZusaetzlichesFenster' , false, false,]; NoneHMSenorTab[1] = ['initial', 'fhem.0', 'OG_DU_TF' , 'state' , 'closed', false]; NoneHMSenorTab[2] = ['initial', 'maxcube.0.devices', '', 'contact_0a9d75', 'opened', false]; NoneHMSenorTab[3] = ['initial', 'javascript.0.Heizung', 'zwave1', 'isOpen', 'false', false]; NoneHMSenorTab[4] = ['initial', 'javascript.0.Heizung', 'zwave1', '4.Fenster', 'false', false]; **NoneHMSenorTab[5] = ['Buero', 'mihome.0.devices', 'magnet_158d0002047172', 'state', 'false', false];**
-
Ja genau. Das klappt dann aber auch 1a.
Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script. -
Hallo,
Ich probier schon einige Zeit das Script zum laufen zu bringen. Leider scheitere ich hoffnungslos.
Ich hab wie beschrieben und weiter oben geschrieben in der CCU die Gewerke und Räume angelegt und zugewiesen alsauch in den Aufzählungen in ioBroker.Hier die CCU Gewerke:
und die CCU Räume:
weiters die ioBroker Gewerke
und die ioBroker Räume
und hier noch das Script mit den Einstellungen und den Warnungen.
Ich hoffe es kann mir jemand helfen. Ich will so ein tolles Script nicht wieder entfernen.
Danke im Voraus.
-
Versuch mal die Thermostat manuell im Script zu erfassen.
Ich hatte auch Probleme das nichts über Gewerke und Raum erkannt wurde. Manuelle eingetragen hat dann alles bestens funktioniert. -
@kaschperle83 sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
Ja genau. Das klappt dann aber auch 1a.
Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script.und wie hast Du mit mehren Fenster in einen Raum gemacht ? Der Raum Name soll ja nur 1x vorkommen !
-
Hallo zusammen.
Bin neu im Forum bzw. beschäftige mich erst seit kurzem mit dem iObrocker habe sonst alles mit FHEM gemacht. Würde jetzt aber gerne umsteigen. Jetzt meine frage: Kann ich dieses Skript auch benutzen wenn ich keine CCU besitze? Habe alles über einen RPI und dem HM_Lan Adapter verbunden.
-
Hallo,
Ich hab hier geschrieben, dass ich das Script nicht zum laufen bringe.
STATUSÄNDERUNG! ES LÄUFT!
Hier meine Änderung.
Da bei allen Beschreibungen immer die Rede von Gewerken ist, habe ich in ioBroker eine neue Haupt-Aufzählung erstellt die so heißt: enum.gewerke.Heizung
Funktionierende Version:
Jetzt hab ich unter den Funktionen eine neue Aufzählung erstellt die so heißt: enum.functions.HeizungIch hoffe dies hilft jemanden.
mfG
Johann -
Leider hab ich jetzt beim importieren von den Views probleme.
Beim Import kommt 3 mal diese Fehlermeldung: Cannot render view HZ_SZ. Invalid settings
(HZ_SZ) ist der View-Name.Fehlen hier Adapter ? z.B. Visualisierungsadapter ?
Wenn ja, welche?
Oder was kann Schuld an dem Problem sein?Danke für die Hilfe.
-
Fehler selber entdeckt.
Das sind NICHT die Views! Man muss diese als Widgets importieren.
Da ist wohl eine falsche Benennung Schuld. In der Doku zur View Erstellung stehts richtig. -
@MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
@kaschperle83 sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
Ja genau. Das klappt dann aber auch 1a.
Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script.und wie hast Du mit mehren Fenster in einen Raum gemacht ? Der Raum Name soll ja nur 1x vorkommen !
Und @kaschperle83 sieht das so richtig aus ? Weil irgendwie will es nicht richtig reagieren.
//NoneHMSenorTab[7] = ['Esszimmer', 'javascript.0.Heizung', 'Fenster.Esszimmer', 'state', 'false', false]; NoneHMSenorTab[8] = ['Buero', 'javascript.0.Heizung.Fenster.', 'Buero', 'false', 'false', false]; //NoneHMSenorTab[9] = ['Marie', 'javascript.0.Heizung', 'Fenster.Marie', 'state', 'false', false];
Hier das LOG dazu...
Obwohl das Fenster geschlossen ist auch im Datenpunkt meldet das Log Buero "geöffnet" !
-
Hallo,. ich habe dieses wunderbare Script auch schon länger im Einsatz.
Jetzt habe ich das erste Homematic IP Thermostat gekauft, dieses wird beim Programm Durchlauf leider nicht erkannt.- Zuordnung Gewerk passt
- Zuordnung hm-rpc Instanz passt
- Neustart Rega und hm-rpc
Habe ich irgend etwas übersehen was ich noch einstellen muss?
Lg Mike
-
Hi,
man kann diesen Thread auch schließen.Antworten kommen vom Entwickler oder Sonstigen User auch nicht mehr.
Fragen bleiben leider unbeantwortet !
-
-
@sigi234 sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
https://forum.iobroker.net/topic/22579/adapter-heatingcontrol
Naja, so ganz das gleiche wie dieses hier ist Heatingcontrol ja nun mal gar nicht.
-
Hallo,
Bei mir haben diese Einträge geholfen.
Für IP Gruppen:
ThermostatTypeTab[1] = ['hm-rpc.3.', 'HmIP-HEATING' , 'Heizungsgruppe(HMIP)' ,'VD', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.SET_POINT_MODE', 12, 0];Für IP-Thermostat:
ThermostatTypeTab[7] = ['hm-rpc.1.', 'HmIP-WTH-2' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];Und für Heizkörper Thermostat:
ThermostatTypeTab[10] = ['hm-rpc.1.', 'HmIP-eTRV-2' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];Funktioniert bei mir in der Reihenfolge: Gruppen, Raumthermostat, Heizkörper Thermostat.
Versuchen kan mans ja.
Heatingcontrol wird glaube ich noch etwas brauchen.
Lg