Open Antannah opened 1 year ago
Tja, kann ich nicht nachvollziehen, da bei allen Nachrichten der Feuchtewert gleich 0 ist.
Wieso jeweils die Meldung
se_bodenfeuchte91 ERROR - Hum diff too large (old 54, new 0, diff 54.0)
erscheint, ist mir schleierhaft.
Poste bitte mal ein list beider Sensoren.
define se_bodenfeuchteC1 SD_WS SD_WS_107_H_0D32C1
setuuid se_bodenfeuchteC1 642854c3-f33f-c50d-9e8a-34ac0e9eba80b1ee
attr se_bodenfeuchteC1 group Feuchte
attr se_bodenfeuchteC1 icon weather_rain_gauge
attr se_bodenfeuchteC1 room Bewaesserung,Blumen
define se_bodenfeuchte91 SD_WS SD_WS_107_H_0D2F91
setuuid se_bodenfeuchte91 64285ce1-f33f-c50d-1790-7b280a76decde256
attr se_bodenfeuchte91 group Feuchte
attr se_bodenfeuchte91 icon weather_rain_gauge
attr se_bodenfeuchte91 room Bewaesserung,Blumen
define sduinoESP SIGNALduino 192.168.125.131:23
setuuid sduinoESP 5c6268e0-f33f-c50d-70ad-7ae2f0c49c82d535
attr sduinoESP group Devices
attr sduinoESP hardware ESP8266cc1101
attr sduinoESP longids 1
attr sduinoESP rfmode Fine_Offset_WH51_868
attr sduinoESP room System
attr sduinoESP verbose 3
Ich kann es nicht nachvollziehen. Bei mir landen die Nachrichten im jeweils richtigen Device:
Internals:
CFGFN
CODE SD_WS_107_H_0D2F91
DEF SD_WS_107_H_0D2F91
FUUID 64294fe2-f33f-9025-fb24-10663c093f6d7a56
LASTInputDev [sduino_dummy](http://raspberrypi3:8083/fhem?detail=sduino_dummy)
MSGCNT 4
NAME [se_bodenfeuchte91](http://raspberrypi3:8083/fhem?detail=se_bodenfeuchte91)
NR 2723
STATE
TYPE SD_WS
bitMSG 0101000100001101001011111001000100010000011111110000000011111000001111011111111111111111111111111100000010011111
eventCount 4
lastMSG 510D2F91107F00F83DFFFFFFC09F
lastReceive 1680435271.42514
sduino_dummy_DMSG W107#510D2F91107F00F83DFFFFFFC09F
sduino_dummy_MSGCNT 5
sduino_dummy_Protocol_ID 107.1
sduino_dummy_RAWMSG MN;D=510D2F91107F00F83DFFFFFFC09F;R=80;
sduino_dummy_RSSI -34
sduino_dummy_TIME 2023-04-02 13:34:31
Helper:
DBLOG:
RSSI:
[myDbLog](http://raspberrypi3:8083/fhem?detail=myDbLog):
TIME 1680435271.43084
VALUE -34
RXMIT_TIME:
1680435271.42521
READINGS:
2023-04-02 13:34:31 adc 61
2023-04-02 13:34:31 batteryVoltage 1.6
2023-04-02 13:34:31 state
2023-04-02 11:50:30 type WH51, DP100, MISOL/1
Attributes:
event-min-interval .*:300
event-on-change-reading .*
room Test
Internals:
CFGFN
CODE SD_WS_107_H_0D32C1
DEF SD_WS_107_H_0D32C1
FUUID 64294f17-f33f-9025-422a-d5ba9a701ec996f1
LASTInputDev [sduino_dummy](http://raspberrypi3:8083/fhem?detail=sduino_dummy)
MSGCNT 10
NAME [se_bodenfeuchteC1](http://raspberrypi3:8083/fhem?detail=se_bodenfeuchteC1)
NR 2676
STATE
TYPE SD_WS
bitMSG 0101000100001101001100101100000100010000011111110000000011111000001110001111111111111111111111110110000001101101
eventCount 10
lastMSG 510D32C1107F00F838FFFFFF606D
lastReceive 1680435200.67498
sduino_dummy_DMSG W107#510D32C1107F00F838FFFFFF606D
sduino_dummy_MSGCNT 10
sduino_dummy_Protocol_ID 107.1
sduino_dummy_RAWMSG MN;D=510D32C1107F00F838FFFFFF606D;R=88;
sduino_dummy_RSSI -30
sduino_dummy_TIME 2023-04-02 13:33:20
Helper:
DBLOG:
RSSI:
[myDbLog](http://raspberrypi3:8083/fhem?detail=myDbLog):
TIME 1680435200.68071
VALUE -30
RXMIT_TIME:
1680435200.67504
READINGS:
2023-04-02 13:33:20 adc 56
2023-04-02 13:33:20 batteryVoltage 1.6
2023-04-02 13:33:20 state
2023-04-02 11:47:07 type WH51, DP100, MISOL/1
Attributes:
event-min-interval .*:300
event-on-change-reading .*
room Test
Der einzige Unterschied ist, das ich beim Attribut longids als Wert SD_WS_107_H eingetragen habe. Die 1 kann ich nicht probieren, da es mir dann etliche Sensoren neu anlegen würde.
@elektron-bbs Ich könnte das auf meinem Testsystem testen. Was hast Du dispatcht?
Ich habe die Nachrichten aus seinem ersten Posting dispatcht.
So, jetzt geht es auch bei mir. Habe longids auf SD_WS_107_H gesetzt und die event.* kommandos in den sensoren gesetzt. Außerdem habe ich für den Anfang max-deviation-hum auf 50 gestellt. Außerdem habe ich neu-gestartet. Danke schonmal, ich setze sie jetztmal in den Garten.
Ich hab es bei mir getestet
Klappt auch wenn das attribut longid auf 1 gesetzt ist:
2023.04.02 16:18:38.069 5: dummyDuino: dispatch W107#510D32C1107F00F838FFFFFF606D
2023.04.02 16:18:38.070 4: dummyDuino: SD_WS_Parse protocol 107, rawData 510D32C1107F00F838FFFFFF606D
2023.04.02 16:18:38.070 4: dummyDuino: SD_WS_Parse decoded protocol-id 107 (WH51, DP100, MISOL/1), sensor-id 0D32C1
2023.04.02 16:18:38.071 4: dummyDuino: using longid for 1 device SD_WS_107_H_0D32C1
Ich habe auch vorher eine Definition ohne longids angelegt. Einzig ist mir aufgefallen, dass das Reading humidity nicht gesetzt wird, aber das steht vermutlich auf 0.
@elektron-bbs
Sollten wir das Reading nicht moisture benennen? Mit AdC kann ich nichts anfangen. Was bedeutet das überhaupt?
Grüße Sidey
Moisture bedeutet ja auch nur Feuchtigkeit. Ich wollte nicht noch ein zusätzliches Reading.
ADC = AnalogDigitalConverter - das ist der RAW-Wert vom Analog-Digital-Wandler. Der User hat damit die Möglichkeit, den Bodenfeuchtewert selbst zu kalibrieren. Zitat aus der Doku zum DP100:
Der Feuchtigkeitsgehalt wird basierend auf der standardmäßigen Trocken- und Nassdefinition berechnet: Dry (Trocken) (0%AD) AD: 70 Wet (Feucht) (100% AD) AD: 500 Soil Moisture (Bodenfeuchte) = (moisture AD – 0%AD) 100% / (100% AD – 0%AD) Beispiel: wenn die Sensorfeuchte AD 310 beträgt, ist die berechnete Feuchte: (310 – 70)*100% / (500 – 70) = 56% Dies ist ein lineares System mit fester Steigungsrate.
Wenn die Topferde bei trockenem oder nassem Zustand nicht den Ausgangswert des Feuchtesensors angibt, der nahe an seiner Standardannahme liegt, liefert sie ungenaue Feuchtewerte. Es kommt häufig bei verschiedenen Bodenarten vor, die bei gleichem Feuchtigkeitsgehalt sehr unterschiedliche Leistungswerte liefern. Wir haben diesen benutzerdefinierten Modus eingeführt, um diesen Hang flexibel zu gestalten, so dass er an Ihre Bodenart angepasst werden kann.
Dies wird zu einem linearen System mit variabler Steigungsrate. Einstellprinzip: 0%AD wird verwendet, um die Inkonsistenz der Messwerte bei Trockenheit anzupassen. Wenn die angezeigten Feuchtewerte bei trockenem Boden zu hoch sind, können Sie die Neigungsrate durch Erhöhen des 0%AD-Wertes verringern. 100%AD wird verwendet, um die Inkonsistenz der Messwerte bei Nässe anzupassen. Wenn die angezeigten Feuchtewerte bei extrem nasser Bodenbeschaffenheit zu niedrig sind, können Sie den 100%AD-Wert verringern, um ihn zu fixieren. Bitte beachten Sie das folgende Beispiel zum besseren Verständnis. Beispiel: Wenn Sie dieses Produkt zum ersten Mal verwenden, schalten Sie bitte den Custom-Modus aus und testen Sie das Produkt in den folgenden beiden Situationen: Situation 1: Sie haben Ihre Topfpflanze mit genügend Wasser gegossen und der Boden sollte extrem nass sein, aber die angezeigten Feuchtigkeitswerte sind viel niedriger als 95% (z.B. 70%). Lösung: Aktivieren Sie den Custom-Modus und passen Sie den Wert 100%AD an. Berechnen Sie den 100%AD-Wert mit der Formel: Bodenfeuchte = (Feuchtigkeit AD - 0%AD) 100% / (100% AD - 0%AD) Wenn: Jetzt AD = 183 0%AD = 70 Soll-Bodenfeuchtemessung = 95%. Dann: 95% = (183 - 70)100%/(100%AD- 70) Lösung: 100%AD= 188 (nimm den ganzzahligen Teil) Dann können Sie den Standardwert von 0%AD auf 188 einstellen und den Bildschirm einmal berühren, um die Daten zu aktualisieren. Wenn Sie den erwarteten Feuchtigkeitswert erhalten haben, klicken Sie auf Speichern, um die Einstellung zu speichern. Situation 2: Ihre Topfpflanze wird seit sehr langer Zeit nicht mehr gegossen und die Erde ist extrem trocken. Bei diesem trockenen Zustand sind die angezeigten Feuchtewerte deutlich höher als 10% (z.B. 40%). Lösung: Aktivieren Sie den Custom-Modus und passen Sie den 0%AD-Wert an. Berechnen Sie den 0%AD-Wert mit der Formel: Bodenfeuchte = (Feuchtigkeit AD - 0%AD) 100% / (500 - 0%AD) Wenn: Jetzt AD = 183 100%AD = 500 Ziel: Bodenfeuchtemessung = 10%. Dann: 10% = (183 - 0%AD)100%/(500 - 0%AD) Ergebnis: 0%AD= 147 (nimm den ganzzahligen Teil)
Hallo, mehrere Sensoren des Typs werden in FHEM nicht verarbeitet. Ich habe zwei WH51 Bodenfeuchtesensoren gekauft und den Signalduino aus einem WemosD1mini (ESP8266) und einem cc1101 mit 868MHz aufgebaut. Dort habe ich das binary 3.5.0 geflashed und im FHEM die aktuellen 3.5.4er updates (1.4.2023) aufgespielt. Signalduino geht prinzipiell auch, die Botschaften werden empfangen und dekodiert. Es wird allerdings nur ein Sensor (SD_WS) ausgewertet. Sensor S1 hat die ID 0D32C1 (Aufkleber auf dem Sensor) heißt im FHEM se_bodenfeuchteC1 Sensor S2 hat die ID 0D2F91 heißt im FHEM se_bodenfeuchte91 Der SignalDuino in FHEM heißt sduinoESP, dort habe ich "rfmode Fine_Offset_WH51_868" und "longids 1" eingestellt.
Die Readings von S2 tragen das heutige Datum und scheinen damit ab und zu aktualisiert zu werden. Die Readings von S1 tragen als letztes Datum den Moment, als ich S21 hinzugefügt habe und werden folglich nicht aktualisiert.
Hier das LOG:
Ich erkenne: S1 wird auf S2 gemapped, kommt mit den dortigen Werten durcheinander, und wird dann gedropped: