Wrapper-Device zur Berechnung abs. Feuchte nutzen

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

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

Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 15.05.2020, 19:24

Hallo zusammen,

ich möchte das Wrapper Device zur Berechnung der absoluten Feuchte benutzen.

Prinzipiell funktioniert es auch - aber zu langsam.

Ich habe folgenden Code:

Code: Alles auswählen

! absolute Feuchte aussen und innen berechnen, vergleichen und Lueftungsempfehlung geben
dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Forecast_Temp_AVG").State());
dom.GetObject("CUxD.CUX9002001:1.SET_HUMIDITY").State(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Forecast_Feuchte").State());
var abs_hum_aussen = dom.GetObject("CUxD.CUX9002001:1.ABS_HUMIDITY").State();

dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Keller_Temp").State());
dom.GetObject("CUxD.CUX9002001:1.SET_HUMIDITY").State(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Keller_Feuchte").State());
var abs_hum_innen = dom.GetObject("CUxD.CUX9002001:1.ABS_HUMIDITY").State();

dom.GetObject(ID_SYSTEM_VARIABLES).Get("Telegram").State("aussen:"#abs_hum_aussen#" / innen:"#abs_hum_innen);

WriteLine(abs_hum_aussen);
WriteLine(abs_hum_innen);
Ich erhalte immer für beide Berechnungen den gleichen Wert. Ich vermute, das die Berechnung länger dauert, als das abfragen. Wie kann ich sicherstellen, das ich immer den neu berechneten Wert erhalte?

Das Device habe ich folgendermaßen angelegt:
Unbenannt.jpg
Unbenannt2.JPG
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 +++

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

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 15.05.2020, 20:55

ich habe es jetzt auf die brutale Art gelöst:

Code: Alles auswählen

var tmp = dom.GetObject("CUxD.CUX9002001:1.ABS_HUMIDITY").State();
dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State(Day0_avg);
dom.GetObject("CUxD.CUX9002001:1.SET_HUMIDITY").State(Day0_Humidity_avg);
var abs_hum_aussen = tmp;
while ( tmp == abs_hum_aussen )
	{ abs_hum_aussen = dom.GetObject("CUxD.CUX9002001:1.ABS_HUMIDITY").State();}
Mich würde aber trotzdem interessieren, ob es eleganter geht
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 +++

Benutzeravatar
stan23
Beiträge: 2028
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von stan23 » 15.05.2020, 21:33

Mit der Schleife legst du leider die ReGa Skriptengine lahm.

Teile es doch in 2 Programme:
Im ersten schreibst du deine Werte in das CUx-Device.
Das zweite triggert auf ABS_HUMIDITY und schickt dann deine Nachricht los.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

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

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 15.05.2020, 21:38

Kann man im Skript auf die Änderung warten?

Ich brauche ja 2 Berechnungen, das wird mit triggern von Programmen etwas komplex
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 +++

nicolas-eric
Beiträge: 3302
Registriert: 07.01.2015, 23:26
Wohnort: Scheeßel
Hat sich bedankt: 21 Mal
Danksagung erhalten: 11 Mal

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von nicolas-eric » 15.05.2020, 22:23

Ich würde 1 Programm machen, in dem SOFORT ein Script gestartet wird, das die Werte in beiden Wrapper Devices setzt und dann noch ein Script, dass VERZÖGERT um X Sekunden die ABS Werte holt, vergleicht und bei Bedarf ne Nachricht schickt.

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

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 15.05.2020, 22:28

2 wrapper device - ja, das wäre eine Lösung. Oder besser gesagt, eine andere Art des work around. Im cuxd Handbuch ist genau diese Anwendung ja beschrieben, ohne Hinweis darauf, dass der Wert erst nach 1 Sekunde bereit steht. Daher frage ich mich, ob ich noch irgendwas anderes machen muss.
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 +++

nicolas-eric
Beiträge: 3302
Registriert: 07.01.2015, 23:26
Wohnort: Scheeßel
Hat sich bedankt: 21 Mal
Danksagung erhalten: 11 Mal

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von nicolas-eric » 15.05.2020, 22:34

Wenn im Handbuch steht, dass das 1 Sekunde dauert, dann weisst Du ja schon, dass Du das X in meinem Post zuvor mindestens mit einer 2 ersetzen musst, um auf Nummer sicher zu gehen.

Das IST die Lösung.
Eine Pause im Script würde bewirken, dass die Script Engine in der Zeit für andere Scripts nicht ansprechbar ist. Andere Programme würden also nicht funktionieren wie gewollt zu dem Zeitpunkt, die CCU wäre quasi lahmgelegt.
Es gibt eine Grund, warum im Manual steht, man solle 2 solche Devices nehmen...

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

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 15.05.2020, 22:35

Das steht so nicht im Handbuch, habe ich auch nicht so geschrieben.
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 +++

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

Re: Wrapper-Device zur Berechnung abs. Feuchte nutzen

Beitrag von MichaelN » 16.05.2020, 11:33

nicolas-eric hat geschrieben:
15.05.2020, 22:34
Es gibt eine Grund, warum im Manual steht, man solle 2 solche Devices nehmen...
Steht das da? Habe ich nicht gelesen. Wie auch immer, ich habe mal drüber geschlafen und die Lösung hat durchaus ihren Charme.
Jetzt habe ich ein Programmstruktur, die auch funktioniert, wenn ich wirklich mal einen echten Sensor dran hängen habe, der laufend Daten liefert. Meine ursprüngliche Lösung war auf eine einmalige Aktualisierung am Tag ausgerichtet.

Jetzt brauche ich nur irgendwann mal eine Lösung um einen Sensor im Keller anzubinden. Netzwerkkabel habe ich leider nicht legen lassen. Und Funk kann man da auch vergessen. Weder WLAN, noch 868 Mhz, noch Mobilfunk dringt darin vor. Auch Powerline bekommt keine stabile Verbindung.
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 +++

Antworten

Zurück zu „CUxD“