Radar basierter WiFi-Niederschlagssensor für Regen, Hagel und Schnee

Begonnen von chunter1, 10 Juni 2017, 13:07:48

Vorheriges Thema - Nächstes Thema

justme1968

warum wird fhem für die übertragung von 40 werten blockiert? das sollte kein problem sein. zumindest mit der KeyValueProtokoll variante. erst recht da das schreiben und lesen mehr oder weniger asynchron ist. auch die 240 werte sollten kein problem sein wenn nur die jeweils geänderten daten übertragen werden. das kommt aber auf einen versuch an.

für jedes reading eine http verbindung mit allem drum und dran aufzubauen um das setreading in den dummy los zu werden erzeugt aber vermutlich tatsächlich einiges an overhead.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

chunter1

Zitat von: justme1968 am 04 Juli 2017, 17:21:33
für jedes reading eine http verbindung mit allem drum und dran aufzubauen um das setreading in den dummy los zu werden erzeugt aber vermutlich tatsächlich einiges an overhead.

Genau, so ist es.
Vorallem die Balkengrafik frisst Zeit, ist aber fürs Debuggen und Analysieren sehr hilfreich.

AxelSchweiss

Spricht denn was dagegen den Code auf KVP oder MQTT umzubauen ( nur senden) ?
Für den DebugOutput könnte man dann einen zusätzlichen Port aufmachen und dannmittels Telnet mitlesen.

Ansonsten muss ich mir eine zweite FHEM-Instanz aufbauen um die produktive nicht zu gefährden. :(


sbiermann

Zitat von: AxelSchweiss am 04 Juli 2017, 17:58:35
Ansonsten muss ich mir eine zweite FHEM-Instanz aufbauen um die produktive nicht zu gefährden. :(
Was mittels Docker ja kein Thema ist. Ich habe auch eine Container Instanz am laufen für solche Tests.

KVP bzw. MQTT lässt sich ziemlich einfach implementieren wenn der Sourcecode auf Github vorhanden ist. Dann können mehrere Leute mithelfen das umzusetzen.

AxelSchweiss

Zitat von: sbiermann am 04 Juli 2017, 18:36:20
Was mittels Docker ja kein Thema ist. Ich habe auch eine Container Instanz am laufen für solche Tests.

KVP bzw. MQTT lässt sich ziemlich einfach implementieren wenn der Sourcecode auf Github vorhanden ist. Dann können mehrere Leute mithelfen das umzusetzen.
Dann müsst ich mich aber erst mal mit Docker auseinander setzen [emoji6]

Gesendet von meinem SM-G930F mit Tapatalk


chunter1

Die erste Version des "precipitationSensor" ist jetzt auf GitHub unter folgendem Link verfügbar:
https://github.com/chunter1/precipitationSensor
---> Diese ESP-8266 basierte Version wurde abgelöst durch eine neuere auf ESP-32 Basis!
Details ab Post #102.


Im precipitationSensor.ino File folgendes an euer Netzwerk anpassen:

* SSID
* Wifi password
* Network settings (staticIP, gwIP, subnet)
* FHEM serverIP
* FHEM serverPORT

Ab Zeile 251 könnt ihr noch wählen, welche Daten an FHEM gesendet/published werden soll.
Defaultmäßig werden die binGroups übertragen.
Legt dafür in FHEM einen dummy namens "PRECIPITATION_SENSOR_BIN_GROUPS" an.
Alternativ könnt ihr alle bins übertragen lassen.
Legt dafür in FHEM einen dummy namens "PRECIPITATION_SENSOR_BINS" an.
Jetzt sollten alle 60s Daten eintreffen.
Durch die Auslastung des ESP klappt übringens ein OTA Update öfters nicht auf Anhieb.
Einfach ein paar mal probieren dann klappts schon irgendwann.

have fun!  ;)

A.Harrenberg

Hi,
muss noch mal off-topic nachfragen...
Zitat von: chunter1 am 03 Juli 2017, 13:24:26
@A.Harrenberg:
Wenn du keine ausgeprägte Richtwirkung brauchst und mit 5.8GHz leben kannst, dann schau dir mal den RCWL-0516 an.
Kennst Du das Ding? Dokumentation von dem Ding ist nahezu nicht vorhanden... Wie würde man da die Empfindlichkeit einstellen?? Das Ding gibt es für etwas über 3 EUR auch hier direkt zu kaufen, überlege ich damit mal etwas rumspiele...

Ansonsten hätte ich etwas teuerers gefunden bei dem sich die Empfindlichkeit anscheinend einstellen lässt HFS-DC06. Zumindest ist eines der Potis mit "Sens" und das andere mit "Time" beschriftet. Da ist man dann aber wieder mit 30 Tagen Warten beschäftigt...

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

chunter1

Zitat von: A.Harrenberg am 04 Juli 2017, 22:41:18
Kennst Du das Ding? Dokumentation von dem Ding ist nahezu nicht vorhanden... Wie würde man da die Empfindlichkeit einstellen?? Das Ding gibt es für etwas über 3 EUR auch hier direkt zu kaufen, überlege ich damit mal etwas rumspiele...
Soweit ich weiß, kann man bei gewissen "Versionen" zumindest durch Ändern von Widerständen was verstellen.
Meine Sensoren sind selbst erst im Zulauf (hab schon 9 von 30 Tagen Warten hinter mir  :) )
Auf Youtube gibts gute Videos die diesen und andere Sensoren beschreiben und vergleichen.

chunter1

Die Zuordnung der Bin-Nummer bzw. bin-Group Nummer zu der entsprechenden Geschwindigkeit könnt ihr folgenden Tabellen entnehmen.
Die Werte gelten für einen um 45° zur Bewegungsrichtung geneigten Sensor.

Noch eine präventive Anmerkung...  :)
Ich verwende Anwendungs- und Ressourcenbedingt bewusst kein Windowing bei der FFT.
Dadurch entstehen je nach Signalbeschaffenheit Seitenbänder die in die Statistik mit einfließen.
Ich denke aber, dass dies bei einem groß genug gewählten Messintervall keine nennenswerte Rolle spielen sollte.

Daher hoffe ich, dass es bald bei euch regnet damit wir Daten sammeln, und den Sensor abgleichen können.   :)



BIN-GROUP Number <-> SPEED


Group     Range
=====================
0    0,2 ... 1,4 m/s
1    1,6 ... 2,8 m/s
2    3,0 ... 4,2 m/s
3    4,4 ... 5,6 m/s
4    5,8 ... 7,0 m/s
5    7,2 ... 8,4 m/s
6    8,6 ... 9,8 m/s
7   10,0 ... 11,2 m/s
8   11,4 ... 12,6 m/s
9   12,7 ... 14,0 m/s
10  14,1 ... 15,4 m/s
11  15,5 ... 16,8 m/s
12  16,9 ... 18,2 m/s
13  18,3 ... 19,6 m/s
14  19,7 ... 21,0 m/s
15  21,1 ... 22,4 m/s
16  22,5 ... 23,7 m/s
17  23,9 ... 25,1 m/s
18  25,3 ... 26,5 m/s
19  26,7 ... 27,9 m/s
20  28,1 ... 29,3 m/s
21  29,5 ... 30,7 m/s
22  30,9 ... 32,1 m/s
23  32,3 ... 33,5 m/s
24  33,7 ... 34,9 m/s
25  35,1 ... 36,3 m/s
26  36,5 ... 37,7 m/s
27  37,9 ... 39,1 m/s
28  39,3 ... 40,5 m/s
29  40,7 ... 41,9 m/s
30  42,1 ... 43,3 m/s
31  43,5 ... 44,7 m/s




BIN Number <-> SPEED


bin    [m/s]
1 0,18
2 0,35
3 0,53
4 0,70
5 0,88
6 1,05
7 1,23
8 1,40
9 1,58
10 1,75
11 1,93
12 2,10
13 2,28
14 2,45
15 2,63
16 2,81
17 2,98
18 3,16
19 3,33
20 3,51
21 3,68
22 3,86
23 4,03
24 4,21
25 4,38
26 4,56
27 4,73
28 4,91
29 5,08
30 5,26
31 5,43
32 5,61
33 5,79
34 5,96
35 6,14
36 6,31
37 6,49
38 6,66
39 6,84
40 7,01
41 7,19
42 7,36
43 7,54
44 7,71
45 7,89
46 8,06
47 8,24
48 8,42
49 8,59
50 8,77
51 8,94
52 9,12
53 9,29
54 9,47
55 9,64
56 9,82
57 9,99
58 10,17
59 10,34
60 10,52
61 10,69
62 10,87
63 11,04
64 11,22
65 11,40
66 11,57
67 11,75
68 11,92
69 12,10
70 12,27
71 12,45
72 12,62
73 12,80
74 12,97
75 13,15
76 13,32
77 13,50
78 13,67
79 13,85
80 14,03
81 14,20
82 14,38
83 14,55
84 14,73
85 14,90
86 15,08
87 15,25
88 15,43
89 15,60
90 15,78
91 15,95
92 16,13
93 16,30
94 16,48
95 16,65
96 16,83
97 17,01
98 17,18
99 17,36
100 17,53
101 17,71
102 17,88
103 18,06
104 18,23
105 18,41
106 18,58
107 18,76
108 18,93
109 19,11
110 19,28
111 19,46
112 19,64
113 19,81
114 19,99
115 20,16
116 20,34
117 20,51
118 20,69
119 20,86
120 21,04
121 21,21
122 21,39
123 21,56
124 21,74
125 21,91
126 22,09
127 22,27
128 22,44
129 22,62
130 22,79
131 22,97
132 23,14
133 23,32
134 23,49
135 23,67
136 23,84
137 24,02
138 24,19
139 24,37
140 24,54
141 24,72
142 24,89
143 25,07
144 25,25
145 25,42
146 25,60
147 25,77
148 25,95
149 26,12
150 26,30
151 26,47
152 26,65
153 26,82
154 27,00
155 27,17
156 27,35
157 27,52
158 27,70
159 27,88
160 28,05
161 28,23
162 28,40
163 28,58
164 28,75
165 28,93
166 29,10
167 29,28
168 29,45
169 29,63
170 29,80
171 29,98
172 30,15
173 30,33
174 30,50
175 30,68
176 30,86
177 31,03
178 31,21
179 31,38
180 31,56
181 31,73
182 31,91
183 32,08
184 32,26
185 32,43
186 32,61
187 32,78
188 32,96
189 33,13
190 33,31
191 33,49
192 33,66
193 33,84
194 34,01
195 34,19
196 34,36
197 34,54
198 34,71
199 34,89
200 35,06
201 35,24
202 35,41
203 35,59
204 35,76
205 35,94
206 36,12
207 36,29
208 36,47
209 36,64
210 36,82
211 36,99
212 37,17
213 37,34
214 37,52
215 37,69
216 37,87
217 38,04
218 38,22
219 38,39
220 38,57
221 38,74
222 38,92
223 39,10
224 39,27
225 39,45
226 39,62
227 39,80
228 39,97
229 40,15
230 40,32
231 40,50
232 40,67
233 40,85
234 41,02
235 41,20
236 41,37
237 41,55
238 41,73
239 41,90
240 42,08
241 42,25
242 42,43
243 42,60
244 42,78
245 42,95
246 43,13
247 43,30
248 43,48
249 43,65
250 43,83
251 44,00
252 44,18
253 44,35
254 44,53
255 44,71

chunter1

Zusätzlich steht jetzt noch die publish-Function "publish_compact" zur Verfügung.
Diese ist, wie der Name vermuten lässt, die kompakteste Version die Daten an FHEM zu übermitteln.
Es werden die detections und peaks der 32 Gruppen übertragen.

Sieht dann in FHEM so aus:


Readings:
===========
ADCclipping 0
ADCpeak 7 %
detections 1
detectionsInGroup 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
peakInGroup 58 30 27 28 29 27 30 28 27 26 27 26 25 25 26 25 26 27 24 23 26 23 24 23 27 24 22 24 25 20 23 27
snapshots 600
state 1


Noch ein paar Hinweise:

ADCpeak gibt die Aussteuerung des ADCs an.
  0%     = ADC-Wert 0
  100% = ADC-Wert -512 oder +511
Da der externe Spannungsteiler am A0-Eingang nicht exakt die Mittenspannung erzeugt (soll: 0.5V), bleibt immer ein kleiner Offset bestehen.
Das hat auf die FFT keine Auswirkung, da der DC-bin (bin 0) ohnehin ignoriert wird.
Einzig der Range wird geringfügig eingeschränkt - macht aber nix.

ADCclipping gibt die Anzahl der "Übersteuerungen" des ADCs an.
Sobald der ADC-Wert -512 oder +511 erreicht, wird gezählt.
An sich ist das Erreichen selbst noch keine eindeutige Aussage, da es ja tatsächlich "nur" die Spitze gewesen sein könnte.
Da der ADC-Range ohnenhin nie voll ausgereizt werden sollte, reicht die einfache Erkennung aus.

peakInGroup liegt normalerweise im Bereich 0...16383.
Tritt clipping auf, kann dieser Bereich jedoch auch überschritten werden!
In der ersten Version liegt der detection-threshold bei 40; bei Überschreiten wird gezählt.

A.Harrenberg

Hi,
Zitat von: chunter1 am 05 Juli 2017, 09:29:57
Soweit ich weiß, kann man bei gewissen "Versionen" zumindest durch Ändern von Widerständen was verstellen.
Meine Sensoren sind selbst erst im Zulauf (hab schon 9 von 30 Tagen Warten hinter mir  :) )
Auf Youtube gibts gute Videos die diesen und andere Sensoren beschreiben und vergleichen.
ok, Danke, dann werde ich mal etwas mehr suchen. Im ersten Anlauf hatte ich nur jemanden gefunden der auf ein rusisches Video verwiesen hat...
Da ich momentan noch ein paar andere Sachen "laufen" habe und bei heutigem Bestellen genau in der Anlieferungszeit in Urlaub wäre lege ich da erst mal 3-4 Wochen wieder auf Eis, werde mich aber weiter schlau machen.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

sbiermann

Hi Andreas,
hier von dem "Guy with the swiss accent": https://www.youtube.com/watch?v=9WiJJgIi3W0

In dem Video testet er verschiedene Radarsensoren, ist ganz interessant.

Viele Grüße
Stefan

chunter1

Ich vermute mal, dass der ein oder andere demnächst mit einem eigenen Testaufbau beginnen wird.
Daher möchte ich meine bisherigen Erfahrungen hier teilen:

Ursprünglich hatte ich die komplette Elektronik in einem Gehäuse verbaut.

Dabei hat sich jedoch herausgestellt, dass der ESP8266 mit seinem Spektrum den Radarsensor beeinflusst.
Soweit ich mich erinnern kann, waren die Störungen zwar gering, aber ich wollte für den Testaufbau ein absolut "sauberes" Setup haben und bin dazu übergegangen die beiden räumlich voneinander zu trennen.
Ob das wirklich nötig ist oder mit einem größeren IP65 Gehäuse ebenfalls gelöst werden kann, bleibt zu testen.
(Alternativ könnte man solange die Messungen laufen den Wifi-Part schlafen legen und nur für die Messwert-Übertragung aktivieren - hätte evtl. auch eine Verringerung der "Mess-Lücken" als Vorteil)

Der Radar-Sensor sitzt bei mir momentan in einem IP65 Gehäuse inkl. 12V->5V Step-down Wandler.
Das Ausgangssignal wird über eine kleine Schutzbeschaltung über das geschirmte Versorgungskabel an den 2m entfernten ESP8266 geleitet.
Dort sitzt der ESP8266 auf einem Wemos D1 mini inkl. 12V->5V Step-down Wandler.
12Vdc Netzteil dran und fertig.

Was die mechanische Konstruktion (Dach etc.) betrifft, sollten wir uns möglichst bald auf einen "einheitlichen" Aufbau einigen damit die Einstellungen und Messwerte vergleichbar werden.
Was auch noch wichtig ist, ist möglichst wenig "Schall" auf den Sensor zu bekommen.
Klopft man beispielsweise fester auf das Sensorgehäuse, "hört" man das Schwingen der Gehäusewand gegenüber dem Sensor.
Bei Regen und einem stabilen Dach (siehe Foto von meinem Testaufbau) ist das kein Problem.
Das Gehäuse von meinem Sensor ist übrigens mit Klettband befestigt und dadurch nochmals entkoppelt.
Bei Hagel wirds interessant - allerdings sind dann vom Hagel her ohnehin starke und schnelle Signale zu erwarten bei denen ein paar niederfrequente Schwingungen keine Rolle spielen dürften.
Eine andere Idee wäre den Sensor nicht am gleichen Masten wie das Dach zu montieren sondern ihm einen eigenen kleinen Mast zu spendieren.

Wahrscheinlich bin ich da aber ohnehin zu perfektionistisch unterwegs und es reicht der normale Aufbau vollkommen aus ;)

Als ersten Richtwert werd ich später mal die Abmessungen meines Testaufbaus posten.

A.Harrenberg

Hi,
Zitat von: sbiermann am 05 Juli 2017, 12:12:52
Hi Andreas,
hier von dem "Guy with the swiss accent": https://www.youtube.com/watch?v=9WiJJgIi3W0

In dem Video testet er verschiedene Radarsensoren, ist ganz interessant.
sehr schön! Da sind ja alle "üblichen Verdächtigen" von Ali-Express vertreten. Nach dem Video wäre der HFS-DC06 mein Favorit, der ist zwar am teuersten, bietet aber direkt Potis zum Einstellen, hat die größte Empfindlichkeit und ist zumindest schon mal 180° gerichtet.

Vielen Dank für den Link!
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

chunter1

Hab soeben die Option, das Wifi-modem des ESP8266 während der Messungen abzuschalten, hinzugefügt.
Aktivieren lässt sich diese durch Setzen von "WIFI_OFF_WHILE_MEASURING" auf 1.
Ob es verlässlich funktioniert, muss aber erst noch getestet werden.
Aber Achtung!
Wenn aktiviert, sind OTAs nur in der ersten Zeit vom Reset/power-cycle bis zum ersten publish Aufruf möglich.
Danach wird die Verbindung immer nur kurz zum Übertragen der Werte an FHEM aktiviert.