LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino

Begonnen von HCS, 07 November 2015, 14:39:36

Vorheriges Thema - Nächstes Thema

HCS

Nach einigen Stunden im Kühlschrank:

0x77 ADA   T:9.6    H:63   P:1024
0x77 MOD   T:9.6    H:63   P:1024
0x77 LGW   T:9.6    H:63   P:1024

0x76 ADA   T:9.9    H:67   P:1024
0x76 MOD   T:9.9    H:67   P:1024
0x76 LGW   T:9.9    H:67   P:1024

Das Anzeigedingsda, dass immer dabei steht, meint 9 °C und 58%
Der Kühlschrank ist der Ansicht, dass es 7 °C sein sollten.

HCS

Offizielle Release wird heute nicht mehr.
Dass wir schon mal Kalibrierdaten vergleichen können anbei eine 1.22 Beta.

SusisStrolch

Ok - hier meine:
192.168.254.87 T1:27969 T2:25830 T3:50 H1:75 H2:355 H3:0 H4:337 H5:0 H6:30 P1:36041 P2:-10887 P3:3024 P4:6450 P5:-61 P6:-7 P7:9900 P8:-10230 P9:4284
192.168.254.89 T1:28213 T2:26878 T3:50 H1:75 H2:363 H3:0 H4:317 H5:0 H6:30 P1:37953 P2:-10687 P3:3024 P4:6315 P5:0   P6:-7 P7:9900 P8:-10230 P9:4285


Hmm, könnte man da noch die Raw-Values für T,P und H mit hinzunehmen?
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

HCS

Jetzt brauchen wir jemanden, der sie sammelt und vergleicht.

T1:28118 T2:26034 T3:50 H1:75 H2:363 H3:0 H4:315 H5:0 H6:30 P1:38073 P2:-10914 P3:3024 P4:9287 P5:58 P6:-7 P7:9900 P8:-10230 P9:4285
T1:28230 T2:26332 T3:50 H1:75 H2:357 H3:0 H4:331 H5:0 H6:30 P1:38471 P2:-10836 P3:3024 P4:8996 P5:-34 P6:-7 P7:9900 P8:-10230 P9:4285
T1:28268 T2:26147 T3:50 H1:75 H2:360 H3:0 H4:323 H5:0 H6:30 P1:37934 P2:-10868 P3:3024 P4:9986 P5:-10 P6:-7 P7:9900 P8:-10230 P9:4285


dieter114

Zitat von: HCS am 19 August 2016, 12:32:33
attribut: "label" mit Wert "$data{currval1}::$data{currval2}::$data{currval3}::$data{currval4}::$data{currval5}::" definieren
Oben im Diagramm:
Temperatur <L1> °C
Feuchte <L2> rH
Hallo HCS
irgendwie hab ich das mit dem Label nicht verstanden.
Kannst du bitte einmal die ganze Zeile dies Beispiels posten?
Gruß Dieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

HCS

Zitat von: dieter114 am 22 August 2016, 17:43:55
Kannst du bitte einmal die ganze Zeile dies Beispiels posten?
http://www.fhemwiki.de/wiki/Creating_Plots

Die ganze Zeile der Attrubut-Definition
attr <plotName> label $data{currval1}::$data{currval2}::$data{currval3}::$data{currval4}::$data{currval5}::

Siehe Anhang

Aber für einen Lehrgang in SVG ist das hier eigentlich der falsche Thread

mattes1007

Hallo,

hab das ganze jetzt auch mal auf einem Breadboard zusammengesteckt.
Habe 2 TFA IT+ Sensoren hier rum liegen, die ich mal testen wollte.

Also Batterien rein in den ersten, wird auch gleich gefunden und ein Device angelegt.
Nur der zweite will nicht so recht. Wird kein Device angelegt.

Anbei mal der Log vom LaCrosseGateway

LaCrosseGateway V1.20   LaCrosseGateway (192.168.1.98)
Home  Setup  OTA-Update  Log  Help  Logout  Reboot 

Command:     Enable logging


20:03:33: OK 9 8 129 4 220 106 [92 26 44 6A 78]
20:03:34: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:37: OK 9 8 129 4 220 106 [92 26 44 6A 78]
20:03:38: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:41: OK 9 8 129 4 221 106 [92 26 45 6A 8C]
20:03:42: OK VALUES LGW 759886 UpTimeSeconds=550,UpTimeText=0Tg. 0Std. 9Min. 10Sek. ,WIFI=WLAN-110C31,ReceivedFrames=136,FramesPerMinute=17,RSSI=-86,FreeHeap=21672,LD.Min=0,LD.Avg=0,LD.Max=85,OLED=none
20:03:42: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:45: OK 9 8 129 4 222 106 [92 26 46 6A A1]
20:03:46: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:49: OK 9 8 129 4 222 106 [92 26 46 6A A1]
20:03:50: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:52: OK VALUES LGW 759886 UpTimeSeconds=560,UpTimeText=0Tg. 0Std. 9Min. 20Sek. ,WIFI=WLAN-110C31,ReceivedFrames=141,FramesPerMinute=20,RSSI=-84,FreeHeap=21672,LD.Min=0,LD.Avg=0,LD.Max=86,OLED=none
20:03:53: OK 9 8 129 4 223 106 [92 26 47 6A 55]
20:03:55: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:03:57: OK 9 8 129 4 223 106 [92 26 47 6A 55]
20:03:59: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:01: OK 9 8 129 4 224 106 [92 26 48 6A CC]
20:04:02: OK VALUES LGW 759886 UpTimeSeconds=570,UpTimeText=0Tg. 0Std. 9Min. 30Sek. ,WIFI=WLAN-110C31,ReceivedFrames=146,FramesPerMinute=22,RSSI=-85,FreeHeap=21672,LD.Min=0,LD.Avg=0,LD.Max=87,OLED=none
20:04:02: OK 9 8 1 4 181 106 [92 06 05 6A 7C]
20:04:05: OK 9 8 129 4 225 106 [92 26 49 6A 38]
20:04:06: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:09: OK 9 8 129 4 225 106 [92 26 49 6A 38]
20:04:10: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:12: OK VALUES LGW 759886 UpTimeSeconds=580,UpTimeText=0Tg. 0Std. 9Min. 40Sek. ,WIFI=WLAN-110C31,ReceivedFrames=151,FramesPerMinute=25,RSSI=-84,FreeHeap=21672,LD.Min=0,LD.Avg=0,LD.Max=107,OLED=none
20:04:13: OK 9 8 129 4 225 106 [92 26 49 6A 38]
20:04:14: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:17: OK 9 8 129 4 226 106 [92 26 50 6A 95]
20:04:19: OK 9 8 1 4 181 106 [92 06 05 6A 7C]
20:04:21: OK 9 8 129 4 226 106 [92 26 50 6A 95]
20:04:22: OK VALUES LGW 759886 UpTimeSeconds=590,UpTimeText=0Tg. 0Std. 9Min. 50Sek. ,WIFI=WLAN-110C31,ReceivedFrames=156,FramesPerMinute=27,RSSI=-85,FreeHeap=21504,LD.Min=0,LD.Avg=0,LD.Max=100,OLED=none
20:04:23: OK 9 8 1 4 181 106 [92 06 05 6A 7C]
20:04:25: OK 9 8 129 4 227 106 [92 26 51 6A 61]
20:04:26: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:30: OK 9 8 129 4 227 106 [92 26 51 6A 61]
20:04:31: OK 9 8 1 4 180 106 [92 06 04 6A 88]
20:04:32: OK VALUES LGW 759886 UpTimeSeconds=600,UpTimeText=0Tg. 0Std. 10Min. 0Sek. ,WIFI=WLAN-110C31,ReceivedFrames=161,FramesPerMinute=30,RSSI=-85,FreeHeap=21504,LD.Min=0,LD.Avg=0,LD.Max=83,OLED=none
20:04:34: OK 9 8 129 4 227 106 [92 26 51 6A 61]
20:04:35: OK 9 8 1 4 180 106 [92 06 04 6A 88]

Debug log: Scroll Filter: 27 rows
20:01:42: This is line 5 of void setup(void)
20:01:42: LaCrosseITPlusReader.Gateway V1.20
20:01:42: Free heap: 24584 Flash size: 4194304 SDK: 1.5.3(aec24ac9)
20:01:42: Reset: External System
20:01:42: Fatal exception:0 flag:6 (EXT_SYS_RST) epc1:0x00000000 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
20:01:42: Read settings
20:01:42: Starting I2C with 400 kHz
20:01:42: Starting wifi
20:01:42: Start WIFI_STA
20:01:42: HostName is: LaCrosseGateway
20:01:42: Using static IP
20:01:42: IP: 192.168.1.98
20:01:42: Mask: 255.255.255.0
20:01:42: Gateway: 192.168.1.1
20:01:42: Trying to connect to an AP
20:01:42: ......
20:01:42: connected :-)
20:01:42: SSID: WLAN-110C31
20:01:42: IP: 192.168.1.98
20:01:42: Starting frontend
20:01:42: Starting OTA
20:01:42: Starting data port 1 on 81
20:01:42: Searching RFMs and Sensors
20:01:42: Radio #1 found: RFM69
20:01:42: Sending init String to FHEM
20:01:42: Setup completely done
20:01:42: DataPort: #81 Client connected, IP=192.168.1.148 Port=53150


Theoretisch müsste doch jeder eine eigene ID bekommen. Doch meine zwei senden ihre Werte an das eine Device, welches angelegt wurde.
Also springt der Temp.Wert ständig zwischen innen und außen hin und her...

Hier noch der Teil aus der fhem.cfg

define myJeeLink JeeLink 192.168.1.98:81
attr myJeeLink flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
define KeyValueProtocol_LGW_759886 KeyValueProtocol LGW 759886
attr KeyValueProtocol_LGW_759886 IODev myJeeLink
attr KeyValueProtocol_LGW_759886 room KeyValueProtocol
define LaCrosse_08 LaCrosse 08
attr LaCrosse_08 IODev myJeeLink
attr LaCrosse_08 room LaCrosse


evtl. hat ja jemand einen Tipp

Gruß mattes

amunra

Anbei meine Daten (ich wollte jetzt nicht alle BME's BMP's rausholen, dann wäre ich vermutlich bis morgen früh noch nicht fertig  :D)

Aufbau 1 (BME280 und BMP180 direkt nebeneinander)
BME280 OK T1:28254 T2:26397 T3:50 H1:75 H2:366 H3:0 H4:309 H5:0 H6:30 P1:38223 P2:-10805 P3:3024 P4:7170 P5:-82 P6:-7 P7:9900 P8:-10230 P9:4285
BMP180 OK AC1:8195 AC2:-1131 AC3:-13990 AC4:33698 AC5:25861 AC6:20326 B1:6515 B2:42 MB:-32768 MC:-11786 MD:2296


Aufbau 2 (ein zweiter BME280 - gleiche Position gleiche Stelle)
BME280 OK T1:28080 T2:26436 T3:50 H1:75 H2:355 H3:0 H4:336 H5:0 H6:30 P1:38436 P2:-10747 P3:3024 P4:6546 P5:-73 P6:-7 P7:9900 P8:-10230 P9:4285

PeMue

Da kann ich ja mal versuchen, alle selber aufgelöteten BME280 zu testen ...
Werde dann mal sammeln gehen  ;D

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

HCS

Zitat von: mattes1007 am 22 August 2016, 20:21:52
Theoretisch müsste doch jeder eine eigene ID bekommen.
Nicht unbedingt. Es gibt Sensoren, die eine feste ID haben, ich glaube TX37 ist so einer.
Batterien raus, eine Minute warten und wieder rein, ob sie dann eine andere ID haben.
Willst Du uns noch verraten, was für Sensoren das sind?

mattes1007

Zitat von: HCS am 22 August 2016, 21:32:42
Nicht unbedingt. Es gibt Sensoren, die eine feste ID haben, ich glaube TX37 ist so einer.
Batterien raus, eine Minute warten und wieder rein, ob sie dann eine andere ID haben.
Willst Du uns noch verraten, was für Sensoren das sind?

Das mit den Batterien hab ich schon zig mal versucht. Sind so kleine Sensoren ohne Display. Steht nur drauf IT+, TFA Dostmann,
V000R1

SusisStrolch

Ich würde ja die Daten sammeln. Allerdings scheint es wenig sinnvoll wenn nur die Calibration Values betrachtet werden.
Da finden wir nur die Streuung während der Fertigung / Kalibrierung heraus.

Die Temperatur wird ja (in 0ter Näherung) aus T2 * T' + T3 * T'² berechnet. T' ist der Wert den der AD-Wandler im BME/BMP liefert ( - T1).
(Gilt für beide Sensoren - beim BMP180 ist nur die Formel umgestellt)
Druck und Luftfeuchte sind da deutlich komplizierter.

Um da was genaueres sagen zu können bräuchte man meiner Meinung nach mindestens noch die Raw-Werte sowie die "kalibrierten".
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

SusisStrolch

Hab grad nen lustigen Fehler im BME280 Datenblatt gefunden:

1.7 Temperature sensor specification
Parameter Symbol Condition Min Typ Max Unit
Operating range T Operational -40 25 85 °C
Full accuracy 2. 0 3.65 °C
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

SusisStrolch

Und einen hätte ich noch... nur zum Probieren (kann momentan nicht selbst, da ich die ganze Woche auf Dienstreise bin).
Der BME wird mit folgenden Parametern initialisiert:
Humidity: oversampling x4
ctrl_meas: 0x3f
001 111 11
|    | +--- mode: normal
|    +----- oversampling ×16 (pressure)
+--------- oversampling ×1 (temperature)

Für das "config"-Register habe ich nix gesehen.
Das Datenblatt empfiehlt für Wettermessungen
Sensor mode: forced mode, 1 sample / minute
Oversampling settings: pressure ×1, temperature ×1, humidity ×1
IIR filter settings: filter off

In erster Näherung (ohne Forced Mode) könnte man ja mal zum Einen die kurzen Sampling-Parameter probieren, zum Anderen Register 0xF5 (config) explizit setzen:
config: 101 000 x 0
|   |     +-- not SPI
|   +-------- filter off
+------------ inactive: 1000ms


Wär mal interessant was dann die Temp-Anzeige sagt...
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

HCS

Zitat von: SusisStrolch am 22 August 2016, 22:35:18
Ich würde ja die Daten sammeln. Allerdings scheint es wenig sinnvoll wenn nur die Calibration Values betrachtet werden.
...
Um da was genaueres sagen zu können bräuchte man meiner Meinung nach mindestens noch die Raw-Werte sowie die "kalibrierten".
Bin dran. Da die Hardware page dirket vom Start weg ausufert, habe ich ein refactoring vom drumrum begonnen, um die Daten venünftig bei zu bekommen, das nun auch ausufert. Kann also noch dauern.
Ich werde wohl die ADC-Werte, und die mit den Kalibrierwerten gerechneten Werte dazu rausgeben.

Zitat von: SusisStrolch am 22 August 2016, 23:53:56
Das Datenblatt empfiehlt für Wettermessungen ...
Kann ich probieren, allerdings ändert das mMn nur die Messhäufigkeit und nicht das Messverfahren.

Was das Datenblatt auch noch sagt:
"Absolute accuracy tolerance: +-3% rH"
"Absolute accuracy temperature: +-1 °C"
Zwei BME können also legal 6% rH  und 2 °C auseinander liegen.

Mir ist aber noch nicht ganz klar, was aktuell unser Plan ist.
Ich fasse mal mein bisheriges Verständnis der Erkenntnisse zusammen:
Mein Testaufbau bekommt von drei Libs identische Werte
Die beiden BMEs nebeneinander liefern eine sehr unterschiedliche Feuchte
Die bisher gemledeten BMEs haben unterschiedliche Kalibrierdaten, was aber nicht unbedingt bedeutet, dass sie auch korrekt kalibriert sind.
Lt. Bosch können sie  6% rH  und 2 °C auseinander liegen

Was leiten wir nun daraus ab?
Möglichkeiten:
1. Alle drei Libs initialisieren/arbeiten/rechnen falsch, das erklärt aber nicht, warum die beiden BMEs auf dem Testaufbau unterschiedliche Werte geben, dann müssten beide gleich falsch sein

2. Die Sensoren sind teilweise schlecht kalibriert

3. Wir bewegen uns großteils innerhalb der Toleranz und es gibt einige Außreißer

4. ?

5. ?

Wer war denn derjenige, der einen BME280 hat, von dem er meint, dass er acht Grad zu hoch liegt?
Den hätte ich gerne, um ihn auf dem Tester neben einen von meinen zu setzen.