NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Habe mir jetzt mal die Dokumente größtenteils durchgelesen.
Da es verschiedene Aussagen gibt bezüglich steuern von Homematic IP HKT über externe Temperatursensoren wollte ich mal kurz und knapp nachfragen…
Ist es möglich mit dem Skriptpaket hier Homematic IP HKT Geräte mit z.B. Xiaomi Temperatur und Tür/Fenstersensoren zu steuern?
Meine Installation besteht und wartet jetzt nur noch auf seine Steuerfunktionen.
Meine Installation: Raspberry mit piVCCU 3.41.11 + ioBroker 3.5.10 mit 4x Homematic IP HKT, 4x Xiaomi Temperatursensoren und 6x Xiaomi Tür/Fenstersensoren mit CUxD in Homematic hinterlegt.
Auf Hinweise wäre ich dankbar.
Programmierkenntnisse sind ausreichend vorhanden um den Code und die Anpassungssachen zu verstehen, sind ja aber soweit eigentlich gut beschrieben.
-
Ist es möglich mit dem Skriptpaket hier Homematic IP HKT Geräte mit z.B. Xiaomi Temperatur und Tür/Fenstersensoren zu steuern? `
Hi,Das Script kann Xiaomi Fenster-Sensoren mit HM verbinden.
Externe Sensoren aber leider nicht, da ein Eingriff in Soft- oder Hardware der HM-Geräte erforderlich ist.
Wenn du allerdings von einer Offset Programmierung sprichst, dann wäre das grundsätzlich möglich. Dazu hatte ich mir schon Gedanken habe es aber aus zeitgründen nicht realieren können
Im Script selber gibt es eine Stelle (overrule.) die jegliche geplante Temperatur übersteuern kann. Dabei kann es zu einer negativen oder positven Abweichung zur eigentlichen SollTemp kommen was auch als Offset verstanden werden kann. Ein Offset muss ja nicht ein statischer Wert sein sondern kann auch Intelligenz erhalten. (z.B. durch externe Thermostate)
Ist es das was du dir vorgestellt hast ?
vG Looxer
-
das ist dem Widget geschuldet. Ich hätte natürlich die Gradzahlen parallel mit der Wertenummer setzen können.
Mir war es aber wichtig auch negative Werte zur Verfügung zu stellen. So kann aus einer Party Absenkung auch eine PartyAnhebung gemacht werden.
Ich hatte ja mal angefangen die Anhebungen und Absenkungen zu erweitern. Muss ich mir nochmal ansehen. `
Danke für Deine Rückmeldung. Nun, das Widget (jqui - Select ValueList) kann ja mit beiden umgehen, ich hatte oben exemplarisch bei meinem Test die Grad-Zahlen direkt eingegeben und hat so wunderbar funktioniert (nach Entfernen der Umwandlung durch die Calculate_SollTemp-Funktion in Deinem Script)
@Mic:Werte: 0;-1;-2;-3;-4;-5;-6;-7;-8;-9;-10 Texte: 0;-1;-2;-3;-4;-5;-6;-7;-8;-9;-10 ```` `
Daher denke ich, man könnte direkt auf die Grad-Zahlen umsteigen.
Noch ein weiteres Feedback zu meinen Tests bezüglich Urlaub und zwischenzeitlicher Anwesenheit:
Ich arbeite nun auch mit ical für die Urlaubsplanung (Urlaub_Abwesend). Hier wollte ich, dass im VIS angezeigt wird, ab wann, oder bis wann Urlaub_Abwesend geplant ist. Habe hierzu folgendes gemacht:
-
Separate Instanz ical Adapter, damit keine anderen Termine angezeigt werden
-
Folgendes Widget hinzugefügt:
! ````
[{"tpl":"tplValueListHtml8","data":{"oid":"javascript.1.Heizung.Heizplan.GlobaleParameter.Urlaub_Abwesend","count":"1","value0":"Aus: geplant ab {ical.1.data.html}","value1":"An: bis {ical.1.data.html}","style0":"","style1":"color: #FD3166;","test_list":"0","name":"","value2":"auf","style2":"color: red","html_prepend":"","g_visibility":true,"visibility-cond":"==","visibility-val":"true","visibility-groups-action":"hide","g_last_change":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_signals":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"g_css_shadow_padding":false,"g_css_border":false,"g_css_background":false,"visibility-oid":"javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv"},"style":{"left":"139px","top":"160px","z-index":"25","color":"","text-align":"right","width":"218px","height":"22px","line-height":"","font-size":"","font-weight":"normal","font-family":"","text-shadow":""},"widgetSet":"basic"}]Ergebnis - siehe Zeile "Urlaubsmodus" in den Screenshots: 1.) Urlaub beginnt ab 31.01.2019: ![6940_ip_hz2.png](/assets/uploads/files/6940_ip_hz2.png) 2.) Urlaub Abwesend ist aktuell im Kalender, geplant bis 29.01.2019: ![6940_ip3.jpg](/assets/uploads/files/6940_ip3.jpg) (Danke an @Hiltex - [https://forum.iobroker.net/viewtopic.php?f=30&t=20692](https://forum.iobroker.net/viewtopic.php?f=30&t=20692)) Was ich mir nun noch wünsche wäre ein Datenpunkt, dem ich sage "Bin Anwesend", damit temporär der Urlaubsmodus nicht greift. Ich arbeite nicht mit Anwesenheitserkennung, und die Widgets "Anwesend" und "Urlaub Anwesend" scheinen nicht zu greifen, wenn man sie anklickt. Hab auch schon mit "OverruleTab" im Script getestet, aber half nicht wirklich. Danke, Mic
-
-
@Mic:Was ich mir nun noch wünsche wäre ein Datenpunkt, dem ich sage "Bin Anwesend", damit temporär der Urlaubsmodus nicht greift. Ich arbeite nicht mit Anwesenheitserkennung, und die Widgets "Anwesend" und "Urlaub Anwesend" scheinen nicht zu greifen, wenn man sie anklickt. Hab auch schon mit "OverruleTab" im Script getestet, aber half nicht wirklich. `
Hi,also die Variable gibt es ja (unter global) Wenn du keine Anwesenheitserkennung nutzt kannst du sie manuell setzen.
Meinst du, dass du die über ICAL setzen willst ?
vG Looxer
-
also die Variable gibt es ja (unter global) Wenn du keine Anwesenheitserkennung nutzt kannst du sie manuell setzen.
Meinst du, dass du die über ICAL setzen willst ? `
Hi Looxer,
nein, nicht über ICAL, sondern über VIS.
Wenn ich den Datenpunkt "javascript.1.Heizung.Heizplan.GlobaleParameter.Urlaub_Anwesend" auf "true" setze, dann klappt das nicht wirklich, und das Script scheint das zu überschreiben, alle paar Sekunden springt die Status-Anzeige zwischen "Temperaturanpassung - Urlaub Abwesend" und "Urlaub anwesend - Plannung ist Feiertag". Daher hatte ich vermutet, das funktioniert nur, wenn im ICAL da zusätzlich "Urlaub_Anwesend" als Termin gesetzt ist, denn dann ging es beim Testen. Aber ich wollte das rein über VIS gelöst haben.
Viele Grüße
Mic
-
@Mic:Wenn ich den Datenpunkt "javascript.1.Heizung.Heizplan.GlobaleParameter.Urlaub_Anwesend" auf "true" setze, dann klappt das nicht wirklich, und das Script scheint das zu überschreiben, alle paar Sekunden springt die Status-Anzeige zwischen "Temperaturanpassung - Urlaub Abwesend" und "Urlaub anwesend - Plannung ist Feiertag". Daher hatte ich vermutet, das funktioniert nur, wenn im ICAL da zusätzlich "Urlaub_Anwesend" als Termin gesetzt ist, denn dann ging es beim Testen. Aber ich wollte das rein über VIS gelöst haben. `
Hi Mic,also es sollte so funktionieren
-
ICAL in VIS deaktivieren
-
dann kann Urlaub anwesend ode Urlaub abwesend gesetzt werden.
Bei Urlaub Anwesend wird lediglich der Feiertagsschedule genutzt. Also keine direkte Temperatureinstellung.
Bei Urlaub Abwesend wird eine Temp Absenkung durchgeführt.
Willst du beides gleichzeitig nutzen ?
vG Looxer
-
-
Bei Urlaub Anwesend wird lediglich der Feiertagsschedule genutzt. Also keine direkte Temperatureinstellung. `
Das ist auch prima so, macht absolut Sinn und ist intuitiv für den Anwender.also es sollte so funktionieren
-
ICAL in VIS deaktivieren
-
dann kann Urlaub anwesend ode Urlaub abwesend gesetzt werden. `
Mein Use Case wäre folgender: Wider Erwarten ist man trotz gesetzter Urlaubsplanung von x Tagen für y Tage zwischendurch zu Hause, dann drückt man einfach im VIS den Button "Bin da - Urlaub Anwesend".
ICAL ausschalten wäre da ein zusätzlicher Schritt, für mich kein Problem, aus Sicht des "WAF" wäre es halt cool, wenn das nur mit einem Button geht.
Aber bitte mach Dir hier keine Mühe, geht auch so alles prima mit dem Script und ist nur ne Kleinigkeit
-
-
Guten morgen
Ich habe es mit dem Kalender jetzt soweit eingerichtet das er auch die Profile umschaltet nur gibt er mir jetzt in Script unmengen an Warnungen raus. Woran kann das liegen?
P.S.: Wer lesen kann ist klar im Vorteil.
So das Problem ist gelöst nur kommt nun das nächste. Ich habe 3 Profile angelegt zwischen denen ich hin und her schalten kann. Früh, Spät und Nachtschicht. Spät und Nachtschicht zeigt er mirt auch an das es ein Cal Profil ist. Fei Frühschicht also Profil 1 springt er zwar auf Profil 1 um aber er zeigt nicht an das es ein Cal Profil ist.
-
Hallo,
ist es vorgesehen für das Programm eine Dash-Oberfläche für Node-Red anzubieten?
Danke …
-
Hi,
@Mic:Mein Use Case wäre folgender: Wider Erwarten ist man trotz gesetzter Urlaubsplanung von x Tagen für y Tage zwischendurch zu Hause, dann drückt man einfach im VIS den Button "Bin da - Urlaub Anwesend".
ICAL ausschalten wäre da ein zusätzlicher Schritt, für mich kein Problem, aus Sicht des "WAF" wäre es halt cool, wenn das nur mit einem Button geht. `
Dazu wäre es notwendig ICAL Aenderungen und manuelle Aenderungen gleichzeitig zuzulassen.Hatte es mir vor einiger Zeit angesehen und es wäre recht aufwendig.
So das Problem ist gelöst nur kommt nun das nächste. Ich habe 3 Profile angelegt zwischen denen ich hin und her schalten kann. Früh, Spät und Nachtschicht. Spät und Nachtschicht zeigt er mirt auch an das es ein Cal Profil ist. Fei Frühschicht also Profil 1 springt er zwar auf Profil 1 um aber er zeigt nicht an das es ein Cal Profil ist. `
ja, das kann gut sein, denn das Profil1 ist sozusagen das Standardprofil. Muss ich mir ansehen.In der nächsten Version gibt es ohnehin eine Aenderung an dieser Stelle. Dann wird das Profil1 automatisch gewählt, wenn ein vorheriges ICAL Profil eingestellt war aber ausgelaufen ist.
ist es vorgesehen für das Programm eine Dash-Oberfläche für Node-Red anzubieten? `
Das Script unterstützt das weil es keine Programmierung im Kontext zur Oberfläche gibt (eine Ausnahme gibt es, die ist aber abstellbar)Ich selber kenne das Node-Red Dashboard nicht. Willst du das evt selber einstellen. Wäre super wenn wir das zur Verfügung stellen könnten.
Wenn es Leute gibt, die mit entwickeln wollen (wie z.B. Oberflächen), dann würde ich auch schlussendlich auf Github gehen. Dort funktioniert die Collaboration gut.
vG Looxer
-
Wenn du allerdings von einer Offset Programmierung sprichst, dann wäre das grundsätzlich möglich. Dazu hatte ich mir schon Gedanken habe es aber aus zeitgründen nicht realieren können
Im Script selber gibt es eine Stelle (overrule.) die jegliche geplante Temperatur übersteuern kann. Dabei kann es zu einer negativen oder positven Abweichung zur eigentlichen SollTemp kommen was auch als Offset verstanden werden kann. Ein Offset muss ja nicht ein statischer Wert sein sondern kann auch Intelligenz erhalten. (z.B. durch externe Thermostate) `
Weißt du wie ich den Offset Wert der HKT über ioBroker beschreiben/ändern kann, dann würde ich ein Skript dafür schreiben denn die Theorie habe ich schon dafür mir fehlt nur wie ich den Wert beschreiben kann.
Geht das vielleicht nur im CCU über deren Programmierschnittstelle?
wurde von einem User auch bei github gepostet…
https://github.com/ioBroker/ioBroker.hm-rpc/issues/149
da kam folgender Hinweis...
` > foxriver76 commented 22 hours agoThe way to go for this scenario would be a helper script which configures the offset by the difference of you measurement sensor and your thermostat. I haven’t tested it but with the recent introduced sendTo commands you can control the MASTER area of your devices and should be able to configure the offset via ioBroker. `
-
Wenn du allerdings von einer Offset Programmierung sprichst, dann wäre das grundsätzlich möglich. Dazu hatte ich mir schon Gedanken habe es aber aus zeitgründen nicht realieren können
Im Script selber gibt es eine Stelle (overrule.) die jegliche geplante Temperatur übersteuern kann. Dabei kann es zu einer negativen oder positven Abweichung zur eigentlichen SollTemp kommen was auch als Offset verstanden werden kann. Ein Offset muss ja nicht ein statischer Wert sein sondern kann auch Intelligenz erhalten. (z.B. durch externe Thermostate) `
Weißt du wie ich den Offset Wert der HKT über ioBroker beschreiben/ändern kann, dann würde ich ein Skript dafür schreiben denn die Theorie habe ich schon dafür mir fehlt nur wie ich den Wert beschreiben kann.
Geht das vielleicht nur im CCU über deren Programmierschnittstelle?
wurde von einem User auch bei github gepostet…
https://github.com/ioBroker/ioBroker.hm-rpc/issues/149
da kam folgender Hinweis...
` > foxriver76 commented 22 hours agoThe way to go for this scenario would be a helper script which configures the offset by the difference of you measurement sensor and your thermostat. I haven’t tested it but with the recent introduced sendTo commands you can control the MASTER area of your devices and should be able to configure the offset via ioBroker.
Finde es schön, dass dieses Thema wieder aufgegriffen wird. Bin ja selbst auch lange Zeit auf der Suche nach einer Lösung hierfür gewesen. Habe es leider irgendwann aufgegeben, weil mir ständig gesagt wurde es würde nicht gehen. Bin gespannt wie es sich weiter entwickelt!
-
Finde es schön, dass dieses Thema wieder aufgegriffen wird. Bin ja selbst auch lange Zeit auf der Suche nach einer Lösung hierfür gewesen. Habe es leider irgendwann aufgegeben, weil mir ständig gesagt wurde es würde nicht gehen. Bin gespannt wie es sich weiter entwickelt! `
:shock: ich fürchte, dass ich euch da ein Stück weit enttäuschen muss. Mir send ebenfalls keine Möglichkeiten bekannt wie von aussen auf die HM Thermostate auf Offset oder Ist Temp zugegriffen werden kann.Worauf ich mich bezog war da eher ein Workaround, und zwar anstatt die IstTemp die SollTemp so zu beeinflussen, dass die auf die auf ebene IstTemp die SollTemp beeinflusst bis die IstTemp erreicht ist. Nicht optimal, da ja nicht direkt auf die VentilÖffnung einfluss genommen werden kann.
Dennoch vielleicht wert es mal zu testen.
Grundlage dazu kann das im ersten Post verlinkte Programm von Apollon77 sein. Dieses Programm beeinflusst die SollTemp der Heizungssteuerung, um das Überschwingen bei Fussboden Heizungen zu vermeiden. Es merkt sich die vergangenen Temperatur veränderungen und beeinflusst damit die SollTemp z.B. durch vorzeitiges Hochsetzen.
was meint ihr ?
vG Looxer
-
da muss man sich dann wohl mal FHEM anschauen und es darüber laufen lassen? Da soll es wohl funktionieren die beiden Geräte zu peeren.
Ist dann halt ein wenig unschön, da man somit 3 Systeme laufen hat mit Homematic, ioBroker und FHEM.
-
Finde es schön, dass dieses Thema wieder aufgegriffen wird. Bin ja selbst auch lange Zeit auf der Suche nach einer Lösung hierfür gewesen. Habe es leider irgendwann aufgegeben, weil mir ständig gesagt wurde es würde nicht gehen. Bin gespannt wie es sich weiter entwickelt! `
:shock: ich fürchte, dass ich euch da ein Stück weit enttäuschen muss. Mir send ebenfalls keine Möglichkeiten bekannt wie von aussen auf die HM Thermostate auf Offset oder Ist Temp zugegriffen werden kann.Worauf ich mich bezog war da eher ein Workaround, und zwar anstatt die IstTemp die SollTemp so zu beeinflussen, dass die auf die auf ebene IstTemp die SollTemp beeinflusst bis die IstTemp erreicht ist. Nicht optimal, da ja nicht direkt auf die VentilÖffnung einfluss genommen werden kann.
Dennoch vielleicht wert es mal zu testen.
Grundlage dazu kann das im ersten Post verlinkte Programm von Apollon77 sein. Dieses Programm beeinflusst die SollTemp der Heizungssteuerung, um das Überschwingen bei Fussboden Heizungen zu vermeiden. Es merkt sich die vergangenen Temperatur veränderungen und beeinflusst damit die SollTemp z.B. durch vorzeitiges Hochsetzen.
was meint ihr ?
vG Looxer `
Ja.., dass es dort keine Möglichkeit gibt (nicht nur bei HM) ist wirklich schade. Ich ging aber tatsächlich von diesem Workaround aus. Also die Soll Temp. so zu steuern, dass die entsprechend der externen Sensoren gesteuert wird. Vermutlich sowas wie immer + 1-2°C mehr einstellen damit sie aufheizt und sobald die gewünschte Temp. am externen Sensor erreicht ist Soll=IST (gemessen am HKT). o.Ä… Das würde mir dazu spontan einfallen. Allerdings müsste es dann wieder einen Offset geben. Weil die gemessene externe Temp nicht mit der am HKT übereinstimmt. Also alles doch irgendwie recht komplex.
da muss man sich dann wohl mal FHEM anschauen und es darüber laufen lassen? Da soll es wohl funktionieren die beiden Geräte zu peeren.
Ist dann halt ein wenig unschön, da man somit 3 System laufen hat mit Homematic, ioBroker und FHEM. `
Kommt aktuell für mich nicht in Frage. Erstens besitze ich z.Z. nicht die Muße mich mit FHEM zu beschäftigen, da es doch sehr Komplex ist wie mir scheint, 2. Habe ich gar kein HM :D. Es war die Überlegung darauf umzusteigen hätte es mit den externen Sensoren geklappt. 3. Mein RPI ist mit ioBroker aktuell schon RAM technisch völlig ausgelastet.
-
Ja.., dass es dort keine Möglichkeit gibt (nicht nur bei HM) ist wirklich schade. Ich ging aber tatsächlich von diesem Workaround aus. Also die Soll Temp. so zu steuern, dass die entsprechend der externen Sensoren gesteuert wird. Vermutlich sowas wie immer + 1-2°C mehr einstellen damit sie aufheizt und sobald die gewünschte Temp. am externen Sensor erreicht ist Soll=IST (gemessen am HKT). o.Ä… Das würde mir dazu spontan einfallen. Allerdings müsste es dann wieder einen Offset geben. Weil die gemessene externe Temp nicht mit der am HKT übereinstimmt. Also alles doch irgendwie recht komplex. `
ich hätte es so gelöst.
IF Xiaomi Temperatur KLEINER Eingestellte Temperatur am HKT
DANN
-> OFFSETVARIABLE GLEICH HKT Temperatur MINUS Xiaomi Temperatur
-> OFFSETVARIABLE auf HKT Offset schreiben
ELSE
HKT Offset = 0
so würde solange der Offset des HKT angepasst bis die Temperatur vom Raumsensor erreicht ist und dann mit Offset 0 der HKT wieder ruhig gestellt bis dann in einiger Zeit der Raumtemperatur Wert unter den eingestellten HKT Wert fällt und wieder eine Offset spielerei durchlaufen wird.
Wenn man aber überhaupt nicht den Offset Wert des HKT über ioBroker oder Homematic Skript ändern kann stehen wir auch hier wieder in einer Sackgasse.
-
Ja.., dass es dort keine Möglichkeit gibt (nicht nur bei HM) ist wirklich schade. Ich ging aber tatsächlich von diesem Workaround aus. Also die Soll Temp. so zu steuern, dass die entsprechend der externen Sensoren gesteuert wird. Vermutlich sowas wie immer + 1-2°C mehr einstellen damit sie aufheizt und sobald die gewünschte Temp. am externen Sensor erreicht ist Soll=IST (gemessen am HKT). o.Ä… Das würde mir dazu spontan einfallen. Allerdings müsste es dann wieder einen Offset geben. Weil die gemessene externe Temp nicht mit der am HKT übereinstimmt. Also alles doch irgendwie recht komplex. `
ich hätte es so gelöst.
IF Xiaomi Temperatur KLEINER Eingestellte Temperatur am HKT
DANN
-> OFFSETVARIABLE GLEICH HKT Temperatur MINUS Xiaomi Temperatur
-> OFFSETVARIABLE auf HKT Offset schreiben
ELSE
HKT Offset = 0
so würde solange der Offset des HKT angepasst bis die Temperatur vom Raumsensor erreicht ist und dann mit Offset 0 der HKT wieder ruhig gestellt bis dann in einiger Zeit der Raumtemperatur Wert unter den eingestellten HKT Wert fällt und wieder eine Offset spielerei durchlaufen wird.
Wenn man aber überhaupt nicht den Offset Wert des HKT über ioBroker oder Homematic Skript ändern kann stehen wir auch hier wieder in einer Sackgasse. `
Ja das wäre auch eine Lösung. Also es mit dem Offset lösen. Allerdings würde bei der Lösung über die Solltemp. evtl. mehr Geräte abdecken. Denn der Offset der FritzDECT HKT sind nicht via FritzDECT iobrokerAdapter einstellbar. Nur der Sollwert. Ich weiß nicht wie es sich bei anderen HKT Anbieter verhält.
-
EDIT - SIEHE NEUEN THREAD: Link
Falls wer Testen will:
Folgendes Script setzt automatisch den Offset-Wert der Homematic-Thermostate, berechnet aus dem Wert von Xiaomi-Sensoren (oder anderer) dank "sendTo". Ich musste etwas "revers engineering" machen, da die Werte, die HomeMatic will, nicht tatsächliche Temperaturwerte sind (z.B. +2° = 11).
Das zu setzende Offset wird im Script wie folgt berechnet: [Homematic ACTUAL_TEMPERATURE (z.B. 22°C)] minus [Xiaomi-Sensor-Wert (z.B. 20°C)].
Falls gesetzte HM-Temperatur unter definierter Schwellgrenze (z.B. 20°C), passiert allerdings nichts, damit das Script nicht ausgeführt wird, wenn z.B. 12°C eingestellt ist.
https://github.com/Mic-M/iobroker.homem … sensors.js
Achtung: ist eine Pre-Alpha-Version - also nur für Testwillige geeignet und kann noch Fehler enthalten. Getestet von mir mit Nicht-IP-Thermostaten.
Kann gerne von Euch übernommen, erweitert usw. werden, ich komme wohl die nächsten paar Wochen nicht dazu.
Eventuell wäre es aber sinnvoller, wenn das Heizungsscript hier sich selbst um das Offset kümmert, auch weil Homematic nur max. 3,5°C Offset zulässt.
-
@Mic:Falls wer Testen will:
Folgendes Script setzt automatisch den Offset-Wert der Homematic-Thermostate, berechnet aus dem Wert von Xiaomi-Sensoren (oder anderer) dank "sendTo". Ich musste etwas "revers engineering" machen, da die Werte, die HomeMatic will, nicht tatsächliche Temperaturwerte sind (z.B. +2° = 11).
Das zu setzende Offset wird im Script wie folgt berechnet: [Homematic ACTUAL_TEMPERATURE (z.B. 22°C)] minus [Xiaomi-Sensor-Wert (z.B. 20°C)].
Falls gesetzte HM-Temperatur unter definierter Schwellgrenze (z.B. 20°C), passiert allerdings nichts, damit das Script nicht ausgeführt wird, wenn z.B. 12°C eingestellt ist.
https://github.com/Mic-M/iobroker.homem … sensors.js
Achtung: ist eine Pre-Alpha-Version - also nur für Testwillige geeignet und kann noch Fehler enthalten. Getestet von mir mit Nicht-IP-Thermostaten.
Kann gerne von Euch übernommen, erweitert usw. werden, ich komme wohl die nächsten paar Wochen nicht dazu.
Eventuell wäre es aber sinnvoller, wenn das Heizungsscript hier sich selbst um das Offset kümmert, auch weil Homematic nur max. 3,5°C Offset zulässt. `
ich würde es am liebsten direkt testen aber leider fehlt mir noch mein CC2531 Stick um die Xiaomi Geräte in ioBroker einzubinden.
Kurze Frage zum Skriptablauf, setzt du bei erreichen der Xiaomi Temperatur den Offset des Thermostat wieder auf 0 ? Habe den Teil jetzt nicht direkt im Skript gefunden.
edit:
ist hier nicht ein Fehler…
Zeile 84: var loopOffset = (loopHmActualTemp - loopExtTemp);
wenn der HKT Wert bei 22 liegt und der Sensor Wert 20 ergibt deine Variable eine 2, man muss aber -2 eintragen anstatt 2.
Oder drehst du den Wert irgendwo weiter unten?
-
@Mic:Falls wer Testen will:
Folgendes Script setzt automatisch den Offset-Wert der Homematic-Thermostate, berechnet aus dem Wert von Xiaomi-Sensoren (oder anderer) dank "sendTo". Ich musste etwas "revers engineering" machen, da die Werte, die HomeMatic will, nicht tatsächliche Temperaturwerte sind (z.B. +2° = 11).
Das zu setzende Offset wird im Script wie folgt berechnet: [Homematic ACTUAL_TEMPERATURE (z.B. 22°C)] minus [Xiaomi-Sensor-Wert (z.B. 20°C)].
Falls gesetzte HM-Temperatur unter definierter Schwellgrenze (z.B. 20°C), passiert allerdings nichts, damit das Script nicht ausgeführt wird, wenn z.B. 12°C eingestellt ist.
https://github.com/Mic-M/iobroker.homem … sensors.js
Achtung: ist eine Pre-Alpha-Version - also nur für Testwillige geeignet und kann noch Fehler enthalten. Getestet von mir mit Nicht-IP-Thermostaten.
Kann gerne von Euch übernommen, erweitert usw. werden, ich komme wohl die nächsten paar Wochen nicht dazu.
Eventuell wäre es aber sinnvoller, wenn das Heizungsscript hier sich selbst um das Offset kümmert, auch weil Homematic nur max. 3,5°C Offset zulässt. `
Hallo Mic,
ein sehr guter Ansatz!
Ich habe dein Script kurz ausprobiert und habe Folgendes festgestellt:
- Wie TDCroPower angemerkt hat, liefert das Script ein Offset mit dem falschen Vorzeichen.
–>````
var loopOffset = (loopExtTemp - loopHmActualTemp)2) Der aktuelle Offset wirde bei der Berechnung nicht berücksichtigt. ****loopHmActualTemp**** ist ja der Temperaturwert unter Berücksichtigung des eingestellten Offsets. Ich denke, der aktuelle Offset muss von der CCU abgerufen und vom ****loopHmActualTemp**** abgezogen werden. Grüße, Max