Script zur Berechnung des Feuchtegehalts

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von mbhomie007 » 03.05.2020, 23:20

Black hat geschrieben:
03.05.2020, 22:33
nicht sehr grad vielsagend.

probier mal bitte das:

Code: Alles auswählen

! Berechnung der Schimmelwarnung und Lueftungsempfehlung
object oTHi = dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garage innen"); ! Name des Temperatur-/Feuchtesensors im Innenraum
object oTi = oTHi.DPByHssDP("ACTUAL_TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
object oSchimmel = dom.GetObject("Garage Schimmelgefahr");! Name der Systemvariablen für die Schimmelgefahranalyse (Werteliste: keine Gefahr;Warnung;Alarm)
object oLueften = dom.GetObject("Garage Lüftungsempfehlung"); ! Name der Systemvariablen für die Lüftungsempfehlung (Logikwert: wahr = Ja, falsch = Nein)
object oTHa = dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garten"); ! Name des Temperatur-/Feuchtesensors im Außenbereich
object oTa = oTHa.DPByHssDP("ACTUAL_TEMPERATURE");
object oHa = oTHa.DPByHssDP("HUMIDITY");

WriteLine (oTHi);
WriteLine (oTi);
WriteLine (oHi);

WriteLine (oTHa);
WriteLine (oTa);
WriteLine (oHa);

WriteLine (oSchimmel);
WriteLine (oLueften);

imer noch Scriptruntimeerror ?
ober irgendeine Ausgabe null ?

wenn ja, gibts eines dieser DPs nicht

Das Ausgabefeld bleibt komplett leer und im Log erscheint Script Runtime Error.

Auf Seite 17 sind die Datenpunkte für meinen Homematic IP Temperatursensoren HMIP-STHO abgebildet, deswegen habe ich ACTUAL TEMPERATUR genommen.

Mit der Seriennummer habe ich es auch schon versucht, das Skript läuft nicht.
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

Benutzeravatar
Black
Beiträge: 5460
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 417 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von Black » 04.05.2020, 11:15

irgendeine Zeile bei dir macht murks...

da kommst nun nur durch testen weiter...

zeile für zeile

zurerst nur

object oTHi = dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garage innen"); ! Name des Temperatur-/Feuchtesensors im Innenraum
WriteLine (oTHi);

bekommste ne Ausgabe, gut erweitern, bekommste keine, haste schon mal den ersten fehler

object oTHi = dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garage innen"); ! Name des Temperatur-/Feuchtesensors im Innenraum
WriteLine (oTHi);

object oTi = oTHi.DPByHssDP("ACTUAL_TEMPERATURE");
WriteLine (oTHi);

kriegste nix, haste den Fehler, kriegste was, so weiter bis du den gefunden hast.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von mbhomie007 » 04.05.2020, 11:45

Hallo,

die Variablen "Schimmel" und "Lüftungsempfehlung" werden korrekt ausgelesen.

Die Datenpunkte "ACTUAL_TEMPERATURE" und auch "HUMIDITY" werden beide nicht ausgelesen, auch wenn ich diese einzeln teste.
Das gleiche Verhalten für den "Temperatur- und Luftfeuchtigkeitssensor Garage innen" und auch "Temperatur- und Luftfeuchtigkeitssensor Garten"

Laut HMIP-Device-Doku heißen die beiden Datenpunkte aber so. :roll:

Sowas von komsch..... :shock:
Dateianhänge
Doku.png
Skript.png
Skript1.png
Skript1.png (20.01 KiB) 2960 mal betrachtet
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von paul53 » 04.05.2020, 12:00

mbhomie007 hat geschrieben:
04.05.2020, 11:45
"Temperatur- und Luftfeuchtigkeitssensor Garage innen" und auch "Temperatur- und Luftfeuchtigkeitssensor Garten"
Das sind die Namen von Kanal 1 ? Das Gerät hat einen anderen Namen ?
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von mbhomie007 » 04.05.2020, 12:06

paul53 hat geschrieben:
04.05.2020, 12:00
mbhomie007 hat geschrieben:
04.05.2020, 11:45
"Temperatur- und Luftfeuchtigkeitssensor Garage innen" und auch "Temperatur- und Luftfeuchtigkeitssensor Garten"
Das sind die Namen von Kanal 1 ? Das Gerät hat einen anderen Namen ?
Ja genau.
Für "Temperatur- und Luftfeuchtigkeitssensor Garten" dann nach dem gleichen Schema.
Dateianhänge
Namen.png
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

Benutzeravatar
Black
Beiträge: 5460
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 417 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von Black » 04.05.2020, 12:11

herzlichen Glückwunsch...

Du Bist auf den DoppelNamen Effekt reingefallen.
Bei dir heissen gerät und der 1. Kanqal gleich, da aber, was du gerne ausprobieren kannst, das Device die niedrigere ID haben wird als der Channel.1, wird bei dem Zugriff mit dom.GetObject das Device gefunden und ein device hat nun mal keinen DP mit dem namen ACTUAL_TEMPERATUR und deshalb Script Runtime Error.

Sowas kommt dann davon...

erster Lösungsansatz wäre
schreib anstatt
dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garage innen");

mal bitte
channels.Get ("Temperatur- und Luftfeuchtigkeitssensor Garage innen");

Black

Und nen Tip, wenn du gerne programme, Systemvariuablen, Geräte und Kanäle mit gleichen namen beglückst wird dir das noch öfters auf die Füsse fallen.

Nachgestellt: ein Device und ein Kanal mit dem gleichen Namen:
DeviceChannel.JPG

wenn man nun einen DomScan macht mit dem Namen als Filter, so tauchen ein Device und ein Channel mit dem Namen auf, wobei die ID des Device kleiner ist als die des Channels
DeviceChannel2.JPG
Wenn du nun deinen Zugriff machst mit

Code: Alles auswählen

object o1= dom.GetObject ("TestWTH-3");
WriteLine (o1.Name () );
WriteLine (o1.TypeName () );   
Wird er nun das erste Object greifen, was Namensmäßig passt, und die kleine ID hat das Device:
Als Scriptausgabe ergibt dieses:

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
TestWTH-3
DEVICE
------------------------------ Script Variablen -----------------------------
[o1                ]: TestWTH-3
und damit gibt dein Script auch richtigerweis einen Scriptruntimeerror
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von mbhomie007 » 04.05.2020, 23:04

Black hat geschrieben:
04.05.2020, 12:11

erster Lösungsansatz wäre
schreib anstatt
dom.GetObject("Temperatur- und Luftfeuchtigkeitssensor Garage innen");

mal bitte
channels.Get ("Temperatur- und Luftfeuchtigkeitssensor Garage innen");

Das hat geholfen! Jetzt läuft das Skript :D :D :D

Vielen Dank für deine ausführliche Antwort und Erklärung, jetzt wird mir das klar. :shock: :o

Was mich noch wundert, das es auch nicht mit der eindeutigen Seriennummer+Kanalnummer funktioniert hat.
dom.GetObject("HmIP-RF.00XXXXX96:1")

Bei mir haben viele Geräte Kanal 1 den gleichen Namen, wie das Gerät selbst. (auch wie bei dir im Screenshot das WTH-2)
Damit auf meiner Visualisierung nicht z.B. steht "Wandthermostat Bad Kanal 1", sondern "Wandthermostat Bad".
Sieht irgenwie sonst blöde aus :lol:
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

Neuling86
Beiträge: 23
Registriert: 19.05.2020, 06:22
System: Alternative CCU (auf Basis OCCU)

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von Neuling86 » 19.05.2020, 12:54

Hallo zusammen,

Erst einmal vielen Dank für die vielen Infos.
Ich baue gerade mein bestehendes Homematic IP System auf Pi CCU um. Kurzfristig möchte ich gerne die Lüftungsempfehlung mit Anzeige umsetzen. Langfristig sicher auch Schimmelwarnung etc. Ich Kämpfe gerade Testweise das einfache Skript zum berechnen der Absoluten Feuchte zum laufen zu bringen. Meine Frage ist macht es Sinn die ganzen Sensoren direkt über CUxD einzubinden? Wenn ich dann später die Taupunkte etc. Brauche muss ich diese ja sonst nochmal ablehnen und über CUxD neu anlernen.

Viele Grüße und vielen Dank
Lukas

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von MichaelN » 19.05.2020, 13:04

Du kannst mit einem CUxD Wrapper Device auch abs. Feuchte und Taupunkt berechnen. Hat zwar den kleinen Nachteil, das die Berechnung ~1 Sekunde dauert. Funktioniert aber sehr gut. Ob das die CCU am Ende weniger belastet oder genauere Daten liefert? Weiß ich nicht, ist einfach der Weg, den ich jetzt eingeschlagen habe. Siehe viewtopic.php?f=31&t=68342&p=668294#p668294
Zuletzt geändert von MichaelN am 30.06.2021, 20:58, insgesamt 1-mal geändert.
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
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von Baxxy » 19.05.2020, 13:05

Neuling86 hat geschrieben:
19.05.2020, 12:54
Meine Frage ist macht es Sinn die ganzen Sensoren direkt über CUxD einzubinden?
Da es hier hauptsächlich um das Script geht nur ganz kurz...

Die Anbindung an CUxD-Geräte kannst du jederzeit aktivieren / deaktivieren. Da braucht nichts neu angelernt zu werden. Das ganze ist in der aktuellen (2.4) CUxD-Doku ab Seite 158 beschrieben.

Grüße
Baxxy

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“