4-20 mA Sensor Anbindung Homematic

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Elton9891 » 24.05.2022, 21:19

Elton9891 hat geschrieben:
16.05.2022, 21:52
Also es wird auch ein 4-20mA Sensor um genauer zu sein dieser. Der Sensor sollte morgen ankommen. https://www.amazon.de/gp/product/B08QXH ... UTF8&psc=1
Ich hoffe ich darf den Link hier so reinstellen falls nicht, änder ich post gleich wieder.

Edit:
Als Display hatte ich an ein AZDelivery 1,77 Zoll SPI TFT Display 128x160 Pixel ST7735 gedacht, das habe ich noch von einem alten Projekt über, welches aber nie umgesetzt wurde. Vielleicht kann man das ja mit verwenden. Allerdings würde das Display auch einige der Bereits verwendeten Pins belegen. Laut meinen Recherchen sieht die Belegung des Displays am Arduino Nano wie folgt aus.
Nano - TFT
5V = BLE, 5V
D13 = SDL
D11 = SDA ( Belegt von HM-MOD-EM )
D9 = RS ( Belegt von HM-MOD-EM )
D10 = CS ( Belegt von HM-MOD-EM )
D8 = RET ( Belegt von HM-MOD-EM )
GND = GND
Moin moin,

Die optionale Anzeige am hm-currentloop, habe ich bereits extern mittel Wemos und dem genannten Display realisieren können.

Jetzt hätte ich noch ein paar Fragen zur Inbetriebnahme.
1) Der Datenpunkt in der Systemvariable Zisternenfüllstand wird in was ausgegeben? Liter oder m?
2) Welche Datenpunkte muss ich anpassen, damit ich möglichst genaue Messergebnise erzielen?
3) Für die Kalibration des Sensors muss dieser sich bereits im Brunnen befinden, oder kann ich das ganze auch an "Land" auf dem Schreibtisch kalibrieren?

Edit:
Anbei habe ich mal ein Bild vom Brunnen angehangenBild
Dateianhänge
Brunnen.png

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Mathias » 24.05.2022, 22:20

Elton9891 hat geschrieben:
24.05.2022, 21:19
Jetzt hätte ich noch ein paar Fragen zur Inbetriebnahme.
1) Der Datenpunkt in der Systemvariable Zisternenfüllstand wird in was ausgegeben? Liter oder m?
Das kannst Du Dir aussuchen (l, m, %, ..). Der Messbereich wird im Skript festgelegt.

Hiermit bekommst Du 0 bis 5 m:

Code: Alles auswählen

var M_rangeBegin = 0.0; ! measurment value at 4.0 mA
var M_rangeEnd = 5.0;   ! measurement value at 20.0 mA
Für Deinen Fall könntest Du 0,1 m bis 5,1 m nehmen, unabhängig davon, dass nur 2,6 m möglich sind:

Code: Alles auswählen

var M_rangeBegin = 0.1; ! measurment value at 4.0 mA
var M_rangeEnd = 5.1;   ! measurement value at 20.0 mA
Du könntest die Messwertauflösung um etwa Faktor 2 verbessern, wenn Du in main.cpp LOOP_CURRENT_MAX abänderst. Bei max. 2,6 m Wassersäule über den Sensor liefert dieser 12,32 mA, zuzüglich Reserve von 12,5% wären das 13,86 mA.

Code: Alles auswählen

// maximum valid loop current [mA]
// (12.5% overdrive range is included)
const auto LOOP_CURRENT_MAX = 13.86;
Im Skript müssten dann folgende Konstanten abgeändert werden. Die 0,1 m des Sensors über den Boden müssen auf den Messbereich aufgeschlagen werden:

Code: Alles auswählen

var M_rangeBegin = 0.1; ! measurment value at 4.0 mA
var M_rangeEnd = 2.7;   ! measurement value at 12.32 mA

var I_rangeBegin = 4.0; ! [mA]
var I_rangeEnd = 12.32;  ! [mA]

var I_min = 2.0;  ! LOOP_CURRENT_MIN in main.cpp
var I_max = 13.86; ! LOOP_CURRENT_MAX in main.cpp
Elton9891 hat geschrieben:
24.05.2022, 21:19
2) Welche Datenpunkte muss ich anpassen, damit ich möglichst genaue Messergebnise erzielen?
Wenn der Messwert vom tatsächlichen Wert etwas abweicht, kannst Du den Messbereich etwas anpassen.
Elton9891 hat geschrieben:
24.05.2022, 21:19
3) Für die Kalibration des Sensors muss dieser sich bereits im Brunnen befinden, oder kann ich das ganze auch an "Land" auf dem Schreibtisch kalibrieren?
Der Sensor liefert schon ganz gute Werte. 5m Wassersäule auf dem Schreibtisch ist auch schwer zu realisieren.

Gruß
Mathias

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Elton9891 » 26.05.2022, 13:38

Moin moin Mathias,

Vielen Dank erstmal für deine schnelle Rückmeldung und genauere Anleitung.

ich habe die Werte jetzt soweit alle geändert. Aber irgendwie wird mir ein Wert von -100 angezeigt. Was ja laut dem Script auf einen Fehler hindeutet. Kann ich das ganze jetzt im trockenem Zustand testen, oder ist das normal, weil der Sensor nicht im Wasser hängt?

EDIT:
Nach etwas genauerem durchmessen und testen. Habe ich rausgefunden, das die Werte vom Arduino Nano anscheinend nicht sauber rein kommen. Ich habe hier mein einen kurzen Log mit angehängt. Ich denke mir, das dort noch viele Fehler drin sind.

Die Meldungen ADC:0 - Out of range - delta not reached sowie die Time not elapsed dort kommen keine Werte rein, oder es werden keine Messwerte übertragen. Korrigiert mich bitte, wenn ich falsch liege. Der Sensor wurde zwischenzeitig immer mal wieder in die Luft und in einen Kübel mit Wasser gehalten um verschiedene Messpunkte zu erhalten.



Executing task in folder hm-currentloop: C:\Users\Kevin\.platformio\penv\Scripts\platformio.exe device monitor --environment nanoatmega328 <

--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Miniterm on COM12 115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
*** HM-CURRENTLOOP ***
ADC_MIN: 87
ADC_MAX: 606
---
ADC: 0
OUT OF RANGE
SENT
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 201
ADC: 205
ADC: 205
ADC: 203
ADC: 202
ADC: 204
ADC: 205
ADC: 203
AVG: 203
OUT: 56
SENT
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
ADC: 204
ADC: 201
ADC: 203
ADC: 205
ADC: 204
ADC: 202
ADC: 202
ADC: 205
AVG: 203
DELTA NOT REACHED
---
ADC: 201
ADC: 202
ADC: 205
ADC: 205
ADC: 201
ADC: 202
ADC: 205
ADC: 205
AVG: 203
DELTA NOT REACHED
---
ADC: 200
ADC: 205
ADC: 205
ADC: 202
ADC: 202
ADC: 205
ADC: 205
ADC: 202
AVG: 203
DELTA NOT REACHED
---
ADC: 201
ADC: 204
ADC: 205
ADC: 201
ADC: 201
ADC: 204
ADC: 204
ADC: 202
AVG: 202
DELTA NOT REACHED
---
ADC: 202
ADC: 203
ADC: 205
ADC: 203
ADC: 201
ADC: 202
ADC: 205
ADC: 205
AVG: 203
DELTA NOT REACHED
---
ADC: 203
ADC: 201
ADC: 204
ADC: 205
ADC: 202
ADC: 202
ADC: 204
ADC: 205
AVG: 203
DELTA NOT REACHED
---
ADC: 205
ADC: 203
ADC: 201
ADC: 203
ADC: 205
ADC: 202
ADC: 201
ADC: 204
AVG: 203
DELTA NOT REACHED
---
ADC: 180
ADC: 182
ADC: 180
ADC: 179
ADC: 181
ADC: 182
ADC: 180
ADC: 178
AVG: 180
OUT: 45
SENT
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
ADC: 204
ADC: 201
ADC: 202
ADC: 205
ADC: 204
ADC: 202
ADC: 202
ADC: 205
AVG: 203
OUT: 56
SENT
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
ADC: 0
OUT OF RANGE
SENT
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
TIME NOT ELAPSED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED
---
ADC: 0
OUT OF RANGE
DELTA NOT REACHED

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Mathias » 27.05.2022, 16:01

Zwischendurch waren mal ADC-Werte von ca. 200, ist sieht gut aus. Aber bei einem korrekten Anschluss vom Sensor sollte nie ein ADC-Wert von 0 kommen: Vielleicht ein Wackelkontakt. Der Sensor kann auch im Trockenen liegen, sollte dann aber auch 4 mA liefern und damit ein ADC-Wert größer als 0.

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Elton9891 » 27.05.2022, 20:25

Moin Mathias,

Vielen Dank für deine Ferndiagnose. Ich hatte zwischenzeitig, mal etwas genauer geschaut und das Kabel einfach mal um 10cm gekürzt. Das Kabel hatte anscheinend irgendwo wirklich einen Kabelbruch. Jetzt läuft es und der Sensor übermittelt einen 40Wert an die CCU wenn der Sensor im Trocknen liegt. Hängt der Sensor im Kübel Wasser mit etwa einer Füllhöhe von 25cm bekomme ich einen Wert von 56 angezeigt. Jetzt muss ich das nur noch in die SysVar. bekommen und mir direkt umrechnen lassen. Denn diese zeigt noch direkt 0,00 an.

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: 4-20 mA Sensor Anbindung Homematic

Beitrag von Elton9891 » 28.08.2022, 06:43

Moin moin zusammen,

ich muss das ganze leider nochmal wieder hochholen. Ich bekomme die Auswertung einfach nicht zum laufen. Der Sensor ist jetzt im Brunnen verbaut. Bei einem Datenpunkt von 47 saugt die Pumpe kein Wasser mehr an. Sprich die Pumpe geht auf Störung. Ich hätte jetzt gesagt, das ich den Datenpunkt von 47 als meine 0% Inhalt als Auswertung annehme.
Wie kann ich die Werte jetzt anpassen, das ich den Messbereich so verschiebe?
Aktuell zeigt mir den Datenpunkt 92 an und die Auswertung zeigt immernoch 0% Füllstand an. Ich habe schon mehrfach das Programm und die Systemvariable gelöscht und neu angelegt, leider ohne Erfolg.

Ich hoffe ihr könnt mir da weiterhelfen.
Vielen Dank im Vorraus.

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“