NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Hi Looxer,
ich bitte dich nochmal um Hilfe.
Mir ist vor kurzem aufgefallen, dass meine (also deine) Heizungssteuerung nicht mehr läuft. Aufgrund der aktuellen Wetterlage, kann ich allerdings nicht mehr sagen seit wann.
Die Views der einzelnen Räume zeigen durchweg keine Werte, also jedes Feld ist leer.
Wenn ich das Script neustart kommen sehr viele Warnungen:
` > javascript.0 2018-07-05 22:29:13.986 warn at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:422:9)
javascript.0 2018-07-05 22:29:13.986 warn at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-05 22:29:13.986 warn at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-05 22:29:13.986 warn at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1389:25)
javascript.0 2018-07-05 22:29:13.985 warn at SelectSwitchTime (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1541:24)
javascript.0 2018-07-05 22:29:13.985 warn getState "javascript.0.Heizung.Heizplan.Wohnzimmer.Profil-1.undefined_1_bis" not found (3)</anonymous> `
gefolgt von einem Error:
` > javascript.0 2018-07-05 22:29:13.990 error at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:422:9)javascript.0 2018-07-05 22:29:13.989 error at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-05 22:29:13.989 error at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-05 22:29:13.989 error at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1409:45)
javascript.0 2018-07-05 22:29:13.988 error Error in callback: TypeError: Cannot read property 'substr' of undefined</anonymous> `
Hast du eine Idee?
Ich habe vor ein paar Wochen ein Backup einspielen müssen, kann aber wie gesagt nicht sagen, seit wann der Fehler mit dem Scrikt auftritt.
Das Problem mit den Raumnamen habe ich schon ausgeschlossen…
Grüße, Rob
-
Hi Rob,
sorry, für die späte Antwort - war unterwegs.
kannst du mal folgende checks machen ?
bei den Thermostaten: (standard Objekte)
-
Sind die Räume in der Objektliste zugeordnet ?
-
Sind die Gewerke in der Objekt liste zugeordnet ?
Die Fehler deuten auf Fehlzuweisungen hin.
Es gab beim letzten REGA adapter update ein Problem mit Zuweisungen mit unterschiedlichen Zuweisungen innerhalb eines Kanals.
Also z.B.
Objekt xyz , Kanal 1
Datenpunkg 1 = Gewerk 1
Datenpunkt 2 = kein Gewerk
Dann wird für all Datenpunkte nur ein Gewerk1 verwendet auch wenn Datenpunkt 2 kein Gewerk in der CCU hat.
Schau dir also mal die Zuordnungen genauer an.
vG Looxer
-
-
Hi looxer,
Danke für deine Antwort!
Scheint schonmal die richtige Fährte zu sein. Die Gewerke und Räume waren tatsächlich nicht vollständig in allen Kanälen der einzelnen Geräte benannt.
Nachdem ich das korrigiert habe, sind zumindest mal alle Warnungen verschwunden.
Was geblieben ist, sind leider noch die Fehlermeldungen:
` > javascript.0 2018-07-09 22:05:54.724 error at Object. <anonymous>(script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:471:9)javascript.0 2018-07-09 22:05:54.724 error at LoopRooms (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:766:13)
javascript.0 2018-07-09 22:05:54.723 error at LoopDevices (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:868:13)
javascript.0 2018-07-09 22:05:54.723 error at ExecuteTempDetermination (script.js.Heizungssteuerung.Heizthermostatsteuerung_2_0:1409:45)
javascript.0 2018-07-09 22:05:54.722 error Error in callback: TypeError: Cannot read property 'substr' of undefined</anonymous> `
an den Views hat sich bisher nichts geändert. Übrigens steht bei letzter Programmdurchlauf teilweise irgendein älteres Datum und teilweise das aktuelle Datum, ohne dass sich sonst irgendetwas unterscheidet.In den Objekten unter javasript / Heizung / Heizplan / Raumname / Source_Last_Program_Run ist es jeweils das gleiche Datum wie im dazugehörigen View.
Macht es eventuell Sinn den kompletten Objektbaum zu löschen und durch Skriptneustart neu anlegen zu lassen bzw. zu prüfen, ob es überhaupt angelegt wird?
Grüße, Rob
-
Hi Rob,
Nachdem ich das korrigiert habe, sind zumindest mal alle Warnungen verschwunden. `
das ist schon mal gut. Ich glaube aber, dass da noch mehr dran hängt.Es gab in der letzten Zeit mehrere Änderungen am Rega Adapter. Es kann sein, dass deine Konstellation damit Probleme macht (Beispiele: Übersetzungen von CCU Standardtexten und CCU Gewerke/Raumzuweisungen.
Könntest du mal testen ob die alte REGA Adapter Version mit dem Script bei dir läuft.
Also
-
erstmal eine Sicherung machen
-
dann auf die drittletzte version des REGA adapters gehen
-
und testen.
Wenn es das ist, dann am Besten mal alle Aufzählungen in ioBroker löschen (hoffentlich hast du keine individuellen) und dann neu synchen. Wenn es dann noch funktioniert mit dem alten REGA adapter, dann auf den neuesten wieder zurückgehen.
vG Looxer
-
-
Moin Looxer,
Danke für deine Geduld.
Hab deine Anleitung befolgt, leider ohne Erfolg.
Hatte es auch mit downgrades auf mehrere frühere Versionen versucht und auch mit dem Löschen aller Aufzählungen.
Jetzt sind die Warnungen auch wieder mit dabei.
Wenn ich irgendeine Einstellung im View vornehme kommt es ebenfalls zu den Warnungen und Error im log.
Grüße, Rob
-
Hi Rob,
kein Problem,
ich bin zur Zeit beruflich unterwegs (wie so oft :shock: )
evt kann ich per Teamviewer am WE bei dir mal reinschauen, wenn du magst.
Sende mir einfach eine PN.
vG Looxer
-
Hey Looxer,
ich hatte gestern mal den kompletten Objektbaum des Heizplanes und das Skript gelöscht und dann das Skript neu eingepflegt.
Und siehe da, plötzlich ging wieder alles…
Woran es nun gelegen hat, kann ich leider nicht sagen, aber ich vermute mal, dass es mit der Wiederherstellung des Backups zu tun hatte.
Vielen Dank für dein Angebot mit der Teamviewer-Hilfe, sollte es im Laufe doch wieder nicht hinhauen, würde ich gerne nochmal darauf zurückkommen.
Schönes Wochenende und
Grüße, Rob
-
ich hatte gestern mal den kompletten Objektbaum des Heizplanes und das Skript gelöscht und dann das Skript neu eingepflegt.
Und siehe da, plötzlich ging wieder alles… `
strange :shock:keine Ahnung was da falsch war. Aber gut, dass es jetzt wieder geht.
vG Looxer
-
Gibt es eine Möglichkeit, den HMIP Fußbodenheizungsaktor "FAL24-C10 " einzubinden und Temperatur Sollwerte vorzugeben?
Leider ist dies nämlich ansonsten nur über Direktverknüpfungen zu HMIP Wandthermostaten möglich. :roll:
-
Gibt es eine Möglichkeit, den HMIP Fußbodenheizungsaktor "FAL24-C10 " einzubinden und Temperatur Sollwerte vorzugeben?
Leider ist dies nämlich ansonsten nur über Direktverknüpfungen zu HMIP Wandthermostaten möglich. :roll: `
Hi,
Nur, wenn du auch manuell eine Temperatur vorgeben kannst. Ich vermute mal, dass das nicht der Fall ist.
Zumindest sehe ich im ScrPrint keinen Datenpunkt für die SollTemp.
Darüber hinaus sollte doch auch die Ist Temp eine Rolle spielen. Ich vermute mal, dass die zwingend vom Thermostat kommt und nicht vom Aktor.
In diesem Fall sehe ich keine Möglichkeit der Steuerung.
vG Looxer
-
Hallo zusammen,
ich bin aktuell beim Umsteigen von der CCU2 auf IOBroker, natürlich darf da die Heizungssteuerung auch nicht fehlen.
Meine, aktuell 2, Thermostate werden in IOBroker erfolgreich erkannt.
Das Script habe ich auch eingebunden, aber ich bekomme da Warnungen und irgendwie habe ich das Gefühl das die entrechenden Datenpunkte nicht erstellt werden (Kann zumindest nirgends was finden.).
UseRoomList ist bei mir auf false, da ja nur 2 Räume aktuell. Kann es daran liegen, das die Räume hier ein Leerzeichen drin haben?
Als Fehler bekomme ich folgendes:
16:09:30.859 [error] javascript.0 script.js.common.Heizung: script.js.common.Heizung:576 16:09:30.859 [error] javascript.0 at getDevices (script.js.common.Heizung:576:32) 16:09:30.859 [error] javascript.0 at initializeData (script.js.common.Heizung:346:5) 16:09:30.859 [error] javascript.0 at script.js.common.Heizung:339:1
Vielleicht hat ja wer ein Tipp was ich hier falsch machen könnte.
VG
Lindi
-
Hi Lindi,
Kann es daran liegen, das die Räume hier ein Leerzeichen drin haben? `
ja, genau. Das Thema hatten wir schon einmal. Leerzeichen sind leider keine gute Idee bei Raumnamen.
vG Looxer
-
Danke, lag wirklich daran, nun habe ich aber folgenden Fehler:
19:46:48.410 [info] javascript.0 Stop script script.js.common.Heizung 19:46:49.105 [info] javascript.0 Start javascript script.js.common.Heizung 19:46:49.105 [error] javascript.0 script.js.common.Heizung: C:\ioBroker\node_modules\iobroker.javascript\javascript.js:2207
Was ist das wieder?
-
Hi Lindi,
könntest du dein Programm mit den Einstellungen posten ?
Ich vermute, dass es ein Problem bei den Einstellungen ist.
Das Programm läuft schon seit langem fehlerfrei. Meist sind Fehler durch Probleme bei den Räumen/Gewerken oder durch falsche Einstellungen verursacht.
vG Looxer
-
Hallo,
ich vermute auch das irgendwo in den Einstellungen was falsch ist.
hier mein Script:
// Integrierte Heizungsthermostatsteuerung //------------------------------------------------------------------------------ // Beginn Generelle Einstellungen // werden an dieser Stelle benoetigt - Einstellungen sind nur in Spezialfaellen notwendig //------------------------------------------------------------------------------ // Anpassung nur wenn unbedingt notwendig. Hier ist der Ansatz um z.B. Einliegerwohnungen separat zu steuern var JSPath = "javascript.0."; // JS- Pfad var path = JSPath + 'Heizung.Heizplan'; // Pfad fuer create states var Gparameterpath = path + ".GlobaleParameter"; // Pfad in die Globalen Parameter var ICALPath = "ical.0.events"; // Pfad zu den ICAL events zur Profilauswahl //------------------------------------------------------------------------------ // Ende Generelle Einstellungen // Usereinstellungen sind Einstellungen, die ueblicherweise gemacht werden //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Beginn USER Einstellungen //------------------------------------------------------------------------------ // Gewerke - wichtige Einstellung, da nur die Geraete eingelesen werden, die im Gewerk vorhanden sind // Das Gewerk muss alle Thermostate bzw Sensoren enhalten var HeizungGewerk = "funcHeating"; // diesem Gewerk muessen alle Thermostate zugeordnet sein. var SensorGewerk = "funcLock"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein. // Alle x Minuten wird gecheckt ob die SollTemp angepasst werden muss - Empfehlung wenn cron dann 5 // Wenn Wert = 0 ist dann läuft das Skript über Events (empfohlener Weg) var cron = 0; // Raumliste - empfohlen zu benutzen fuer kleine Systeme // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil) // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte var UseRoomList = false; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet var RoomList = []; RoomList[0] = ['Kinderzimmer_Lucca']; // Liste der Raeume die gesteuert werden soll zum Testen RoomList[1] = ['Kinderzimmer_Yannik']; // Liste der Auszuschliessenden Homematic Sensoren // Falls ein Raum Sensoren hat die zu "Verschluss" gehören aber pot. nichts mit einem Öffnungszustand zu tun ChckAbsenkung // kann man diese ausschliessen var ExcludeHMSensors = []; ExcludeHMSensors[0] = ''; // Liste des STATE-Datenpunkts (z.B. hm-rpc.0.NEQXXXXX.1.STATE) von Sensoren die nicht beachtet werden sollen ExcludeHMSensors[1] = ''; // Anzahl der Profile. i.d.R. sollten maximal 3 Profile genuegen - Profile werden z.B. fuer Events aus ICAL verwendet var MaxProfile = 3; // Maximal genutzte Profile pro Raum (gering halten ) Zahl zwischen 1 und 9 // Das ist die Temperatur, die eingestellt wird, wenn erkannt wird, dass ein Verschluss eines Raumes geoeffnet ist (z.B bei nicht direktverknuepften Geraeten) var VerschlussAbsenkungsGrenze = 5; // erweitertetes Logging im ioBroker log bei true var debug = false; // Logging in externe Datei - Achtung der Pfad muss fuer MS-Windows bzw IOS angepasst werden var LogFlag = false; // logging enabled var LogPath = "/opt/iobroker/iobroker-data/HeizungsthermostatLOG.csv"; // Pfad und Dateiname des externen Logs var OnlyChanges = false; // bei true wird nur geloggt wennn eine neue Solltemperatur geschrieben wird // 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 = 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 = false; // 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 //------------------------------------------------------------------------------ // Ende USER Einstellungen // Usereinstellungen sind Einstellungen, die ueblicherweise gemacht werden //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Beginn Experteneinstellungen // Experteneinstellungen sollten nur geamcht werden, wenn die Logik des Programmes bekannt ist //------------------------------------------------------------------------------ // Pfad zum Anwesenheitsflag der Hz-Steuerung - wird parallel zum Adapter gehalten var StateAnwesenheit = JSPath + "Heizung.Heizplan.GlobaleParameter.Anwesenheit"; // Pfad zum Feiertagskennzeichen der Hz-Steuerung - wird parallel zum Adapter gehalten var StateFeiertagHeute = JSPath +"Heizung.Heizplan.GlobaleParameter.Feiertag_Heute"; // die States sollten moeglichst so belassen werden - das Programm laesst aber Aenderungen zu var StatePartyjetzt = Gparameterpath + ".Partyjetzt"; // ID Party Jetzt flag var StateGaesteDa = Gparameterpath + ".GaesteDa"; // ID Gaeste da flag var StateUrlaubAnwesend = Gparameterpath + ".Urlaub_Anwesend"; // Wenn kein Arbeitstag, dann wird der Tag wie ein Sonntag behandelt var StateUrlaubAbwesenheit = Gparameterpath + ".Urlaub_Abwesend"; // Temperaturabsenkung wenn laengerer Urlaub eingetragen ist var StateHeizperiode = Gparameterpath + ".Heizperiode"; // Wenn Heizperiode false werden alle Ventile geschlossen // Die ThermostatTypeTab definiert die Thermostat Typen. So sollte es moeglich sein auch z.B. HM-IP einzubinden // Achtung zentrale Steuerungen muessen immer zuerst eingetragen sein. // Steuerung zentral heisst, dass dieses Geraet evt abhaengige Geraete steuert, wenn false, dann werden abhaengige Geraete gleich behandelt // Wenn mit Direktverbindungen gearbeitet wird dann MUSS zentrale Steuerung auf true stehen var ThermostatTypeTab = []; // 0.RPC-Pfad 1.GeraeteType 2\. Beschreibung, 3\. Type 4.DP-SollTemp 5.nicht verwendet ID 6.DP MANU/AUTO Schaltung 7.Steuerung DV 8\. IstTemp 9-Check-MANU-Mode 10-Ventilstellung wenn nicht Heizperiode 11\. Delay nach Verschluss zu ThermostatTypeTab[0] = ['hm-rpc.0.', '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.0.', 'HM-CC-TC' , 'Wandthermostat (alt)' ,'WT', '2.SETPOINT' , false, false, false, '1.TEMPERATURE', false, 12, 0]; ThermostatTypeTab[2] = ['hm-rpc.0.', '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.1.', '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.1.', 'HmIP-eTRV-2' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[5] = ['hm-rpc.1.', 'HmIP-WTH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[6] = ['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]; ThermostatTypeTab[7] = ['hm-rpc.1.', 'HmIP-STH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; ThermostatTypeTab[8] = ['hm-rpc.1.', 'HmIP-STHD' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0]; // Tabelle fuer Nicht HM Thermostate - Details finden sich in der Dokumentation // wurde zum Testen verwendet, da auch virutelle Thermostate verwaltet werden koennen. // Wenn nicht HM Geraete korrekt in ioBroker angebunden sind sollten diese auch ueber die Tabelle ThermostatTypeTab konfigurierbar sein //Spalte 1 = Raumname wie in der CCU hinterlegt //Spalte 2 = Erster Teil des Datenpunktpfades mit Instance wie z.B. "hm-rpc.0" //Spalte 3 = Zweiter Teil des Datenpunktpfades mit der ID des Geraetes z.B. "MEQ0183268" //Spalte 4 = Dritter Teil des Datenpunktpfades mit dem Datenpunkt der die Solltemperatur des Geraetes einstellt z.B. "4.SET_TEMPERATUR" // var NoneHMTab = []; // 0 = Raum 1 = Datenpunkt bis vor Geraet 2=Datenpunkt Geraet 3=Datenpunkt SollTemp 4= Ventilstellung bei NichtHeizperiode NoneHMTab[0] = ['initial', 'javascript.0.Heizung', 'zwave1', '4.SET_TEMPERATURE', 12]; NoneHMTab[1] = ['initial', 'ZWAVE.0', 'zwa0183xxx', '4.SET_TEMPERATURE', 12]; NoneHMTab[2] = ['initial', 'maxcube.0.devices', 'thermostat_197b0b', 'setpoint', 12]; // Typen-Tabelle der Verschlusssensoren fuer Homematic Geräte // 6 = Verschlussstatus = false ist gechlossen var SensorTypeTab = []; // 0.RPC-Pfad 1.GeraeteType 2\. Beschreibung, 3.Type 4.DP Status 5.nicht verwendet 6\. Verschlussstatus 7\. direktverknuepft SensorTypeTab[0] = ['hm-rpc.0.', 'HM-Sec-SCo' , 'Fenstersensor (neu)' , 'HM', '1.STATE' , false, false, true ]; SensorTypeTab[1] = ['hm-rpc.0.', 'HM-Sec-SC' , 'Fenstersensor (alt)' , 'HM', '1.STATE' , false, false, true ]; SensorTypeTab[2] = ['hm-rpc.0.', 'HM-Sec-RHS' , 'Fenster-Drehgriffkontakt', 'HM', '1.STATE' , false, false, true ]; SensorTypeTab[3] = ['hm-rpc.0.', 'HM-Sec-SC-2', 'Fenstersensor-2 (alt)' , 'HM', '1.STATE' , false, false, true ]; SensorTypeTab[4] = ['hm-rpc.1.', 'HMIP-SWDO' , 'Fenstersensor (HMIP )' , 'IPSE', '1.STATE' , false, false, true ]; SensorTypeTab[5] = ['hm-rpc.2.', 'HMW-Sen-SC-12-DR','Schließerkontakt HMW' , 'HM', '1.STATE' , false, false, false ]; // 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', 'zwave1' , '1.State' , false, false]; NoneHMSenorTab[1] = ['initial', 'fhem.0', 'OG_DU_TF' , 'state' , 'closed', false]; NoneHMSenorTab[2] = ['initial', 'maxcube.0.devices', 'contact_0a9d75', 'opened', false, true]; // Mit der Tabelle OverruleTab kann die Logik der Temperaturanpassungen beeinflusst werden (Sobald eine Anpassung erfolgt wird der Vorgang Overrule abgebrochen) // Die Tabelle kann als Prioritätenliste verstanden werden, wenn mehrere Parameter gleichzeitig zutreffen sollten. // Die Logik wird fuer jeden Raum ausgefuehrt var OverruleTab = []; OverruleTab[0] = ["Abwesenheit"]; // Bei Abwesenheit wird die Temperatur der entsprechend Eisntellung abgesenkt OverruleTab[1] = ["UrlaubAnwesend"]; // Urlaubsanwesenheit / beeinflusst nicht direkt die Solltemp - ist aber wichtig fuer die Schedule Findung OverruleTab[2] = ["UrlaubAbwesend"]; // Urlaubsabwesenheit - OverruleTab[3] = ["Gaeste"]; // Temperatur Anhebung OverruleTab[4] = ["Party"]; // Partyabsenkung // Bei Verwendung des Widgets Select-value List werden die Temperaturen nicht als Grad gespeichert var VerwendungSelectValue = true; // Weitere Pfade fuer die globalen Parameter - Empfehlung ist keine Aenderung vorzunehmen var StatePP_PartyAbsenkung = "ProfilParameter_PartyAbsenkung"; var StatePP_GaesteAnhebung = "ProfilParameter_GaesteAnhebung"; var StatePP_AbwesenheitAbsenkung = "ProfilParameter_AbwesenheitAbsenkung"; var StatePP_UrlaubAbsenkung = "ProfilParameter_UrlaubAbsenkung"; var StatePP_UrlaubWieFeiertag = "ProfilParameter_UrlaubWieFeiertag"; var StatePP_MinimaleTemperatur = "ProfilParameter_MinimaleTemperatur"; // UserExit Einstellungen // UserExits koennen genutzt werden, um die manuelle Temperatur von selbstdefinierten Abhängigkeiten zu steuern // Beipiel Steuerung von ElektroKonvektoren abhängig vom Energieertrag einer PV // Es koennen beliebig viele Eintragungen gemacht werden // // Die Datenpunkte werden nicht angelegt sondern muessen separat angelegt wreden // UserEexitTab Tabellendefinition: // 0 = Datenpunkt = Pfad Datenpunkt aufgrund dessen eine Reaktion erfolgen soll und Definition bei welchem Ereignis eine Reaktion erfolgen soll // 1 = Name der Routine - Routine muss im Userexit definiert sein // 2 = Operand - zulaessige Operanden sind // groesser = "valGt" // groesser gleich = "valGe" // kleiner = "valLt" // kleiner gleich = "valLe" // gleich = "val" // ungleich = "valNe" // beliebiege Aenderung = "Any" // 3 = Wert - Vergleichswert der die Routine auslöst (im Zusammenhang mit dem Operanden // Sobald eine Bedingung zutrifft wird der UserExit aufgerufen. Die zugehoerige Routine wird zu anfang des UserExits ermittelt und kann dann weiterverarbeitet werden // Rueckgabe des UserExits ist ein Raumname sowie eine manuelle Temperatur und Gueltigkeit in Minuten. Die Temperatur wird dann entsprechend mit der Gueltigkeit gesetzt // ist die manuelle Temperatur = 0 wird eine evt. vorher eingestellte manuelle Temperatur gelöscht und die neue SollTemperatur wird anhand des schedules ermittelt var UserExitTab = []; // 0 = Datenpunkt 1= Routine 2=Operand 3= Vergleichswert UserExitTab[0] = ['initial', 'TriggerHeatingOn', 'valGt', 100 ]; UserExitTab[1] = ['initial', 'TriggerHeatingOff', 'valLt', 0 ]; // es sind 5 globale Tabellen vordefiniert. Werden diese im UserExit befuellt bleiben die Werte erhalten für den nächsten Aufruf var UserExitValueTab1 = []; var UserExitValueTab2 = []; var UserExitValueTab3 = []; var UserExitValueTab4 = []; var UserExitValueTab5 = []; //------------------------------------------------------------------------------ // Ende Experteneinstellungen //------------------------------------------------------------------------------</profilnummer></raumname></profilnummer>
Ich habe 2 Zimmer, unter Aufzählungen stehen sie als Kinderzimmer_Lucca und Kinderzimmer_Yannik. Oder muss ich enum.rooms.Kinderzimmer_Yannik und enum.rooms.Kinderzimmer_Luca eintragen?
Unter Funktion in Aufzählung stehen die Gewerke als: funcHeating und funcLock.
In der CCU stehen die Gewerke aber als Fenster und Heizung. Denke aber das aus dem IOBroker muss drin stehen oder?
Ich hoffe das hilft weiter.
VG
Lindi
-
Hallo,
ich hatte das Skript schon laufen allerdings musste ich durch einen Fehler Iobroker neu aufsetzen. Did Vis sind erhalten geblieben. Das Skript allerdings nicht. Habe alles wieder eingestellt aber trotzdem läuft es nicht richtig. Ein Raum und zwar Bad geht aber bei allen anderen Views erscheint "init durch iCal Event init" und ich kann einstellen was ich will es passiert nichts.
Gesendet aus Hessen.
-
Gibt's eigentlich auch die Möglichkeit Xiaomi Fensterkontakte zu integrieren?
Gesendet von meinem ONEPLUS A3003 mit Tapatalk
-
Ich habe 2 Zimmer, unter Aufzählungen stehen sie als Kinderzimmer_Lucca und Kinderzimmer_Yannik. Oder muss ich enum.rooms.Kinderzimmer_Yannik und enum.rooms.Kinderzimmer_Luca eintragen?
Unter Funktion in Aufzählung stehen die Gewerke als: funcHeating und funcLock.
In der CCU stehen die Gewerke aber als Fenster und Heizung. Denke aber das aus dem IOBroker muss drin stehen oder? `
Hi,
zunächst mal sorry für meine verzoegerten Antworten. Leider bin ich z.Zt. und immer noch stark beruflich eingebunden.
Deine Antwort hilft hier schon gut weiter.
- Die Raumliste kannst du nutzen, musst du aber nicht. Die Raumnamen scheinen mir korrekt zu sein.
Wenn du die Raumliste nicht nutzt, dann werden die Räume automatisch erkannt
- Die Gewerke sind definitiv das Problem bei dir. Die Ursache liegt in der CCU. Wenn die Standardeintragungen nicht geändert werden, dann erscheinen diese als englische Namen in ioBroker.
Lösung: geht in die CCU und ändere die Gewerke Fenster und Heizung z.B. auf Fenster1 und Heizung1 und speichern.
Anschliessend wieder zurück ändern.
Damit sollte das Problem gelöst sein.
vG Looxer
-
ich hatte das Skript schon laufen allerdings musste ich durch einen Fehler Iobroker neu aufsetzen. Did Vis sind erhalten geblieben. Das Skript allerdings nicht. Habe alles wieder eingestellt aber trotzdem läuft es nicht richtig. Ein Raum und zwar Bad geht aber bei allen anderen Views erscheint "init durch iCal Event init" und ich kann einstellen was ich will es passiert nichts. `
Hi,
schalte doch mal die Kalenderfunktion aus. Scheint irgendwas damit zu tun haben.
vG Looxer
-
ibt's eigentlich auch die Möglichkeit Xiaomi Fensterkontakte zu integrieren? `
Hi,
ja klar. Unter Nicht-Homematic Geräte können beliebe Datenpunkte eingetragen werden.
Bei Öffnen eines Fensterkontaktes kann dann die Temperatur auch von nicht Homematic-Thermostaten herabgesetzt werden.
vG Looxer