Lüftungshelfer gegen Hitze (erstes Script)

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Antworten
Thomas1984
Beiträge: 68
Registriert: 25.10.2016, 21:50
Hat sich bedankt: 7 Mal
Danksagung erhalten: 3 Mal

Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von Thomas1984 » 24.08.2020, 10:28

Ich möchte euch hier mal mein erstes Script vorstellen. Es berechnet die Temperaturdifferenzen von Innenräumen zu Außen. Es ist (wie der titel schon sagt) mein erste Script für die CCU3. Das Problem: Hitze und zu warme Nächte. Damit es innen möglichst kühl bleibt, soll die Hitze ausgesperrt werden, sobald es draußen kühler ist als drinnen aber gelüftet werden.

Damit dies möglich ist benötigt man zuerst einmal die Temperaturdifferenzen. Das Scipt/Programm stelle ich hier gekürzt vor, die weiteren Räume sind alle nach dem gleichen Muster eingefügt. Dazu nutze ich die Werte der Heizungsregler und die einer Basic Wetterstation. Jeder Heizungsregler bekommt eine Systemvariable (per Kanalzuordnung), wo der Wert dann abgespeichert werden kann. Ändert sich eine Temperatur müssen die Differenzen neu berechnet werden (da dabei keine Funkaktivität nötig ist, ist es kein Problem das Script häufig auszuführen):
Bildschirmfoto von 2020-08-24 10-05-08.png
Das Passende Script dazu:

Code: Alles auswählen

! Temperatuen auslesen
real aussen = dom.GetObject("HmIP-RF." # dom.GetObject("Außen Wetterstation").Address() # ":1.ACTUAL_TEMPERATURE").Value();
real schlafzimmer = dom.GetObject("HmIP-RF." # dom.GetObject("Schlafzimmer Heizung").Address() # ":1.ACTUAL_TEMPERATURE").Value();
real bad = dom.GetObject("HmIP-RF." # dom.GetObject("Bad Heizung").Address()#+ ":1.ACTUAL_TEMPERATURE").Value();
real dachgeschoss = dom.GetObject("HmIP-RF." # dom.GetObject("Dachgeschoss Heizung").Address() # ":1.ACTUAL_TEMPERATURE").Value();


! Differenzen berechnen
dom.GetObject("Schlafzimmer_Temperaturdifferenz").State(schlafzimmer - aussen);
dom.GetObject("Bad_Temperaturdifferenz").State(bad - aussen);
dom.GetObject("Dachgeschoss_Temperaturdifferenz").State(dachgeschoss - aussen);
Bei dem Script greife ich nicht über die Seriennummern auf die Geräte zu, sondern hole mir diese über die Gerätenamen. Das finde ich im Script einfach übersichtlicher und es ist robust gegenüber Austauschgeräten. Man darf natürlich nur die Geräte nicht mehr umbenennen, dann gäbe es hiermit Probleme (wenn man nicht an das Script denkt).

Jetzt lassen sich damit z.B die Signal-LEDs von HMIP-BSL ansteuern:
Bildschirmfoto von 2020-08-24 10-17-43.png

Vorher war es ein simples Nachtlicht (Nach Sonnenuntergang weiß an), jetzt leuchtet es blau, wenn es draußen kühler (bze. drinnen wärmer) ist. Damit weiß man mit einem Blick, ob man das Fenster zum lüften auf/zu machen sollte. Vorher musste an umständlich zwei Thermometer ablesen.

Für die Zukunft plane ich die Rollläden da mit rein zu nehmen, damit das Lüften bei nachts dauerhaft offenem Fenster automatisch (Einbruchsschutz beachten!) erfolgt. Denn die optimalen Lüftungszeiten sind so spät nachts, dass sie mit den Schlafenszeiten kollidieren. Dazu warte ich aber noch auf den Regensensor (Lieferzeit :( ), damit es dann keine bösen Überraschungen gibt falls es zwischendurch regnen sollte (während man schläft und das Fenster offen ist).

Update: Script als Code eingetragen

Update: Addition von Strings mit # statt mit +.
Zuletzt geändert von Thomas1984 am 24.08.2020, 13:01, insgesamt 2-mal geändert.

cityofsilence
Beiträge: 269
Registriert: 14.11.2018, 20:43
System: CCU
Wohnort: Bayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 17 Mal

Re: Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von cityofsilence » 24.08.2020, 11:36

Vielen Dank für dein Projekt, aber bitte den Code in Tags schreiben ist übersichtlicher zum lesen und verstehen :D

Code: Alles auswählen

So zum Beispiel
Gruß André

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von MichaelN » 24.08.2020, 12:52

Strings verkettet man eigentlich mit # statt mit +

Code: Alles auswählen

string c = a#b;
+ könnte in Zusammenhang mit der automatischen Typumwandlung ggf. mal Probleme bereiten:

Code: Alles auswählen

var a;
var b;
string c;
a = "123";
b = "456";
c = a + b;
WriteLine(c);
a = 123;
b = 456;
c = a + b;
WriteLine(c);
c = a # b;
WriteLine(c);
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Thomas1984
Beiträge: 68
Registriert: 25.10.2016, 21:50
Hat sich bedankt: 7 Mal
Danksagung erhalten: 3 Mal

Re: Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von Thomas1984 » 24.08.2020, 13:04

Danke euch für die Tipps. Habe es angepasst. Die Beschreibung der Sprache erlaubt explizit + oder # für die Konkatenation von Strings. Aber jetzt weiß ich auch, wofür das # da ist obwohl auch das + dafür zulässig ist. Das hatte ich mich beim lesen der Beschreibung gefragt, aber nun habe ich die Antwort. :D

Benutzeravatar
Rosagallica
Beiträge: 81
Registriert: 22.07.2018, 15:54
System: CCU
Hat sich bedankt: 14 Mal
Danksagung erhalten: 6 Mal

Re: Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von Rosagallica » 24.08.2020, 16:44

Du solltest neben Temperatur auch noch an die Luftfeuchtigkeit denken... Nächtliche höhere Außenluftfeuchtigkeit bei wenig Temperaturdifferenz will man sich nicht in die Wohnung holen, welche sich dann hinterher aufheizt. Ich spreche aus Erfahrung.

Und neben Regen würde ich auch auf Wind prüfen bevor Du die Rolläden fahren lässt ;)

cityofsilence
Beiträge: 269
Registriert: 14.11.2018, 20:43
System: CCU
Wohnort: Bayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 17 Mal

Re: Lüftungshelfer gegen Hitze (erstes Script)

Beitrag von cityofsilence » 24.08.2020, 18:25

Ich würde dir folgendes Script / Forumeintrag empfehlen zu lesen und mit einzubeziehen
viewtopic.php?f=43&t=9835&hilit=Absolute+Feuchte

Funktioniert super
Gruß André

Antworten

Zurück zu „Projektvorstellungen“