Bresser Wetterstation 868Mhz - wie in FHEM integrieren?

Begonnen von alen, 31 Oktober 2017, 17:59:19

Vorheriges Thema - Nächstes Thema

JensS

Hallo Ralf,

vielen Dank und auch dir ein frohes und gesundes neues Jahr!

Der erste TFA-Wert passt zu einem anderen Empfänger. Sorry, da habe ich wohl den falschen kopiert.  ???
Du hast ja eine ganze Menge in der kurzen Zeit geschafft - Kompliment!
Hier ein paar aktuelle Werte:MN;D=453DA6F5AE8A18AAAAAAAAAACAAAB8FA22AAFF2EAAAAAAAAAA000000;N=7;R=29;
MN;D=453DA6F5AE8A18AAAAAAAAAACAAAB8FA22AAFF2EAAAAAAAAAA000000;N=7;R=28;
MN;D=FDC5A6F5AE8A18AAAAAAAAAACAAAB8FA22AAFDEEAAAAAAAAAA000000;N=7;R=25;

Der TFA (diesmal wirklich daneben) meldet 12.7 °C - 88.0 % und der BH1750 3040 lux.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

Ich hab mal als Schritt 1 die ID 207 für den Bresser 7in1 in die dev Version meiner Variante der 00_SIGNALduino.pm zugefügt. Die noch nötigen Erweiterungen im 14_SD_WS Modul folgen demnächst.
https://forum.fhem.de/index.php/topic,111653.msg1058900.html#msg1058900
versionmodul  v3.4.8-dev_ralf_01.01.
versionprotoL v3.4.8-dev_ralf_01.01.

Wenn ichs mit einem dummysduino simmuliere, siehts so aus:
2022.01.01 23:51:49 4 : sduinoD/msg get raw: MN;D=C26DA6F5B8AA18AADAADAAAA2EAAB8DA2DAAC2AAAAAAAAAAAA000000;N=7;
2022.01.01 23:51:49 4 : sduinoD Parse_MN: Found 2-FSK Protocol id 207 length 56 -> Bresser Profi 7in1
2022.01.01 23:51:49 5 : sduinoD Bresser_7in1: dmsg=68C70C5F1200B2007007000084001270870068000000000000 crc16 ok
2022.01.01 23:51:49 4 : sduinoD ParseMN: ID=207 dmsg=W207#0C5F1200B2007007000084001270870068000000000000
2022.01.01 23:51:49 5 : sduinoD Dispatch: W207#0C5F1200B2007007000084001270870068000000000000, test gleich
2022.01.01 23:51:49 4 : sduinoD Dispatch: W207#0C5F1200B2007007000084001270870068000000000000,  dispatch
2022.01.01 23:51:49 5 : sduinoD: dispatch W207#0C5F1200B2007007000084001270870068000000000000
2022.01.01 23:51:49 4 : sduinoD: SD_WS_Parse protocol 207, rawData 0C5F1200B2007007000084001270870068000000000000
...
2022.01.01 23:51:49 3 : sduinoD: Unknown code W207#0C5F1200B2007007000084001270870068000000000000, help me!
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

JensS

2022.01.02 00:15:50 4 : MapleSDuino/msg READ: MN;D=AE64A6F5AFEA18AAAAAAAAAACAAABADA2CAAAAAAAAAAAAAAAA000000;N=7;R=28;
2022.01.02 00:15:50 4 : MapleSDuino Parse_MN: Found 2-FSK Protocol id 108 length 56 RSSI = -60 -> Bresser 5in1
2022.01.02 00:15:50 4 : MapleSDuino ParseMN: method error! Bresser 5in1: Checksum Error pos=0
2022.01.02 00:15:50 4 : MapleSDuino Parse_MN: Found 2-FSK Protocol id 115 length 56 RSSI = -60 -> Bresser comfort 6in1 (5in1 neu)
2022.01.02 00:15:50 4 : MapleSDuino ParseMN: method error! Bresser 5in1_neu: crc Error crc=3D5D crcRef=AE64
2022.01.02 00:15:50 4 : MapleSDuino Parse_MN: Found 2-FSK Protocol id 207 length 56 RSSI = -60 -> Bresser Profi 7in1
2022.01.02 00:15:50 4 : MapleSDuino ParseMN: ID=207 dmsg=W207#0C5F0540B2000000000060001070860000000000000000
2022.01.02 00:15:50 4 : MapleSDuino Dispatch: W207#0C5F0540B2000000000060001070860000000000000000, -60 dB, dispatch
2022.01.02 00:15:50 4 : MapleSDuino: SD_WS_Parse protocol 207, rawData 0C5F0540B2000000000060001070860000000000000000
2022.01.02 00:15:50 2 : MapleSDuino: SD_WS_Parse unknown message, please report. converted to bits: 0000110001011111000001010100000010110010000000000000000000000000000000000000000001100000000000000001000001110000100001100000000000000000000000000000000000000000000000000000000000000000
2022.01.02 00:15:50 4 : MapleSDuino: SD_WS_Parse protocol 207, rawData 0C5F0540B2000000000060001070860000000000000000
2022.01.02 00:15:50 2 : MapleSDuino: SD_WS_Parse unknown message, please report. converted to bits: 0000110001011111000001010100000010110010000000000000000000000000000000000000000001100000000000000001000001110000100001100000000000000000000000000000000000000000000000000000000000000000
2022.01.02 00:15:50 3 : MapleSDuino: Unknown code W207#0C5F0540B2000000000060001070860000000000000000, help me!
2022-01-02 00:15:50 SIGNALduino MapleSDuino UNKNOWNCODE W207#0C5F0540B2000000000060001070860000000000000000

Cool!  8)
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

ich habe den Bresser 7in1 in diese Version eingebaut. Ich habe auch bei der ID 115 (Bresser 6in1) den Indoor und Soil Moisture sensor zugefügt.
https://github.com/Ralf9/14_SD_WS/blob/dev/FHEM/14_SD_WS.pm

Die Battery fehlt noch, sie ist im Flag (F) enthalten (ist zwischen temp und hum)

W207#0C5F0540B2000000000060001070860000000000000000
     IIIIDDDuuuGGGWWWRRRRRR??TTTFHHLLLLLLUUUttttttt


Bitte teste mal welchen Wert es bei schwacher Batterie hat. Evtl können es je nach Batteriezustand auch mehrere Werte sein.
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

JensS

Hervorragende Arbeit!!
Alle Werte sind da und plausibel. Selbst eine Umrechnung in km/h hast du gemacht.
Super - Danke!

Die Batterien tausche ich heute, sobal ich ein paar schache gefunden habe.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

elektron-bbs

Zitat von: Ralf9 am 02 Januar 2022, 11:29:30
ich habe den Bresser 7in1 in diese Version eingebaut. Ich habe auch bei der ID 115 (Bresser 6in1) den Indoor und Soil Moisture sensor zugefügt.
https://github.com/Ralf9/14_SD_WS/blob/dev/FHEM/14_SD_WS.pm

Die Battery fehlt noch, sie ist im Flag (F) enthalten (ist zwischen temp und hum)

Da haben wir wohl beide parallel entwickelt :-( Mein Code sieht im Prinzip gleich aus.
Auch ich bin bei der Batterie hängen geblieben. Der Code dafür in der bresser_7in1.c sieht etwas eigenartig aus:

int battery_low = (flags & 0x06) == 0x06;


Könnten wir uns auf eine Protokollnummer 117 einigen? Die wäre bei uns als nächste frei.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

elektron-bbs

Mir ist gerade noch etwas aufgefallen. Es ändert sich ein Bit in Nibble 13 offensichtlich bei Batteriewechsel bzw. Neustart des Sensors:

2021.12.31 10:02:27 4: MapleSDuino/msg READ: MN;D=C26DA6F5B8AA18AADAADAAAA2EAAB8DA2DAAC2AAAAAAAAAAAA000000;R=30;
                                                               !
Batteriewechsel ist durchgeführt und der UV-Sensor mit einer metallisierten Folie leicht abgedunkelt.
                                                               !
2021.12.31 10:14:36 4: MapleSDuino/msg READ: MN;D=4DC4A6F5B38A10AAAAAAAAAAAAAAB9BA22AAA9CAAAAAAAAAAA000000;R=15;


Ich habe dafür jetzt diese Zeile in der 14_SD_WS.pm eingefügt:

        batChange  => sub {my (undef,$bitData) = @_; return substr($bitData,52,1);},


Bei Ralf müsste das Bit-Nr. 36 sein, da er die Prüfsumme nicht mit in das Modul überträgt.
Bei Protokoll 108 und Sensor Fody_E42 ändert sich dieses Bit bei Neustart und wird nach etwa einer Stunde zurück gesetzt.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

JensS

Ok, habe eben alte Batterien eingelegt und folgende Message erhalten:MN;D=0CF0A6F5B98A10AAAAAAAAAAAAAABABC3EAABBFCAAAAAAAAAA000000
Könnt ihr mir bitte erklären, was RAIN?:8h zu bedeuten hat?
DIGEST:8h8h ID?8h8h WDIR:8h4h 4h 8h WGUST:8h.4h WAVG:8h.4h RAIN:8h8h4h.4h RAIN?:8h TEMP:8h.4hC FLAGS?:4h HUM:8h% LIGHT:8h4h,8h4hKL UV:8h.4h TRAILER:8h8h8h4h
Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

Zitat von: elektron-bbs am 02 Januar 2022, 11:53:51
Könnten wir uns auf eine Protokollnummer 117 einigen? Die wäre bei uns als nächste frei.
Ich lass es erstmal so. Ich habe jetzt gerade keine Lust die 3 Dateien nochmals zu ändern.

ZitatOk, habe eben alte Batterien eingelegt und folgende Message erhalten:
MN;D=0CF0A6F5B98A10AAAAAAAAAAAAAABABC3EAABBFCAAAAAAAAAA000000;N=7;
dies ergibt
W207#0C5F1320BA000000000000001016940011560000000000
     IIIIDDDuuuGGGWWWRRRRRR??TTTFHHLLLLLLUUUttttttt


Das Flag F hat sich nun von 0 auf 6 geändert. Demnach ist 0=Bat ok und 6=Bat low

Das uuu hat sich von "0B2" auf "0BA" geändert, bitte achte mal darauf ob es nach ca 1 Stunde wieder nach "0B2" zurück geht. Dann ist dort, wie elektron-bbs schon vermutet hat, das batChange Bit.

ZitatKönnt ihr mir bitte erklären, was RAIN?:8h zu bedeuten hat?
Das ist das "??" was bis jetzt immer 00 war

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

JensS

#99
Hat eine Weile gedauert aber jetzt ist uuu wieder 0B2.
Zwischenzeitlich hat es wie aus Kannen gegossen  ;D aber an den ?? hat sich dabei nichts geändert. Es bleibt immer auf AA bzw. 00.

Gruß Jens

p.s. Woher kommt die Info, wenn die Temperatur unter 0 Grad sinkt?
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

ok, dann ist bei "0BA" das 4. Bit von "A" das batchange.

Beim Batterie Wechsel bleibt demnach die ID gleich aber der Raincounter wird auf 0 zurückgesetzt.

Ich bau es dann in den nächsten Tagen ein, vielleicht ergeben sich in der Zwischenzeit weitere erkenntnisse


Zitatp.s. Woher kommt die Info, wenn die Temperatur unter 0 Grad sinkt?
    if (temp_raw > 600)
        temp_c = (temp_raw - 1000) * 0.1f;
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Ich hab die readings  "bat" und "batChange" zugefügt
https://github.com/Ralf9/14_SD_WS/blob/dev/FHEM/14_SD_WS.pm




Bei meinem angepassten 14_SD_WS Modul habe ich die Sanity checks erweitert. Dazu gehören die Attribute "max-deviation-temp", "max-deviation-hum" und "max-deviation-rain"

Ich möchte dies in der "Device specific help" des 14_SD_WS Moduls ergänzen.
Die Beschreibung des erweiterten Sanity checks passt wahrscheinlich am Besten zu den "max-deviation..." Attributen.
Ich weiß noch nicht so richtig wo das mit dem rain Überlauf und Reset dazupasst. Hat mir da jemand einen Vorschlag?


Bei den Sensoren mit Prüfsumme wird als defaultMaxDeviation 5 verwendet.

Es gibt einen 2 stufigen Sanity check:
Stufe1:
- Wenn die Differenz zum vorherigen Wert zu groß ist, dann wird der aktuelle Wert im reading xxxErr gemerkt und abgebrochen
Stufe2 beim folgenden empfangenen Wert:
- ist die Differenz zum vorherigen, im reading gespeicherten Wert ok, dann wird der Wert im reading gespeichert und das xxxErr reading gelöscht
- gibt es ein reading xxxErr und ist die Differenz zum reading xxxErr ok, dann wird der Wert im reading gespeichert und das xxxErr reading gelöscht
- wenn die Differenz zum reading xxxErr zu groß ist, dann wird abgebrochen

Bei rain wird der Überlauf und der reset beim Batteriewechsel abgefangen.
Dafür gibts das reading ".rain_offset" und rain_total = rain + rainOffset


FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

JensS

Hallo Ralf,

bei "207 =>" war "bat" zuvor unter "substr($bitData,27,1)" zu finden und "batChange" unter "substr($bitData,9,1)".
        bat        => sub {my (undef,$bitData) = @_; return substr($bitData,109,2) eq '11' ? 'low' : 'ok';},
        batChange  => sub {my (undef,$bitData) = @_; return substr($bitData,36, 1);},

In der Zwischenzeit hatte ich "substr($bitData,7,2)" und "substr($bitData,22,1)" in Readings schreiben lassen.
Es gab dort keine Änderungen der Werte.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

Bat ist im Flag (BitNr 108 - 111) enthalten
batChange in "uuu" (BitNr 28 - 39) enthalten.

                    1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
IIIIDDDuuuGGGWWWRRRRRR??TTTFHHLLLLLLUUUttttttt

IIII    ID
DDD     wind_dir_deg
uuu     unbekannt
GG.G    Wind Gust  m/s
WW.W    Wind Speed m/s
RRRRR.R rain mm
??      unbekannt (immer 0?)
TT.T    temp
F       Flag Bat low
HH      hum
LLLLLL  Light Lux
UU.U    UV index
ttttttt trailer
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

JensS

Vielen Dank für die großartige Unterstützung!!!
Der Bresser-Außensensor 7-in-1 läuft super und nun kann ich erfolgreich die Daten für notify/DOIF nutzen.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.