Füllstandsmesser KFM100

Begonnen von pure-current, 23 Juni 2014, 09:07:07

Vorheriges Thema - Nächstes Thema

pure-current

Hallo,

bin relativ neu in der Thematik FHEM und habe bisher versucht, mich mit Forum und Google durchzuwursteln.
Aber jetzt bräuchte ich Hilfe.

Im Garten in meiner Zisterne hängt ein KFM100, bei dem ich die Messleitungen um ein paar cm verlängern musste, damit der Sender ausserhalb der Zisterne platziert werden konnte. Nur so ist eine Funkverbindung zum HM-LAN möglich, der Deckel der Zisterne aus Eisen/Beton schirmt sonst erfolgreich alles ab.

Das Pairing mit dem HM-LAN hat problemlos funktioniert, Telegramme kommen an und die Kalibrierung (bei entferntem Jumper im 3 sec. Takt) liefert auch perfekt ihre rawValue-werte an FHEM.

Beispiel: (Zisterne gefüllt bis 80cm)
2014-06-22_20:04:03 CUL_HM_KFM_Sensor_13AF88 Sequence: 12
2014-06-22_20:04:03 CUL_HM_KFM_Sensor_13AF88 246
2014-06-22_20:17:49 CUL_HM_KFM_Sensor_13AF88 rawValue: 294

Gestern musste die Zisterne gefüllt werden, da sie leider fast leer war. Dabei wollte ich die Füllstandswerte erfassen und so kalibrieren.
Ich weiß jetzt nicht, ob es an den verlängerten Messleitungen liegt, aber ich kriege beim kalibrieren seltsame Messwerte.

0cm  144
10cm  187
20cm  201
30cm  214
40cm  237
50cm  250
60cm  265
...
164cm  377
173cm  382
und jetzt wirds komisch (negativ!)
178cm  -127
181cm  -123
192cm  -109
203cm  -100
219cm  -93

Irgendwie schein bei knapp über rawValue 380 der Messbereich zu Ende zu sein und es werden danach negative Werte übertragen.
Ich hab versucht das mit der Funktion rawToReadable abzubilden, aber das bewirkt irgendwie gar nichts.

attr Zisterne_KFM100 rawToReadable 114:0 187:10 201:20 214:30 237:40 250:50 265:60 279:70 294:80 311:90 322:100 330:110 362:139 370:155 377:164 382:173 -127:178 -123:181 -109:192 -100:203 -93:219


1. Was sollte denn bei dem rawToReadable genau passieren? Sollte da in der Logdatei ein Eintrag mit dem Readable Value auftauchen oder wo finde ich die readable Werte denn überhaupt?

2. Sind bei rawToReadable überhaupt negative Werte zulässig? Was passiert bei dem Sprung von ~384 zu -127?

3. Lassen sich diese Messwerte irgendwie in einen "Füllstand in cm" umrechnen?

Vielen Dank schon mal für Eure Hilfe

Rainer
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

fiedel

#1
Hi Rainer,

na du machst ja Sachen!  ;) Genau das Problem mit dem Deckel habe ich auch, aber ich hbe noch nicht die Leitungen verlängert. Der Empfang ist natürlich nur sporadisch vorhanden und ich werde bei Gelegenheit versuchen, die Antenne zu verlängern.

Der errechnete Wert landet im Reading "state" des Sensors, also in dem Wert, den du im Frontend siehst. Der raw- Wert steht im Reading "rawValue". Die Funktion "rawToReadable" berechnet, wie du richtig erkannt hast, aus dem raw- Wert einen von dir gewünschten Äquivalenzwert. Ob das Liter, Hektoliter oder Kubikmeter sind, hängt davon ab, welche Faktoren du dort eingibst. Wenn deine Zisterne z.B. 8 m³ fasst und du gibst bei halbem Füllstand eine "4" ein und bei voll eine "8", dann zeigt dir der Sensor deinen Füllstand in m³ an.

Mit negativen Werten wird die Funktion nichts anfangen können. Deshalb versuche besser die Antenne (verlängern um ganzzahliges, durch Zwei teilbares Vielfaches von "Lambda"), oder auch das Funkmodul nach außen zu verlegen. Für das verlegen der Antenne solltest du Abgeschirmte 75 Ohm Antennenleitung nehmen, an deren Ende dann der Antennendraht heraushängt - oder steht.  :)
Dieses Ende kann sich ja z.B. wiederum in einem dichten Plastikgehäuse befinden.

Viel Erfolg wünscht

Frank


P.S.: Hier mal noch ein Beispiel aus meiner Zisterne (Anhang):
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

pure-current

Hallo Frank,

das mit dem Antenne verlängern habe ich auch schon versucht.
Ich hab' mir eine 886MHz Antenne mit Koax-Kabel und Magnetfuß besorgt, den Mittelleiter des Koax-Kabels an die Drahtantenne des KFM100 und die Masse an die Abschirmung des Senders gelötet, das ganze dann aus dem Hals der Zisterne nach draussen geführt und die Antenne oben auf der Zisterne aufgestellt - Ohne Erfolg.

Ich bekam keinerlei Empfang mehr. Also das hat bei mir überhaupt nicht funktioniert.
Erst als ich das Ding wieder aus der Versenkung des Zisternen-Halses geholt habe, tauchte es auf einmal wieder auf.

Irgendwo hab' ich mal gelesen, dass ein Verlängern der Sensor-Kabel kein Problem sein soll, sind ja auch nur ca. 25cm  - scheinbar aber doch...

Aber noch Mal:
Wo sollte ich denn die "Readable"-Werte sehen? Tauchen die dann statt der "rawValue" bzw zusätzlich zu den "rawValue" im Log auf?

Gruß Rainer
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

fiedel

Hm, schade das mit der Antenne. Ich versuche es trotzdem noch mal. Aber das Funkmodul wäre doch einen Versuch Wert!?

Im Log sieht das dann so aus:


2014-06-23_09:50:31 Sens_L_Zisterne rawValue: 246
2014-06-23_09:50:31 Sens_L_Zisterne Sequence: 15
2014-06-23_09:50:31 Sens_L_Zisterne 4.5
2014-06-23_09:50:31 Sens_L_Zisterne content: 4.5
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

pure-current

Hallo Fiedel,

was meinst Du mit "das Funkmodul wäre doch einen Versuch Wert?!"

wegen dem "rawToReadable":
Jetzt hab' ich's glaub' ich verstanden.
Dann scheint es bei definitiv so zu sein, dass das "rawToReadable" nicht verarbeitet wird.
Denn die Einträge wie bei Dir:
2014-06-23_09:50:31 Sens_L_Zisterne 4.5
2014-06-23_09:50:31 Sens_L_Zisterne content: 4.5
...gibt es bei mir nicht.

Bei mir lauten die letzten 3 Log Einträge:
2014-06-23_09:18:54 Zisterne_KFM100 rawValue: -78
2014-06-23_09:18:54 Zisterne_KFM100 Sequence: 3
2014-06-23_09:49:54 Zisterne_KFM100 rawValue: -78
2014-06-23_09:49:54 Zisterne_KFM100 Sequence: 4
2014-06-23_10:20:39 Zisterne_KFM100 rawValue: -78
2014-06-23_10:20:39 Zisterne_KFM100 Sequence: 5

Woher kommt denn das "content"? Ist das per Definition automatisch hinterlegt, dass es sich dabei um einen "content" handelt oder gibst Du das per "attr" irgendwie mit an?

Ich müsste dann halt meine Füllstände in m³ umrechnen, wäre ja kein Ding, aber wenn er negative Werte eh nicht verarbeitet bringt mich das ja nicht weiter....


Gruß Rainer
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

fiedel

Hi Rainer,

das "Content" kommt automatisch mit und ist glaub ich immer gleich dem errechneten "state".
Mit Funkmodul meine ich das HomeMatic- HF- Modul (Silbernes flaches "Kästchen") von der Platine ablöten und per Kabel nach außen verlegen. Ist ein bissel gebastel, aber wenn das mit der Antenne nicht geht, dann muss wenigstens das gehen.

Zum testen vom raw2read... zieh doch mal die Strippen aus dem Wasser, bis du wieder pos. Werte kriegst. Dann sollte es gehen.

Meine Def:


define Sens_L_Zisterne CUL_HM <indiv. Wert>
attr Sens_L_Zisterne .devInfo 010101
attr Sens_L_Zisterne .stc 60
attr Sens_L_Zisterne IODev HM_USB
attr Sens_L_Zisterne autoReadReg 0
attr Sens_L_Zisterne expert 2_full
attr Sens_L_Zisterne firmware 1.2
attr Sens_L_Zisterne group Zisterne
attr Sens_L_Zisterne model KFM-Sensor
attr Sens_L_Zisterne peerIDs
attr Sens_L_Zisterne rawToReadable 4:0 164:2.03 236:4.10 284:6.13 330:8.16
attr Sens_L_Zisterne room 4_Garten
attr Sens_L_Zisterne serialNr <indiv. Wert>
attr Sens_L_Zisterne subType KFM100


FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

pure-current

Wow! Heureka!
Ich hab' einen kleinen Etappensieg errungen.

Ich habe gerade vorhin die Werte für RawToReadable mal auf m³ umgerechnet und einen "shutdown restart" durchgeführt, und siehe da, plötzlich hatte ich eine zusätzliche Zeile mit content im Log (die Einheit cm steht da fälschlich noch drin, hatte ich von vorher nicht geändert.

2014-06-23_11:53:32 Zisterne_KFM100 Sequence: 8
2014-06-23_11:53:32 Zisterne_KFM100 content: 7.0 cm
2014-06-23_11:53:32 Zisterne_KFM100 rawValue: -78

So wie es aussieht wird jetzt das RawToReadable ausgeführt.

Rainer
Allerdings sieht es so aus, dass meine Kommas ignoriert werden (-100:6,4 -93:6,9 -78:7,4)
Ich vermute mal ich muss das mit "." statt mit "," machen.

In einem anderen Beispiel habe ich gesehen, dass mit Litern gerechnet wurde, ich hab' jetzt mal (um die Kommas zu umgehen) auch auf Liter umgestellt, mal sehen, was passiert...
(Readings kommen ja nur alle 31 min)

Gruß Rainer
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

pure-current

OK, auch das hat funktioniert, der letzte LogEintrag lautete:

2014-06-23 12:24:33 CUL_HM Zisterne_KFM100 rawValue: -78
2014-06-23 12:24:33 CUL_HM Zisterne_KFM100 Sequence: 9
2014-06-23 12:24:33 CUL_HM Zisterne_KFM100 7400.0
2014-06-23 12:24:33 CUL_HM Zisterne_KFM100 content: 7400.0
(die Zeile mit "unit" habe ich wieder auskommentiert)

Wenn ich mir das anschaue, lag's wohl am "shutdown restart"
Denn die Werte in cm hätten somit ja wohl auch funktionieren sollen.

Bin nur gespannt, was passiert, wenn der Übergang von den negativen rawValues auf die positiven erfolgt....

Gruß Rainer
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

stromer-12

Die negativen Werte hatte ich beim letzten großen Regenschauer auch.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

pure-current

@stromer-12:
Nur vorübergehend?
Weil so wie es aussieht sind die Werte bei mir dauerhaft so...

Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

fiedel

Kleiner Nachtrag zur Funkreichweite:

Mein KFM-100S ist ja in der Zisterne eingebaut und hatte RSSI- Werte um die -80. Die Funktelegramme kamen nur sehr sporadisch beim Empfänger an und ich brauche eine zuverlässige Aussage über den Füllstand, weil dieser in die Steuerung meiner Gartenbewässerung eingreift.

Ich habe versuchsweise die Antenne des Sensors verlängert (dünne Litze, wie die Originalantenne, an dieser angelötet). Letztendlich ist Folgendes herausgekommen:

Die Antenne hat jetzt eine Gesamtlänge von 35 cm (Lambda x1 ). Sie ist unten mit aus einem der Messleitungs- Verschraubungen herausgeführt und dann horizontal an der Zisternenwandung verlegt - so, dass die Wellenausbreitung in Richtung Empfänger zeigt.
Die RSSI- Werte haben sich dadurch nicht verändert. Der beste Wert war -73, als ich einen Teil der 35cm- Antenne oben aus dem Deckel habe rausgucken lassen. Allerdings kommen trotz gleich schlechter RSSI- Werte die Telegramme nun zuverlässig.

Wie sagt man doch so schön: Das Ergebnis zählt, oder Zitat Saumagenkanzler: "Wichtig ist, was hinten rauskommt..."  ;D
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423