Feuchtigkeit in Variable schreiben
Moderator: Co-Administratoren
Re: Feuchtigkeit in Variable schreiben
Ja, ein paar VBA Kenntnise sind schon vorhanden. Ist lange her aber sind nur Vermutungen. Ich hab halt über Forum und google nicht so viel gefunden und ich hatte es natürlich vorher per wenn/ Dann Funktion versucht. So schwer kann es doch nicht sein eine Luftfeuchtigkeit in eine Variable zu schreiben.
-
eirin
- Beiträge: 663
- Registriert: 25.06.2024, 13:34
- System: CCU und Access Point
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 117 Mal
Re: Feuchtigkeit in Variable schreiben
Schnell und einfach mit der Seriennummer..vorher eine Systemvariable vom Typ: Zahl festlegen..z.B. TESTZA
Code: Alles auswählen
var rF = dom.GetObject("HmIP-RF.000A9xxxxxxx5:1.HUMIDITY").Value();
WriteLine(rF);
dom.GetObject("TESTZA").State(rF);
VG eirin
- MichaelN
- Beiträge: 12086
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 826 Mal
- Danksagung erhalten: 2081 Mal
Re: Feuchtigkeit in Variable schreiben
Ich habe noch nicht verstanden wie Dir das dann weiterhilft. Eine Variable ist erstmal nur ein Datenpunkt, genauso wie der Messwertkanal des Gerätes.
Du brauchst ja immer noch eine Logik dahinter.
Also wie soll der Wokflow nun genau aussehen?
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather, Open-Meteo oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather, Open-Meteo oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Re: Feuchtigkeit in Variable schreiben
Richtig, das ist Neuland für mich aber der Datenpunkt als Zahl ausgewertet bietet ja im Script viel einfachere Vergleichsmöglichkeiten und so langsam muss ich mich ja als Homematic-Fan auch mal ran trauen
4 Raumgruppen mit 4 Feuchtigkeitswerten (Feuchtigkeit=F, also F1;F2;F3;F4)
„F1“ gibt den Wert in SV_Feuchte1
„F2“ gibt den Wert in SV_Feuchte2
usw.
Ein Programm „Fmax“ vergleicht die Werte und schreibt den größten Wert in Systemvariable „SV_Fmax“
Das Programm „Lüftungsstufe“ schaltet darüber die Lüftung auf Stufe 3
wenn SV_Fmax>70%; sonst wenn SV_Fmax zwischen 70% -65% auf Stufe 2; sonst wenn zw. 64%- 55% auf Stufe 1
Damit schmeiße ich die Anlage also mit der richtigen Power an.
Nun muss ich die 4 Szenen der Lüftungsklappen den Räumen zuordnen.
Ein Programm „Klappenstellung“ vergleicht wieder „SV_Feuchte1 bis SV_Feuchte4.
Wenn Maximalwert=SV_Feuchte4, dann Programm „Szene4“; wenn Maximalwert=SV_Feuchte3, dann „Szene3“
4 Raumgruppen mit 4 Feuchtigkeitswerten (Feuchtigkeit=F, also F1;F2;F3;F4)
„F1“ gibt den Wert in SV_Feuchte1
„F2“ gibt den Wert in SV_Feuchte2
usw.
Ein Programm „Fmax“ vergleicht die Werte und schreibt den größten Wert in Systemvariable „SV_Fmax“
Das Programm „Lüftungsstufe“ schaltet darüber die Lüftung auf Stufe 3
wenn SV_Fmax>70%; sonst wenn SV_Fmax zwischen 70% -65% auf Stufe 2; sonst wenn zw. 64%- 55% auf Stufe 1
Damit schmeiße ich die Anlage also mit der richtigen Power an.
Nun muss ich die 4 Szenen der Lüftungsklappen den Räumen zuordnen.
Ein Programm „Klappenstellung“ vergleicht wieder „SV_Feuchte1 bis SV_Feuchte4.
Wenn Maximalwert=SV_Feuchte4, dann Programm „Szene4“; wenn Maximalwert=SV_Feuchte3, dann „Szene3“
-
Xel66
- Beiträge: 16273
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 745 Mal
- Danksagung erhalten: 1873 Mal
Re: Feuchtigkeit in Variable schreiben
Dein Vorhaben hat einen physikalischen Denkfehler. Die relative Luftfeuchtigkeit (das was die Thermostate messen) besitzt allein relativ wenig Aussagekraft und ist nur zielführend, wenn innen und außen annhähernd die gleichen Temperaturen herrschen (temperaturabhängig). Für eine zielführende Lüftung und zum Verhindern, dass Du Dir ggf. noch Luft mit einem viel höheren Wasseranteil durch die Abluft an anderer Stelle ins Haus saugst (Unterdruck) ist es notwendig, den absoluten Wassergehalt (absolute Luftfeuchte in g/m²) in der Luft innen und außen zu berechnen.
Ein Absenken der Luftfeuchte durch Entlüftung in der ggf. innen wärmere Umgebung ist eben nur möglich, wenn von außen Luft mit einem geringeren Gehalt an Wasserdampf (alo nach der Erwärmung mit geringerer relativer Feuchte) nachströmt. Du musst also etwas mehr Mathe machen, als nur die relativen Feuchtegehalte zu vergleichen.
Gruß Xel66
Ein Absenken der Luftfeuchte durch Entlüftung in der ggf. innen wärmere Umgebung ist eben nur möglich, wenn von außen Luft mit einem geringeren Gehalt an Wasserdampf (alo nach der Erwärmung mit geringerer relativer Feuchte) nachströmt. Du musst also etwas mehr Mathe machen, als nur die relativen Feuchtegehalte zu vergleichen.
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
Re: Feuchtigkeit in Variable schreiben
Hi und danke für den Hinweis. Hier wird wirklich vollumfassend mitgedacht. Großes Lob!
Mir ist das als Anlagenbauingenieur schon bewusst. Die Problematik sehe ich da eher im Sommer, die sogenannte Sommerkondensation. Es handelt sich auch wirklich um eine Lüftungsanlage im gewerblichen Bereich und ich habe die Werte auch aktuell verglichen. Die Anlage tut was sie soll. Im Sommer muss ich noch schauen ob es da Sinn macht. Eine Wetterstation hab ich noch nicht. Licht- und Regensensor reicht mir derzeit.
Mir ist das als Anlagenbauingenieur schon bewusst. Die Problematik sehe ich da eher im Sommer, die sogenannte Sommerkondensation. Es handelt sich auch wirklich um eine Lüftungsanlage im gewerblichen Bereich und ich habe die Werte auch aktuell verglichen. Die Anlage tut was sie soll. Im Sommer muss ich noch schauen ob es da Sinn macht. Eine Wetterstation hab ich noch nicht. Licht- und Regensensor reicht mir derzeit.
-
Xel66
- Beiträge: 16273
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 745 Mal
- Danksagung erhalten: 1873 Mal
Re: Feuchtigkeit in Variable schreiben
Das Problem stellt sich hier nicht erstmalig.
Braucht man auch nicht unbedingt. Ein reiner HmIP-Außentemperatursensor reicht völlig und ist deutlich frustfreier als die (HmIP-)Wetterstation. Allerdings ist hier auch eine rechnerische Ermittlung der Absolutwerte notwendig. Alternativ nimmst Du einen CUxD-Wrapper. Damit mache ich das. Ich wähle damit die Trocknungsmethode (Ablüfter oder Raumlufttrockner) für den Waschkeller. Läuft so seit mehreren Jahren.
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
- Roland M.
- Beiträge: 10771
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 303 Mal
- Danksagung erhalten: 1688 Mal
Re: Feuchtigkeit in Variable schreiben
Hallo!
Ich nutze da eine vereinfachte Formel (hier aus dem Forum? Keine Ahnung mehr...
), die Abweichung zu ausführlicheren Berechnungsmethoden und zum CUxD-Wrapper sind sehr gering. Vor allem, wenn man ohnehin nur zwei so berechnete Werte vergleicht, wird der Fehler ja ohnehin ausgeglichen.
Als mein Luftentfeuchter in den Kompressorhimmel aufgestiegen ist, habe ich versucht, so die Luftfeuchtigkeit in den Griff zu bekommen, ohne, dass das Werkzeug wieder rostet. Die Steuerung hat funktioniert, nur unser Tropenklima hat nicht mitgespielt (im Frühsommer nahezu tägliche Gewitter, 80 % rLF bei 30°C sind keine Seltenheit). Jetzt steht wieder ein Entfeuchter im Keller...
Roland
Das ist auch keine große Kunst.
Ich nutze da eine vereinfachte Formel (hier aus dem Forum? Keine Ahnung mehr...
Code: Alles auswählen
var temp = dom.GetObject("Raumthermostat Kellerzimmer:1").DPByHssDP("TEMPERATURE").Value();
var rLF = 0.0 + dom.GetObject("Raumthermostat Kellerzimmer:1").DPByHssDP("HUMIDITY").Value();
var aLF = (rLF * 13.245 * ((17.67 * temp)/(temp + 243.5)).Exp()) / (273.15 + temp);
dom.GetObject("Absolute Luftfeuchtigkeit Kellerzimmer").State(aLF);
Detto hier.Läuft so seit mehreren Jahren.
Als mein Luftentfeuchter in den Kompressorhimmel aufgestiegen ist, habe ich versucht, so die Luftfeuchtigkeit in den Griff zu bekommen, ohne, dass das Werkzeug wieder rostet. Die Steuerung hat funktioniert, nur unser Tropenklima hat nicht mitgespielt (im Frühsommer nahezu tägliche Gewitter, 80 % rLF bei 30°C sind keine Seltenheit). Jetzt steht wieder ein Entfeuchter im Keller...
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. OpenCCU auf Proxmox-Server mit ~110 Geräten (derzeit in Umstellung von CCU2)
2. OpenCCU auf "Charly" per VPN mit ~70 Geräten
3. CCU2 per VPN mit ~40 Geräten (geplant: OpenCCU auf CCU3)
CCU1, (mehrere) CCU2, Raspi 1 mit kleinem Funkmodul, OpenCCU als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. OpenCCU auf Proxmox-Server mit ~110 Geräten (derzeit in Umstellung von CCU2)
2. OpenCCU auf "Charly" per VPN mit ~70 Geräten
3. CCU2 per VPN mit ~40 Geräten (geplant: OpenCCU auf CCU3)
CCU1, (mehrere) CCU2, Raspi 1 mit kleinem Funkmodul, OpenCCU als VM unter Proxmox, Access Point,...
Re: Feuchtigkeit in Variable schreiben
Die 4 bzw. mittlerweile 5 Variablen (SV_Feuchte1 bis SV_Feuchte5) sind nun mit den 5 Luftfeuchtigkeiten befüllt und die Anlage läuft korrekt in den 3 Stufen. Nun brauch ich für diesen Teil nochmal eure Hilfe:
Ein Programm „Klappenstellung“ vergleicht wieder „SV_Feuchte1 bis SV_Feuchte5.
Wenn Maximalwert=SV_Feuchte5, dann Programm „Szene5“; wenn Maximalwert=SV_Feuchte4, dann „Szene4“ usw.
Wie kann ich den Maximalwert in einem Script auswerten?
Hier mein Versuch (ChatGPT hat geholfen
:
Die Systemvariable "SV Lüftung Priorität" habe ich als Zeichenkette definiert!?
Ziel ist es mit dieser Variable alle 30 Minuten mit wenn/dann abzufragen und danach die 4 Szenen zu schalten
Derzeit werden keine Fehler im Script gefunden, in der Variable stehen 3 Fragezeichen
Ein Programm „Klappenstellung“ vergleicht wieder „SV_Feuchte1 bis SV_Feuchte5.
Wenn Maximalwert=SV_Feuchte5, dann Programm „Szene5“; wenn Maximalwert=SV_Feuchte4, dann „Szene4“ usw.
Wie kann ich den Maximalwert in einem Script auswerten?
Hier mein Versuch (ChatGPT hat geholfen
Die Systemvariable "SV Lüftung Priorität" habe ich als Zeichenkette definiert!?
Ziel ist es mit dieser Variable alle 30 Minuten mit wenn/dann abzufragen und danach die 4 Szenen zu schalten
Code: Alles auswählen
! Variablen-Namen
string var1 = " SV_Feuchte_UG_Massage ";
string var2 = " SV_Feuchte_UG_Sauna ";
string var3 = " SV_Feuchte_UG_Frauen ";
string var4 = " SV_Feuchte_UG_Kurs ";
string var5 = " SV_Feuchte_UG_Männer ";
! Werte auslesen
real val1 = dom.GetObject(var1).Value();
real val2 = dom.GetObject(var2).Value();
real val3 = dom.GetObject(var3).Value();
real val4 = dom.GetObject(var4).Value();
real val5 = dom.GetObject(var5).Value();
! Startwerte für Vergleich
real maxVal = val1;
string maxName = var1;
! Vergleiche nacheinander
if (val2 > maxVal) { maxVal = val2; maxName = var2; }
if (val3 > maxVal) { maxVal = val3; maxName = var3; }
if (val4 > maxVal) { maxVal = val4; maxName = var4; }
if (val5 > maxVal) { maxVal = val5; maxName = var5; }
! Ergebnis in Systemvariable " SV Lüftung Priorität" schreiben
dom.GetObject("SV Lüftung Priorität").State(maxName);
! Optional: Log-Ausgabe
WriteLine("Maximalwert ist " # maxVal # " in Variable " # maxName);
Zuletzt geändert von Baxxy am 05.11.2025, 17:44, insgesamt 1-mal geändert.
Grund: Code in CodeTags gesetzt für bessere Lesbarkeit
Grund: Code in CodeTags gesetzt für bessere Lesbarkeit
- MichaelN
- Beiträge: 12086
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 826 Mal
- Danksagung erhalten: 2081 Mal
Re: Feuchtigkeit in Variable schreiben
Läuft es denn bis zum Ende durch?
Wenn du es unter "Skript testen" laufen lässt, kommt die log Ausgabe?
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather, Open-Meteo oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather, Open-Meteo oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++