0-10 V Eingang auslesen und umrechnen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Sanguis
Beiträge: 48
Registriert: 12.11.2022, 20:56
System: CCU
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

0-10 V Eingang auslesen und umrechnen

Beitrag von Sanguis » 18.02.2024, 01:57

Hallo zusammen

Ich hänge grade fest und komme nicht weiter
Ich habe im Garten ein IO Schnittstellenmodul verbaut und an den Analogeingängen Bodenfeuchtesensoren angeschlossen.
Sensoren arbeiten, im Web UI sehe ich unter Geräten auch die anliegende Spannung ... soweit so gut.

Nun möchte ich diese Spannung auslesen, umrechnen und das ganze dann in eine Systemvariable mit 0-100% schreiben.

Dazu nutze ich folgendes Script:

tmin = 0.0;
tmax = 100.0;

! Wert 0...10 V einlesen
u = dom.GetObject("Garten Bodenfeuchte Hecke").DPByHssDP("VALUE").Value();
! berechnen
t = tmin + (tmax - tmin) * u / 1000;
! T in SV schreiben
dom.GetObject("Bodenfeuchte Hecke").State(t);


Egal was ich mache ... die Systemvariable bleibt auf 0 stehen ... auch wenn ich das ganze in "Script testen" ausprobiere ... selbst wenn ich nur:

u = dom.GetObject("Garten Bodenfeuchte Hecke").DPByHssDP("VALUE").Value();
dom.GetObject("Bodenfeuchte Hecke").State(t);

in "Script testen" eingebe bleibt die Systemvariable immer noch auf 0

Programmname, Sensorname und Name der Systemvariable kommen nicht mehrfach vor, das habe ich geprüft.

Habe keinen Plan warum die Variable auf 0 bleibt, hoffe jemand hat einen Tip für mich

Tyfys
Beiträge: 566
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 28 Mal
Danksagung erhalten: 130 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Tyfys » 18.02.2024, 06:55

Skriptvariablen müssen deklariert werden.
zB als var / integer / real / string.
am Besten natürlich mit dem richtigen Typ.

probier das im Testfenster:

Code: Alles auswählen

var u = dom.GetObject("Garten Bodenfeuchte Hecke").DPByHssDP("VALUE").Value();
WriteLine(u);
WriteLine(u.Type());
dom.GetObject("Bodenfeuchte Hecke").State(u);
Gruß
Harry

Sanguis
Beiträge: 48
Registriert: 12.11.2022, 20:56
System: CCU
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Sanguis » 18.02.2024, 11:33

Es kommt weder eine Ausgabe im Testfenster noch eine Änderung der Systemvariable

Sanguis
Beiträge: 48
Registriert: 12.11.2022, 20:56
System: CCU
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Sanguis » 18.02.2024, 12:17

Hier ist das komplette Script das eigentlich laufen soll ... ich hatte das immer kleiner gemacht zum Testen:
! 0-10 V in % für SV (Typ: Zahl) umrechnen
real tmin; ! Bodenfeuchte in % bei 0 V
real tmax; ! Bodenfeuchte in % bei 10 V
real t; ! TemperaturBodenfeuchte in %
real u; ! Wert vom 0-10-V-Eingang

! Kennlinie
tmin = 0.0;
tmax = 100.0;

! Wert 0...10 V einlesen
u = dom.GetObject("Garten Bodenfeuchte Hecke").DPByHssDP("VALUE").Value();
! Feuchte berechnen
t = tmin + (tmax - tmin) * u / 1000;
! Temperatur in SV schreiben
dom.GetObject("Bodenfeuchte Hecke").State(t);
Die Variablen und Eingangsnamen habe ich mehrfach geprüft
Das Web Ui Programm heisst "Garten Feuchte Hecke" es sollten also nirgendwo Namensüberschneidungen auftauchen
Der Eingang "Garten Bodenfeuchte Hecke" misst im Moment 1,48 V
Aber die Variable "Bodenfeuchte Hecke" bleibt stur auf 0

Egal ob ich das im Script Testfenster ausführe oder über dieses UI Programm
Screenshot 2024-02-18 121633.jpg

Tyfys
Beiträge: 566
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 28 Mal
Danksagung erhalten: 130 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Tyfys » 18.02.2024, 12:29

Mir fällt grad auf, dass der Datenpunkt mit VALUE angegeben ist.
Stimmt der denn ?
In den Dokus gibt es den nur insgesamt 1 mal.
Meist wird sowas in STATE dargestellt.


Das gar nichts bei dem Mini-Skript ausgegeben wird, deutet daraufhin, dass der Datenpunkt VALUE nicht / nicht in dem Kanal vorhanden ist.
Ist denn der Kanalname richtig ?
Und um welches HM / HmIP -Gerät handelt es sich ?

PS: Skripts immer in Code-Tags posten ( </> )
Gruß
Harry

Benutzeravatar
robbi77
Beiträge: 13877
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 744 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von robbi77 » 18.02.2024, 12:32

Was berechnest du da überhaupt?

tmin + (tmax - tmin) * u / 1000 = ?

tmin = 0
tmax = 100

Da ist tmax - tmin immer 100 … warum jedesmal mit berechnen?

tmin + 100 ergibt dann auch immer 100 …

100 * u / 1000 = ? Würde dann eher passen … würde zwar das gleiche rauskommen, aber ohne vorherige Rechnerei.

Wenn ich mir das nochmal durchlese, die Formel stimmt ja gar nicht.

10V = 100%
5V = ?

5 * 100 / 10 = 50%
Also u * 100 / 10 = Feuchte in %

Oder übersehe ich was??

PS:
War da nich auch was das im Script von hinten nach vorne gerechnet wird?

Homematicbeginner
Beiträge: 374
Registriert: 13.07.2013, 10:46
Wohnort: Rheinhessen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 5 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Homematicbeginner » 18.02.2024, 12:44

Hallo,

evtl. hilft dir dieser Beitrag weiter
viewtopic.php?f=31&t=12216&p=100567&hil ... or#p100567

Ich hatte meine Bodenfeuchtesensoren auch mal über Skript ausgewertet, habe aber relativ schnell auf CUXD Transform Device umgestellt da die Rohwerte doch oftmal sehr schwanken und auch nicht sonderlich linear sind.

Gruß
Homematicbeginner

Sanguis
Beiträge: 48
Registriert: 12.11.2022, 20:56
System: CCU
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Sanguis » 18.02.2024, 12:54

habe selbst gemerkt das die Formel einen kleinen Fehler hatte:

t = tmin + (tmax - tmin) * (u / 10);

sollte es ein ... Kopierfehler

Messbereichsanfang +(Messbereich)*(Wert / Messbereich

Rechenbeispiel bei 0-100 %

T=0+(100-0)*(1,48/10)

Da sollten dann 14,8 % rauskommen .... aber es bleibt bei sturen 0 %

Sanguis
Beiträge: 48
Registriert: 12.11.2022, 20:56
System: CCU
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Sanguis » 18.02.2024, 12:57

Kanalname stimmt definitiv, ich habe alles um Schreibfehler zu vermeiden noch mal per Copy&Paste ins Script gebracht

Ich habe das grundsätzliche Script hier aus dem Forum und nur angepasst ... daher der Rechenfehler

Xel66
Beiträge: 14220
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 593 Mal
Danksagung erhalten: 1510 Mal

Re: 0-10 V Eingang auslesen und umrechnen

Beitrag von Xel66 » 18.02.2024, 12:57

Du weißt aber schon, dass die Scriptlogik von rechts nach links rechnet? Und der (erste) rechte Wert bestimmt den Zahlentyp. Und Komma gibt es auch nicht, sondern Punkt ist der Dezimaltrenner.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“