NEWS
[Vorlage] Heizungsthermostatsteuerung - Script
-
Ja es sollen auch noch Fenstersensoren usw dazukommen aber alles IP. Mir gefällt das Design der IP-Geräte einfach besser außerdem scheint es so das für das alte Homematic keine neuen Produkte kommen. Das einzige was ich mir nicht als IP holen werde ist der Access Point da ich nicht komplett von einer Cloud abhängig sein will.
Was meinst du mit sie mögen keine Lan-Gateways?
Gruß Torsten
-
@spoerl.torsten:Was meinst du mit sie mögen keine Lan-Gateways? `
HM-IP Geräte können nur an die CCU angelernt werden.Gruß
Rainer
-
Ja genau. Einmal manuell loeschen
Gesendet von meinem SM-G935F mit Tapatalk `
Hallo,das kann man leichter pflegen, wenn man den forceCreate-Parameter mit übergibt. Er wird an dritter Stelle, nach Namen und Wert gesetzt. Ich nutze dazu in meinen Scripts eine Boolean-Variable (und nenn sie fC).
const fC = true; createState(State, false, fC, {read: true, write: true, type: 'number', name: 'Im View manuell eingestellte Temperatur - 0=reset' , desc: 'Im View manuell eingestellte Temperatur - 0=reset'});
So wird das Objekt bei jedem Neustart des Scrips neu angelegt.
-
@pix:Ja genau. Einmal manuell loeschen
Gesendet von meinem SM-G935F mit Tapatalk `
Hallo,das kann man leichter pflegen, wenn man den forceCreate-Parameter mit übergibt. Er wird an dritter Stelle, nach Namen und Wert gesetzt. Ich nutze dazu in meinen Scripts eine Boolean-Variable (und nenn sie fC).
const fC = true; createState(State, false, fC, {read: true, write: true, type: 'number', name: 'Im View manuell eingestellte Temperatur - 0=reset' , desc: 'Im View manuell eingestellte Temperatur - 0=reset'});
So wird das Objekt bei jedem Neustart des Scrips neu angelegt. `
Und wieder zeigt sich, dass einfach mal querlesen ohne gezieltes Interesse hilfreich ist. Das Thema Heizungssteuerung ist für mich nicht relevant, aber dieser Post war (wie so häufig) sehr hilfreich
-
Hallo Looxer,
ich habe das Skript installiert und teste gerade. Es ist sehr vielversprechend und genau das, was ich gesucht habe. Vielen Dank für die tolle Arbeit.
Ich habe die Version 0.76 vom ersten Post in diesem Thread. Da gibt es sicher schon ein neueres. Vielleicht mach es Sinn für Dich, deine großen Skripte auch in Github zu pflegen. Dort kann man leicht auch Veränderungen sehen. Textdateien zum Download im Forum sind dann nicht mehr nötig. Probleme mit inkompatiblen Editoren sind dann gelöst.
Ich nutze nur ein einen (neuen) HM-Heizkörperregler HM-CC-RT-DN. Der ist im Bad. Also habe ich alle Räume auskommentiert und nur "Bad" übrig" gelassen. In einigen anderen Räumen sind trotzdem "alte" Heizkörperwandthermostate HM-CC-TC zur Temp/Feucht-Anzeige aufgestellt. Sie sind auch dem Gewerk Heizung zugeordnet, das sollte ich ändern, denn sie verursachen viel Müll im Log.
Für meine Heizungsview habe ich deine Vorlage etwas angepasst. Einige HTML-Widgets, die nur eine Label-Funktion haben, sind überflüssig, da die HTML-Widgets für Wert i.d.R. auch noch HTML-Felder für Text vor und nach dem Wert bieten ("voranstellen HTML" und "HTMLanhängen". Da ich nur einen Regler verwende, habe ich auch einige Daten des Reglers direkt in den Bereich "Status" übernommen (Valvestate, Modus, …). Im Dropdown Minimaltemperatur habe ich die Kommatrennung durch einen Punkt ersetzt (in der Werteliste, Auswirkungen noch nicht getestet). Das würd ich für eine einheitliche Darstellung auch noch bei den Profileinstellungen machen.
Hier ein Screenshot:
Den unteren Bereich muss ich noch gestalten. Ich zerbreche mir den Kopf, wie ich den aktuellen Solltemperatur Zeitabschnitt GRAFISCH in VIS darstellen kann...
Nochmal: Herzlichen Dank für das tolle Skript!
Viele Grüße
Pix
-
Und wieder zeigt sich, dass einfach mal querlesen ohne gezieltes Interesse hilfreich ist. Das Thema Heizungssteuerung ist für mich nicht relevant, aber dieser Post war (wie so häufig) sehr hilfreich `
Steht aber auch in der DOku
https://github.com/ioBroker/ioBroker.ja … reatestate
Gruß
Pix
-
Ja das stimmt.
Aber ich bin ja eine Art IT-Dau und habe das in der Doku damals nicht verstanden bzw nicht ausreichend, als dass ich mich getraut hätte, das einzusetzen :lol:
-
@pix:Hier ein Screenshot:
Den unteren Bereich muss ich noch gestalten. Ich zerbreche mir den Kopf, wie ich den aktuellen Solltemperatur Zeitabschnitt GRAFISCH in VIS darstellen kann… `
super Pix,
wuerdest du die view zur Verfügung stellen, wenn du fertig damit bist ? Wahrscheinlich muesste ich dann wieder zurückverallgemeinern aber die Darstellung sieht super aus.
vG Looxer
-
@pix:Ich nutze nur ein einen (neuen) HM-Heizkörperregler HM-CC-RT-DN. Der ist im Bad. Also habe ich alle Räume auskommentiert und nur "Bad" übrig" gelassen. In einigen anderen Räumen sind trotzdem "alte" Heizkörperwandthermostate HM-CC-TC zur Temp/Feucht-Anzeige aufgestellt. Sie sind auch dem Gewerk Heizung zugeordnet, das sollte ich ändern, denn sie verursachen viel Müll im Log. `
Der Müll sollte aber nicht vom Heizungsscript kommen, wenn du die Raumtabelle pflegst. In diesem Fall würden auch nur Thermostate und Sensoren für das Bad geladen werden und nicht von anderen Räumen. dazu muss die Variable var UseRoomList = false; auf true gesetzt werden.
vG Looxer
-
Hallo Looxer,
ich kann hier die Widgets zur Verfügung stellen. Die View ist durch "View in Widget" Navigation nicht Export-geeignet. Die View ist für iPad Landscape ausgelegt. Es sind keine Gruppierungen vorhanden.
Ich nutze die Javascript Instanz 1 für die Steuerung. Alle Pfade sind natürlich entsprechend anzupassen.
Der Heizplan wird ausgeblendet, wenn das aktive Profil nicht 1 ist (Sichtbarkeit). Evtl. versuche ich noch, einen zweiten Heizplan für ein zweites Profil einzubauen (über Filter).
Der Hintergrund "Globale Heizparameter" wird rot, wenn "Heizperiode aktiv" angehakt ist.
Das Schlafzimmer-Fenster ist manuell eingefügt, hat nix mit dem Skript zu tun.
Boost klappt auch noch nicht 100%ig. Die Boost Funktion startet auch beim Abwählen des Kästchens.
Im Script werde ich die Anwesenheit noch mit meiner eigentlichen Anwesenheitsvariable synchronisieren.
"Letzter Programmlauf" und iCal Event (nutze ich derzeit nicht) sind noch nicht so richtig untergekommen.
Natürlich ließe sich noch mehr mit Warnfarben arbeiten (Batteriespannung sinkt unter Schwellenwert, Ventil zu oder offen, Soll über Ist oder umgekehrt), aber ich will nicht zu viele Bindings einbauen, da die vom Client/iPad und nicht vomioBroker Server generiert werden.
Frage: Ist geplant, eine Eingabe für die Endzeit von Urlaub und/oder Party einzubauen?
Gruß
Pix
-
@pix:ich kann hier die Widgets zur Verfügung stellen.
….
Frage: Ist geplant, eine Eingabe für die Endzeit von Urlaub und/oder Party einzubauen? `
super - Danke Pix. Schaue ich mir an.Zur Frage: das funktioniert jetzt schon mit ICAL Events. Über den Google Kalender geht das super einfach.
Da müssen dann nur die Keywörter eingetragen werden und die Party kann beginnen oder enden.
vG Looxer
Edit: und hier nochmal die einstellbaren Keywords für die globalen Event-Parameter.
Wenn also im Google Kalender eines dieser Keywords eigegeben ist, dann wird der Parameter im Script gesetzt.
Natürlich muss vorher ICAL aufgesetzt werden und mit dem google Kalender verknüpft werden. Ist aber recht simpel.
var EventG_UrlaubAbwesend = "Urlaub_Abwesend";
var EventG_UrlaubAnwesend = "Urlaub_Anwesend";
var EventG_Party = "Party";
var EventG_Gaeste = "Gaeste";
var EventG_Abwesend = "Keiner_DA";
var EventG_Feiertag = "Feiertag";
-
Hallo Looxer,
habe die iCal Konfiguration erledigt.
! ```
2017-09-21 17:00:16.747 - [32minfo[39m: ical.0 starting. Version 1.3.2 in /Users/pix/Documents/iobroker/node_modules/iobroker.ical, node: v4.8.4 2017-09-21 17:00:16.985 - [32minfo[39m: ical.0 Event "ical.0.events.Urlaub_Abwesend" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Urlaub_Anwesend" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Party" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Gaeste" created 2017-09-21 17:00:16.987 - [32minfo[39m: ical.0 Event "ical.0.events.Keiner_DA" created 2017-09-21 17:00:16.987 - [32minfo[39m: ical.0 Event "ical.0.events.Feiertag" created[/code]
Im Skript habe ich die Steuerung eingeschaltet:
~~[code]~~// 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 = true; // 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 [/code]
! Klappt leider noch nicht.
! Was fehlt noch?
! Danke.
! Pix -
Hi Pix,
wenn ich das richtig sehe, dann sitzen alle Events auf true. Also hast du für alle ein Event geplant, dass jetzt aktiv ist ?
Ich habe gerade mal ein event auf true gesetzt und das Programm laufen lassen. Das ging bei mir.
Ist dein Programm zwischenzeitlich gelaufen ?
Edit: nein, due hast nur die Events eingestellt. Hast du mal ein Event auf true gesetzt in den Objekten ?
das ist ja das was passiert, wenn ein Event im Kalender aktuell ist.
vG Looxer
-
Schön das ihr euch mit den Widgets befasst.
@Pix, danke das du deine zur Verfügung stellst.
mit deinen View´s wird bei mir der VIS-Editor nicht mehr bedienbar.
4-5 der Views sind noch ok, aber ich habe 11 Thermostate. Das schafft der Raspi irgendwie nicht mehr.
Das geht soweit, dass der Raspi nichtmal mehr über LAN erreichbar ist :shock:
Da hilft nur noch Stecker ziehen
Könnte das sein bei so vielen Objekten, oder ist da etwas anderes faul?
Gruß
-
4-5 der Views sind noch ok, aber ich habe 11 Thermostate. `
Ich glaube, dass die Views des Projektes komplett geladen werden.
Ich nehme mal an, dass du Speicherprobleme mit dem Raspi bekommst. (1GB ist eh schon knapp)
Was da helfen kann ist die Views abzuspecken. z.B die Global Parameter raus. Auch die Text Label zu entfernen hilft (wie PIX das gemacht hat)
Vielleicht passt es dann bei dir.
Die Anzahl der Thermostate ist aber egal. Die Anzahl der Räume ist eher entscheidend, da für jeden Raum ein View gebaut wird.
vG Looxer
-
@pix:Die View ist durch "View in Widget" Navigation nicht Export-geeignet.Bildschirmfoto 2017-09-21 um 13.17.25.jpgpixWidgetsHeizung.txtDie View ist für iPad Landscape ausgelegt. Es sind keine Gruppierungen vorhanden.
I `
Hi Pix,ich konnte die view nicht importieren. (Rendering Problem) Ich vermute, dass es ein Format issue ist.
Ich musste sogar meines views wieder herstellen (meine back up Strategie ist einfach perfekt ;))
Im notepad++ wird mir auch nur eine Zeile angezeigt. Könntest du die view mit notepad++ bearbeiten und hochladen ?
vG Looxer
-
Hallo,
kurz vom Kinderbett aus [emoji1348]: ist keine View, sind Widgets. Da die View aus dem Screenshot für den Export nicht geeignet ist, habe ich die Widgets exportiert.
Pix
-
na dann, sweet dreams
ja, widgets geht. Allerdings habe ich jetzt alles in hell grau.
Da fehlen wohl noch ein paar view einstellungen ?
vG Looxer
Edit: sieht so aus:
-
Endlich eingeschlafen …
Ja, da fehlt noch der Hintergrund:
background:````
rgb(0, 0, 0) linear-gradient(rgb(69, 72, 77) 0%, rgb(0, 0, 0) 100%) repeat scroll 0% 0% / auto padding-box border-box-color:
rgb(0,0,0)
-image:
linear-gradient(rgb(69, 72, 77) 0%, rgb(0, 0, 0) 100%)
-repeat:
repeat
-atachement:
scroll
-position:
0% 0%
-size:
auto
-clip
border-box
-origin
padding-box
Ach, mit Screenshot gehts schneller: ![261_bildschirmfoto_2017-09-21_um_22.45.31.jpg](/assets/uploads/files/261_bildschirmfoto_2017-09-21_um_22.45.31.jpg) Thema: ui-darkness Anmerkung zu den Kalender-Events: Es funktioniert :P Die Events, die vom iCal-Adapter oder von mir per Hand in Objekte gesetzt werden, werden vom Skript erkannt, sobald der nächste Cronjob das Skript startet. Die Ausführung der Regelung, also zB die Herabsetzung der SOLL-temp erfolgt aber erst beim ZWEITEN Programmdurchlauf. Das ist erstmal nicht schlimm, wenn man es weiß. Es erklärt sich aber nicht von selbst. Nach dem ersten Durchlauf wird in```` javascript.1.Heizung.Heizplan.Bad.Source_ICALEvent ````das ricghtige Event angeziegt. Nach dem zweiten Durchlauf dann in```` javascript.1.Heizung.Heizplan.Bad.Source_Global_Parameter ````auch der Grund für die nun ausgeführte Änderung. Gruß Pix
-
4-5 der Views sind noch ok, aber ich habe 11 Thermostate. `
Ich glaube, dass die Views des Projektes komplett geladen werden.
Ich nehme mal an, dass du Speicherprobleme mit dem Raspi bekommst. (1GB ist eh schon knapp)
Was da helfen kann ist die Views abzuspecken. z.B die Global Parameter raus. Auch die Text Label zu entfernen hilft (wie PIX das gemacht hat)
Vielleicht passt es dann bei dir.
Die Anzahl der Thermostate ist aber egal. Die Anzahl der Räume ist eher entscheidend, da für jeden Raum ein View gebaut wird.
vG Looxer `
Die Views eins Projektes werden komplett geladen. Um Speicher zu sparen, kannst du natürlich Widgets löschen. Aber dann leidet ja die Bedienbarkeit. Eine weitere Möglichkeit ist die Verschiebung in ein eigenes Projekt. Entweder legst du ein eigenes Heizungsprojekt an oder baust sogar für jeden Thermostat ein eigenes Projekt. Du musst ja eigentlich nicht ständig die Profile verändern. Wenn doch, kannst du dazu das Projekt ach separat aufrufen.Gruß
Pix