NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Hallo Max,
hast Du eine Lösung für das Delay Problem gefunden? Bei mir ist es genauso, habe auch die HM-CC-RT-DN in Verbindung mit den Xiaomi Aqara Sensoren im Einsatz, was auch bis auf das "Delay nach Verschluss" alles super funktioniert (auch von mir ein großes Dankeschön in die Entwickler!).
Wäre so wie Du auch sehr an eine Lösung interessiert. `
Hallo,
leider habe ich aktuell keine Lösung dafür. Mir fehlt momentan die Zeit für das Debugging…
Ich wollte hier noch ein anderes Problem ansprechen, und zwar geht bei mir die Umschaltung der Profile über iCal nicht. Globale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. Erst wenn im View eine beliebige Änderung vorgenommen wird (z.B. "Gültigkeit in Min" wird geändert) wird ein iCal-Event erkannt und die Solltemperatur angepasst.
2 Profile sind aktiviert.
// Anzahl der Profile. i.d.R. sollten maximal 3 Profile genuegen - Profile werden z.B. fuer Events aus ICAL verwendet var MaxProfile = 2; // Maximal genutzte Profile pro Raum (gering halten ) Zahl zwischen 1 und 9
Globale Umschaltung der Profile ist aktiviert.
var UseEventsGlobalParameter = true; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren var UseEventsGlobalProfilSelect = true; // 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</profilnummer></raumname></profilnummer>
iCal setzt den entsprechenden Datenpunkt wie erwartet auf true, es wird aber nicht getriggert…
Weiß jemand Rat?
-
Ich wollte hier noch ein anderes Problem ansprechen, und zwar geht bei mir die Umschaltung der Profile über iCal nicht. Globale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. Erst wenn im View eine beliebige Änderung vorgenommen wird (z.B. "Gültigkeit in Min" wird geändert) wird ein iCal-Event erkannt und die Solltemperatur angepasst. `
Hi,
melde mich wieder nach einem unfreiwilligen shut down meinerseits.
das kann eigentlich keine grosse sache sein. Schau ich mir an.
vG Looxer
-
lobale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. `
Kurze Frage:hast du die Variable in den Einstellungen "UseEventsRaumProfilSelect" auf true gesetzt ?
EDIT
sorry vergiss es. Ich sehe, dass du eine Globale Umschaltung nutzen willst.
vG Looxer
-
Globale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. `
Hi kannst du mal bitte folgendes Coding austauschen// Globales Profil ist prio2 if (UseEventsGlobalProfilSelect === true) { for (i = 1; i <= MaxProfile; i++) { ProfilName = UseEventG_Profil; ProfilName = UseEventG_Profil.replace("<profilnummer>", i); if (getState(ICALPath + "." + ProfilName).val) { setOwnState(pathprofile+".AktivesEventProfil", i); Source_Profil = i; Source_ICALEvent = ProfilName; return i; } } // ende for i } // ende if globalProfilSelect</profilnummer>
und zwar mit:
// Globales Profil ist prio2 if (UseEventsGlobalProfilSelect === true) { for (i = 1; i <= MaxProfile; i++) { ProfilName = UseEventG_Profil; ProfilName = UseEventG_Profil.replace("<profilnummer>", i); if (getState(ICALPath + "." + ProfilName).val) { setState(pathprofile+".AktivesEventProfil", i); Source_Profil = i; Source_ICALEvent = ProfilName; return i; } } // ende for i } // ende if globalProfilSelect</profilnummer>
das löst wahrscheinlich das Problem. Ist für mich aber eine Trockenübung, da ich kein System im Zugriff habe.
Sollte das die Lösung sein muss das gleiche für die Raumprofile gemacht werden.
Mache ich am WE.
vG Looxer
-
Gab es denn eine Lösung für mein geschildertes Problem? `
Hi Axel,hast du dein Problem gelöst ?
Hab mir deine View angesehen - sieht super aus.
Dort ist mir aufgefallen, dass du einen NaN Wert hast.
Sieht so aus, dass da das mapping vom View zu den Datenpunkten nicht korrekt ist.
vG Looxer
-
In dem NoneHMSenorTab muss man an der 4. Stelle sagen welcher Zustand bei geschlossenem Fenster sein soll. Ich habe einen Sensor, da ist dieser Zustand "true". Trage ich jedoch true ein, wird bei offenem Fenster der "Verschlussstatus" mit false eingetragen und bei geschlossenem Fenster ein true. (Also falsch herum). Komischerweise kann ich das System nicht austricksen, wenn ich an der 4. Stelle ein false eintrage… Es muss also i-wo anders noch ein Fehler sein.
Wäre cool wenn du das Problem lösen könntest. `
Hi,
die betreffende Stelle im Coding ist hier:
if (SensorStatus === true || SensorStatus === false ) { if ( debug ) { log("Routine SensorStatCalc: Sensorstatus ist "+ SensorStatus + " fuer devtype = " + devtype + " und id "+ id); } return SensorStatus; }
Da habe ich true und false fest verdrahtet. Du vermutest aber zurecht, dass es auch andersherum gehen müsste, weil ja so eingestellt.
Wahrscheinlich reicht es diese Stelle einfach auszukommentieren.
Das muss aber mit verschiedenen Konstellationen getestet werden.
Für deinen Fall sollte es aber gehen. Kannst du das mal checken ?
vG Looxer
-
Hi,
falls es noch offene Probleme gibt um die ich mich kümmern sollte, dann postet diese bitte hier nochmal.
Ist ein wenig muehsam die Historie aufzuarbeiten.
vG Looxer
-
Hi,
falls es noch offene Probleme gibt um die ich mich kümmern sollte, dann postet diese bitte hier nochmal.
Ist ein wenig muehsam die Historie aufzuarbeiten.
vG Looxer `
Hi looxer01,
danke, gerne hier nochmal mein Problem.
Hallo looxer01,
vielen Dank an dieser Stelle für das Script. Der Wahnsinn. So muss ich nicht jedes Mal in die CCU, um was anzupassen. Allerdings habe ich auch das Problem, das die manuellen Werte leider auf 4,5°C gesetzt werden. Ich weiß das Thema gab es schon, ich habe es in den vielen Beiträgen aber nicht mehr gefunden. Siehe Screenshots. Gab es hier schon eine Lösung? `
Screenshots in Beitrag viewtopic.php?f=21&t=10096&start=640#p190026
-
Du wolltest (24.10.) noch was an der Boost Funktion ändern.
Hattest du inzwischen Gelegenheit dazu oder habe ich das irgendwie übersehen?
Ich komme zwar mit meiner Krückenlösung (4.11.) zurecht, aber schöner wäre es doch wenn alles zusammen laufen würde.
Ist es bei der angekündigten Lösung dann auch möglich bei "Fenster auf" den Thermostaten ganz auf "aus" zu stellen anstatt auf eine Absenktemperatur?
-
Du wolltest (24.10.) noch was an der Boost Funktion ändern.
Hattest du inzwischen Gelegenheit dazu oder habe ich das irgendwie übersehen? `
Ich hoffe, dass ich nächste Woche dazu komme. Leider war es mir die letzten 4 Wochen nicht möglich daran zu arbeiten.
Ist es bei der angekündigten Lösung dann auch möglich bei "Fenster auf" den Thermostaten ganz auf "aus" zu stellen anstatt auf eine Absenktemperatur? `
Die Boost-Funktion sollte für eine einstellbare Zeit das Thermostat auf eine BoostTemp stellen. Bei Fenster Auf soll dann aber trotzdem auf die Absenktemp gestellt werden. Eine Änderung der Vorgehensweise hatte ich nicht im Sinn.
Wenn du aber weniger als 12 Grad einstellen möchtest, dann kannst du das ja machen. - möglichst Synchron mit den Einstellungen in der CCU.
Allerdings gebe ich zu bedenken, dass ein Raum nicht zu stark abkühlen sollte. Das gibt auf Dauer Feuchtigkeitsprobleme.
vG Looxer
-
Hallo Max,
hast Du eine Lösung für das Delay Problem gefunden? Bei mir ist es genauso, habe auch die HM-CC-RT-DN in Verbindung mit den Xiaomi Aqara Sensoren im Einsatz, was auch bis auf das "Delay nach Verschluss" alles super funktioniert (auch von mir ein großes Dankeschön in die Entwickler!).
Wäre so wie Du auch sehr an eine Lösung interessiert. `
Hi,
habe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:
` > // Naechste Version moegliche Erweiterungen/Aenderungen
//…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden. `
Das wäre sehr toll.
-
Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.
Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben.
-
abe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:
// Naechste Version moegliche Erweiterungen/Aenderungen
//…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden.
Das wäre sehr toll. `
ok, nehme ich mit auf.
vG looxer
-
Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.
Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben. `
Eine Alexa-Verstellung sollte doch keinen Unterschied zu einer beliebigen anderen manuellen Verstellung machen.
Hast du einen Wert im View für die manuelle Dauer eingegeben ?
vG Looxer
-
abe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:
// Naechste Version moegliche Erweiterungen/Aenderungen
//…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden.
Das wäre sehr toll. `
ok, nehme ich mit auf.
vG looxer `
super, vielen dank!
-
Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.
Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben. `
Eine Alexa-Verstellung sollte doch keinen Unterschied zu einer beliebigen anderen manuellen Verstellung machen.
Hast du einen Wert im View für die manuelle Dauer eingegeben ?
vG Looxer `
Ich habe meinen Fehler gerade entdeckt
Ich habe auf den Datenpunkt in der View geschrieben also den :
javascript.0.Heizung.Heizplan.Bad.View_Manually_Adjusted ###Im View manuell eingestellte Temperatur - 0=reset###
Wenn ich das auf den Wert vom Wandthermostat schreibe mittels alexa sollte es klappen xD
Edit: einfach auf den Setpoint des Thermostats geschrieben und läuft ohne Probleme
-
Moin!!
Erstmal großes Lob an die Macher des Scripts!
Ich hätte da noch eine Frage:
Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.
Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig?
Ich habe mir nun so geholfen, dass ich Alle Knöpfe die mit dem Profil zu tun haben, Dupliziert habe und statt Profil_1 Profil_2 eingetragen habe. Diese übereinander gelegt und blende je nach Einstellung des Profils die einen oder die anderen Knöpfe und Auswahlmöglichkeiten aus.
Das funktioniert soweit ganz gut. Wäre dennoch schön wenn es von vorne rein mit in dem VIS Script versehen wäre oder ist das irgendwie anders gedacht?
Grüße
-
Gab es denn eine Lösung für mein geschildertes Problem? `
Hi Axel,hast du dein Problem gelöst ?
Hab mir deine View angesehen - sieht super aus.
Dort ist mir aufgefallen, dass du einen NaN Wert hast.
Sieht so aus, dass da das mapping vom View zu den Datenpunkten nicht korrekt ist.
vG Looxer `
Hi Looxer,
ich hatte nicht gesehen, dass Du schon geantwortet hattest. Sorry daher für den Doppelpost. Die NaN Werte habe ich mal durch die Checkbox als String dargestellt, damit sind sie weg. Wegen dem Problem mit 4.5°C ging mir auch ein Licht auf. Das lag an mir… Den manualen Modus erzwingen, ohne eine Temperatur eingetragen zu haben, gibt natürlich einen Fehler zurück.
Aber im Moment nutzen die Heizungen die Werte der CCU. So richtig bin ich wohl noch nicht durchgestiegen. Eingestellt sind für den Zeitraum zwischen 18 und 21 Uhr 21°C, einstellen tut das Script 19°C. Anpassungen der FAQ habe ich schon vorgenommen.
4249_002.jpg
4249_001.jpg -
Globale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. `
Hi kannst du mal bitte folgendes Coding austauschen// Globales Profil ist prio2 if (UseEventsGlobalProfilSelect === true) { for (i = 1; i <= MaxProfile; i++) { ProfilName = UseEventG_Profil; ProfilName = UseEventG_Profil.replace("<profilnummer>", i); if (getState(ICALPath + "." + ProfilName).val) { setOwnState(pathprofile+".AktivesEventProfil", i); Source_Profil = i; Source_ICALEvent = ProfilName; return i; } } // ende for i } // ende if globalProfilSelect</profilnummer>
und zwar mit:
// Globales Profil ist prio2 if (UseEventsGlobalProfilSelect === true) { for (i = 1; i <= MaxProfile; i++) { ProfilName = UseEventG_Profil; ProfilName = UseEventG_Profil.replace("<profilnummer>", i); if (getState(ICALPath + "." + ProfilName).val) { setState(pathprofile+".AktivesEventProfil", i); Source_Profil = i; Source_ICALEvent = ProfilName; return i; } } // ende for i } // ende if globalProfilSelect</profilnummer>
das löst wahrscheinlich das Problem. Ist für mich aber eine Trockenübung, da ich kein System im Zugriff habe.
Sollte das die Lösung sein muss das gleiche für die Raumprofile gemacht werden.
Mache ich am WE.
vG Looxer `
Hi Looxer,
vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen…
Grüße,
Max
-
Ich hätte da noch eine Frage:
Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.
Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig? `
Hi,die Datenpunkte aus Profil-1 müssen im View angeplasst werden.
Das kann mit Hilfe eines geeigneten Editors gemacht werden (ich empfehle immer notepad++) und durch suchen und Ersetzen
-
Suche Profil-1
-
Ersetze mit: Profil-2
Das heisst auch, dass du dazu eine zweite View brauchst.
Werde ich in die FAQs aufnehmen.
vG Looxer
-