NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
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
-
@sigi234 sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
https://forum.iobroker.net/topic/22579/adapter-heatingcontrol
Danke @sigi234 Das war mir bekannt,aber da fange ich ja wieder bei NULL an.
Okay ich schaue mal drüber, manchmal muss man halt was verändern. Danke für den Tip.... -
@MyMeyer Nicht ganz.
Ich habe meine Gewerke und Räume nach dem alten Script hier eingestellt und das Script bis zum Frühjahr 2019 laufen gehabt. Als dann der Adapter kam habe ich den mal kurz installiert zum ausprobieren und hatte meine Steuerung inclusive allen VIS-Seiten innerhalb von 2 Stunden umgezogen.
Die Thermostate und Fenstersensoren alleine waren innerhalb von knapp 10 Minuten angelegt.Das Problem mit dem Script hier ist das der Entwickler looxer01 richtig gute Arbeit geleistet hat, aber aus irgendwelchen Gründen seit ca. 07/2019 hier nicht mehr aktiv ist. Soweit ich sehe hat sich dann niemand sonst gefunden der dieses umfangreiche Script weitergepflegt hat. Von daher kam die Entwicklung hin zum Adapter wie gerufen.
Ein Adapter ist für uns User auch wesentlich einfacher zu handhaben als ein so umfangreiches Script. -
@Chaot sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:
@MyMeyer Nicht ganz.
Ich habe meine Gewerke und Räume nach dem alten Script hier eingestellt und das Script bis zum Frühjahr 2019 laufen gehabt. Als dann der Adapter kam habe ich den mal kurz installiert zum ausprobieren und hatte meine Steuerung inclusive allen VIS-Seiten innerhalb von 2 Stunden umgezogen.
Die Thermostate und Fenstersensoren alleine waren innerhalb von knapp 10 Minuten angelegt.Das Problem mit dem Script hier ist das der Entwickler looxer01 richtig gute Arbeit geleistet hat, aber aus irgendwelchen Gründen seit ca. 07/2019 hier nicht mehr aktiv ist. Soweit ich sehe hat sich dann niemand sonst gefunden der dieses umfangreiche Script weitergepflegt hat. Von daher kam die Entwicklung hin zum Adapter wie gerufen.
Ein Adapter ist für uns User auch wesentlich einfacher zu handhaben als ein so umfangreiches Script.@Chaot wie gesagt ich schaue es mir an. Und ich habe auch nicht gesagt das der Entwickler @looxer01 schlecht arbeitet geleistet hat. Das möchte ich doch bitte klar stellen. Schade das er nicht weiter macht, aber das soll uns egal sein. Es hat seine Gründe und gut. Schließlich ist das alles unsere private kostenlose Zeit.
Also ab zum Adapter und dann werde ich meine Frage dort im Thread stellen.
Ich benötige jetzt keine weiteren Infos zu meinem Startthread.