Autor Thema: Funksensor mit Bosch sensortec BME680 / Luftgüte  (Gelesen 84652 mal)

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #525 am: 17 September 2019, 17:33:20 »
Hallo Thomas,

C-O-O-L !

 :) :D

Danke Allen für die MQTT-Infos!
Die Infos dazu sind sehr vielfältig und müssen erst mal auf Brauchbarkeit und Anwendbarkeit auf den BME beurteilt werden.

Die Fhem-Seite hatte mir als MQTT-Neuling bisher noch gefehlt und die Konfiguration "LWL" und der passende Controller-Typ etc.
Insbesondere wg. Authentifizierung beim Broker und "Connection Lost"-Meldungen etc ...
... und "autoSubscribeReadings;)

Grüße,
Jürgen
« Letzte Änderung: 17 September 2019, 17:45:42 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #526 am: 17 September 2019, 23:24:47 »
Der Connect gegen mosquito geht mit Authentifizierung durch:
Zitat
88257606: EVENT: Clock#Time=Tue,23:15
88258701: BME680-Read: performed measurement!
88258705: BME680-Read: get filtered value.
88258717:
88258724: EVENT: bme680#Temperature=24.34
88258814: EVENT: bme680#Humidity=56.33
88258871: EVENT: bme680#Pressure=1005.73
88258971: EVENT: bme680#TVOC=902.45
88258983: ACT : neopixel, 1,255,0,128
88261974: WD : Uptime 1471 ConnectFailures 0 FreeMem 22560 WiFiStatus 3
88274501: MQTT : Intentional reconnect
88274545: MQTT : Connected to broker with client ID: ESP_Easy_2
88274551: Subscribed to: ESP_Easy/#
88274553: EVENT: MQTT#Connected
88275950: BME680-Read: performed measurement!
88275954: BME680-Read: get filtered value.
88275967:
88275972: EVENT: bme680#Temperature=24.34
88276066: EVENT: bme680#Humidity=56.33
88276125: EVENT: bme680#Pressure=1005.73
88276182: EVENT: bme680#TVOC=904.41
88276194: ACT : neopixel, 1,255,0,128
88291974: WD : Uptime 1472 ConnectFailures 0 FreeMem 22480 WiFiStatus 3

Client mosqsub/22105-raspberry received PUBLISH (d0, q0, r0, m0, 'ESP_Easy/bme680/TVOC', ... (5 bytes))
949.1
Client mosqsub/22105-raspberry sending PINGREQ
Client mosqsub/22105-raspberry received PINGRESP
Client mosqsub/22105-raspberry received PUBLISH (d0, q0, r0, m0, 'ESP_Easy/bme680/Temperature', ... (4 bytes))
24.3
Client mosqsub/22105-raspberry received PUBLISH (d0, q0, r0, m0, 'ESP_Easy/bme680/Humidity', ... (4 bytes))
56.3
Client mosqsub/22105-raspberry received PUBLISH (d0, q0, r0, m0, 'ESP_Easy/bme680/Pressure', ... (6 bytes))
1005.7
Client mosqsub/22105-raspberry received PUBLISH (d0, q0, r0, m0, 'ESP_Easy/bme680/TVOC', ... (5 bytes))
950.5

Das Senden auf den mosquitto-Server klappt schon mal. :D   (.. aber nicht auf den MQTT2_FHEM_Server)
Mit einem recht hohen TVOC Wert ...  :(
Aber: mir dämmert! -> Habe schon seit langem kein FHEM-Update mehr gemacht! Es fehlt mit das MQTT-Broker-Device und die Attribute!
Muss also erst mal alles sichern ... dann updaten....
Ggf. geht es morgen hier weiter: https://wiki.fhem.de/wiki/MQTT#FHEM-externer_Broker

Grüße,
Jürgen

« Letzte Änderung: 17 September 2019, 23:37:41 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #527 am: 19 September 2019, 20:00:02 »
Bevor ich meine größere Abhandlung über meine MQTT-Erfahrungen vorstelle,  ;D
hier mal ein Zwischen-Report für drei -SLINK-Instanzen (2*ESPEasy und 1*nanoLGW)
und einem Universal-Sensor, unten mit BSEC.
Anmerkung: im gleichen Raum im 2m Umkreis ...
Kalman-Filter gegen gleitenden Mittelwert.
« Letzte Änderung: 19 September 2019, 20:08:04 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #528 am: 19 September 2019, 20:49:18 »
Hier meine erste funktionierende MQTT-Konfiguration mittels mosquitto-Broker:

define myBroker MQTT2_CLIENT 192.168.xxx.yyy:1883
setuuid myBroker 5d827ab6-f33f-72b0-8081-59810acb03c6817e
attr myBroker autocreate simple
attr myBroker disable 0
attr myBroker mqttVersion 3.1
attr myBroker room MQTT
attr myBroker subscriptions ESP_Easy/BME680/#
attr myBroker username pi
attr myBroker verbose 4

define mqtt2_client MQTT2_CLIENT 127.0.0.1:1883
setuuid mqtt2_client 5d83c812-f33f-yyyy-4092-e3f9605052xxxxxx
attr mqtt2_client autocreate 1
attr mqtt2_client rawEvents ESP_Easy/BME680/:.*
attr mqtt2_client room test
attr mqtt2_client subscriptions #
attr mqtt2_client username pi

define MQTT2_mqtt2_client MQTT2_DEVICE mqtt2_client
setuuid MQTT2_mqtt2_client 5d83c849-f33f-72b0-155e-d8648a4fbbcc7191
attr MQTT2_mqtt2_client IODev mqtt2_client
attr MQTT2_mqtt2_client readingList mqtt2_client:fhem/out/LWT:.* LWT\
mqtt2_client:Test/Temp:.* Temp\
mqtt2_client:Connect:.* Connect\
mqtt2_client:ESP_Easy:.* ESP_Easy\
mqtt2_client:ESP_Easy/bme680/Temperature:.* Temperature\
mqtt2_client:ESP_Easy/bme680/Humidity:.* Humidity\
mqtt2_client:ESP_Easy/bme680/Pressure:.* Pressure\
mqtt2_client:ESP_Easy/bme680/TVOC:.* TVOC
attr MQTT2_mqtt2_client room MQTT2_DEVICE
define FileLog_MQTT2_mqtt2_client FileLog ./log/MQTT2_mqtt2_client-%Y.log MQTT2_mqtt2_client
setuuid FileLog_MQTT2_mqtt2_client 5d83c8cf-f33f-xxxx-932b-yyyyy
attr FileLog_MQTT2_mqtt2_client logtype text
attr FileLog_MQTT2_mqtt2_client room MQTT2_DEVICE
define SVG_FileLog_MQTT2_mqtt2_client_1 SVG FileLog_MQTT2_mqtt2_client:SVG_FileLog_MQTT2_mqtt2_client_1:CURRENT
setuuid SVG_FileLog_MQTT2_mqtt2_client_1 5d83c8cf-f33f-xxxx-932b-yyyyy
attr SVG_FileLog_MQTT2_mqtt2_client_1 room CO2-Messung,IAQ,MQTT2_DEVICE


Wichtig war, bei geforderter Authentifizierung Username zu definieren und das  Passwort mit set password  <pwd> einzugeben.

Ausschlaggebend war der Wiki-Eintrag "Defintion für Motion-Sensor" und dieser: EBUS-MQTT2
Zitat
Temp/Hum. Sensor

tbd ...  :(

Motion Sensor

Als MQTT-Server wird hier mosquitto verwendet, als IO-Device wird daher ein MQTT2_CLIENT-Gerät definiert:

defmod mqtt2_client MQTT2_CLIENT 192.168.2.4:1883
attr mqtt2_client autocreate 1
attr mqtt2_client rawEvents zighttps://forum.fhem.de/Themes/fhem-curve-green/images/bbc/url.gifbee2mqtt/GB_Bewegungsmelder:.*
attr mqtt2_client room test
attr mqtt2_client subscriptions #

Angepasst: Eingegeben username, pwd und topic angepasst, dann legte FHEM den Rest (MQTT2_CLIENT) automatisch an und ich den SVG...
Username/pwd weil ich den Mosquitto server so bei der installation konfiguriert hatte...
Auch automatisch eingelesen, die Topics:

attr MQTT2_mqtt2_client readingList mqtt2_client:fhem/out/LWT:.* LWT\
mqtt2_client:Test/Temp:.* Temp\
mqtt2_client:Connect:.* Connect\
mqtt2_client:ESP_Easy:.* ESP_Easy\
mqtt2_client:ESP_Easy/bme680/Temperature:.* Temperature\
mqtt2_client:ESP_Easy/bme680/Humidity:.* Humidity\
mqtt2_client:ESP_Easy/bme680/Pressure:.* Pressure\
mqtt2_client:ESP_Easy/bme680/TVOC:.* TVOC


wegen attr mqtt2_client subscriptions # als root-level.

Aber vorher ein paar Negativ-Beispiele:

Zitat
2019.09.18 20:40:16 3: Opening mqtt device 127.0.0.1:1883
2019.09.18 20:40:16 1: mqtt: Can't connect to 127.0.0.1:1883: Connection refused
2019.09.18 20:40:23 3: Opening mqtt device 127.0.0.1:1883
2019.09.18 20:40:23 1: mqtt: Can't connect to 127.0.0.1:1883: Connection refused
2019.09.18 20:43:02 3: Opening myBroker device 127.0.0.1:1883
2019.09.18 20:43:02 1: myBroker: Can't connect to 127.0.0.1:1883: Operation now in progress
2019.09.18 20:43:02 1: myBroker: Can't connect to 127.0.0.1:1883: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
~~~~
1568831217: Socket error on client <unknown>, disconnecting.
1568831217: New connection from 127.0.0.1 on port 1883.
1568831217: Socket error on client <unknown>, disconnecting.
1568831218: New connection from 127.0.0.1 on port 1883.
1568831218: Socket error on client <unknown>, disconnecting.
1568831218: New connection from 127.0.0.1 on port 1883.
1568831218: Socket error on client <unknown>, disconnecting.
1568831235: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
1568831528: Error in poll: Interrupted system call.
1568831528: mosquitto version 1.4.10 terminating
1568832260: mosquitto version 1.4.10 (build date Wed, 13 Feb 2019 00:45:38 +0000) starting
1568832260: Config loaded from /etc/mosquitto/mosquitto.conf.
1568832260: Opening ipv4 listen socket on port 1883.
1568832260: Opening ipv6 listen socket on port 1883.
1568832261: New connection from 127.0.0.1 on port 1883.
1568832261: Socket error on client <unknown>, disconnecting.
1568832287: New connection from 192.168.178.41 on port 1883.
1568832287: Client ESP_Easy_2 disconnected.
1568832287: New client connected from 192.168.178.41 as ESP_Easy_2 (c0, k10, u'pi').

Ich glaube, da muss jeder MQTT-Neuling mal durch (;-) 
Aber von "so einfach ..." möchte ich nicht sprechen.  ;)

Danke für die Infos Thomas + Twenta!

Allerdings kam bei mir die dritte Methode erfolgreich nach dem FHEM-Update zum Zuge ...
Möglicherweise sind gewisse Einträge noch falsch ... aber so geht es bei mir  ;)
Ggf. hätte es den Broker-Eintrag ebenfalls nicht gebraucht .... (?)

Es sind definitiv ein paar Fragen offen geblieben ...

Siehe auch: https://wiki.fhem.de/wiki/MQTT2_CLIENT.
Hatte auch mit dem template "MQTT2_CLIENT_general_bridge" experimentiert, aber kein Resultat erkannt ....

Weitere Möglichkeit der Visualisierung: https://waschto.eu/fhem-und-grafana-tool-zum-visualisieren-von-messdaten/
Installation erfolgreich. Momentan klemmt es noch an der Übergabe der Daten an InfluxDB über das 93_InfluxDBLog-Modul.


MQTT-Auth:
http://www.steves-internet-guide.com/mqtt-username-password-example/
« Letzte Änderung: 21 Oktober 2019, 21:33:01 von juergs »
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #529 am: 22 September 2019, 12:47:15 »
Für die Anwendung für Grafana mit Influxdb kam ich mit dem Modul "93_InfluxDBLog" einfach nicht weiter.
Meine erster Weg/Versuch MQTT-Subscriptions in die InfluxDB zu schreiben war mit einem Python-Skript auf dem PI.

Neueste Versionen installieren:
# Signaturschlüssel installieren
wget -O - https://repos.influxdata.com/influxdb.key | sudo apt-key add -
# Paketquelle hinzufügen
echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
# InfluxDB installieren
sudo apt-get update && sudo apt-get install influxdb

sudo systemctl daemon-reload
sudo systemctl enable influxdb.service
sudo systemctl start influxdb.service

#grafana-Installation
echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
wget https://dl.grafana.com/oss/release/grafana_6.3.5_armhf.deb
sudo dpkg -i grafana_6.3.5_armhf.deb

Dann die Python-Client-Libs noch installieren:
pip install influxdbclient
pip install paho-mqtt
http://www.steves-internet-guide.com/into-mqtt-python-client/
https://raspberry-valley.azurewebsites.net/Mosquitto/

Mittels influx-Konsole Datenbank und Usder einrichten:
pi@raspberrypi:~ $ influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> create user <USER> with PASSWORD '>PWD>' with all privileges
> create DATABASE fhem_bme680
> exit

habe voher eine Database "fhem_bme680" plus user mit allen Rechten und ein "measurement=TVOC" angelegt .
Einen UTC-Timestamp zu generieren war leider nicht erfolgreich (der code wird nicht mehr ausgeführt).

> select value from TVOC
name: TVOC
time                value
----                -----
1569145672897418771 826.2
1569145732900389041 827.4
1569145792884462336 828.6
1569145852896870973 829.4
1569145912894694935 829.9
1569145972889216570 830.2
1569146032897894131 830.3
1569146092894298758 830.2
1569146152921232003 829.2
1569146212899806950 827.8
1569146272900568857 826.3
1569146332898218697 824.3
1569146392903728293 822.5

Also hat der Connect auf  MQTT und auf die Subscriptions geklappt.
Nach einiger Tüftelei bekam auch der InfluxDB-client seine Connection auf die Datenbank hin.
Das Skript kann nun auf weitere Readings ausgebaut werden, wenn ich mich mehr eingearbeitet habe.

Sorry, ist wilde Tüftelei, weil Grafana + InfluxDB-Noob ...  ::)

https://docs.influxdata.com/influxdb/v0.10/introduction/getting_started/

 
« Letzte Änderung: 29 September 2019, 14:04:37 von juergs »
Informativ Informativ x 1 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
« Letzte Änderung: 29 September 2019, 10:23:07 von juergs »
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #531 am: 26 September 2019, 22:35:48 »
Habe leider noch keinen Weg gefunden, das erweiterte Skript auf dem Pi3(Stretch) ans Laufen zu bekommen:
https://raw.githubusercontent.com/Nilhcem/home-monitoring-grafana/master/02-bridge/main.py
(Läuft unter Windows... mit 3.7.3  64bit)
mit
MQTT_TOPIC = 'ESP_Easy/bme680/+'  # [bme280|mijia]/[temperature|humidity|battery|status]
MQTT_REGEX = 'ESP_Easy/([^/]+)/([^/]+)'  #group1 and 2 needed: location=bme680 and measurement=TVOC|Temperature|Pressure|Humidity

Connected with result code 0
ESP_Easy/bme680/Pressure b'996.4'
ESP_Easy/bme680/TVOC b'491.0'
ESP_Easy/bme680/Temperature b'24.4'
ESP_Easy/bme680/Humidity b'52.8'

Allerdings hat der Raspi Python-Versions-Probleme:
pi@raspberrypi:~ $ python3 mqtt_influx_bridge.py
  File "mqtt_influx_bridge.py", line 32
    location: str
            ^
SyntaxError: invalid syntax
pi@raspberrypi:~ $ python3 mqtt_influx_bridge.py
  File "mqtt_influx_bridge.py", line 32
    location: str
            ^
SyntaxError: invalid syntax

pi@raspberrypi:~ $ python3 --version
Python 3.5.3
pi@raspberrypi:~ $ which python3
/usr/bin/python3


https://stackoverflow.com/questions/42002596/python-3-5-typed-namedtuple-syntax-produces-syntaxerror
https://raspberrypi.stackexchange.com/questions/10237/upgrade-from-python-2-7-to-3-3-x

https://gist.github.com/SeppPenner/6a5a30ebc8f79936fa136c524417761d
« Letzte Änderung: 27 September 2019, 12:50:02 von juergs »

Offline trebron106

  • Jr. Member
  • **
  • Beiträge: 77
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #532 am: 27 September 2019, 14:25:47 »
Hallo,
habe bei mir seit ca. 2 Wochen einen Testaufbau mit verschiedenen BME680 und CCS811 Sensoren laufen. Alle Sensoren befinden sich im gleichen Raum auf einen Tisch nebeneinander, haben somit die gleichen Bedingungen.

Sensor1: 
Sonoff iAQ  locutus CO2 Indoor Sensor mit CCS811
Software: Tasmota 6.6.0  CCS811 Lib Adafruit Version 1.0.0.14

Sensor2: 
Sonoff iAQ2  Wemos D1 mit CCS811 und BME280
Software: Tasmota 6.6.0  CCS811 Lib. Adafruit Version 1.0.0.14

Sensor3:
ESPEasy CCS811 iAQ / BME680 iAQ
Software: Build 20103 Mega  ESPEasy Core 2_5_2
       CCS811 Lib. SparkFun CCS811  Version 1.0.0
       BME680 Lib. JS_BME680 von Juergs

Sensor4:
LaCrosse UniversalSensor V3.1f
Software: UniversalSensor V 3.1f
        BME680 Lib.  Bosch BSEC  Version 1.4.7.2


Alle Daten werden in einer Influx DB gespeichert, die Anbindung der Datenbank an FHEM erfolgt mit den Modul InfluxDBLog . 

Als Anlage habe ich eine 24h Auswertung mit Grafana angehängt.

Man sieht, die Kurvenverläufe gleichen sich, aber die absoluten Werte unterscheiden sich stark.


Gruß
trebron106

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #533 am: 27 September 2019, 15:39:05 »
Hallo trebron106,

wenn Du uns freundlicherweise noch die Konfiguration / List des/der InfluxDBLog-Devices  mitlieferst?   ;) ;) ;)

Grüße,
Jürgen

Offline trebron106

  • Jr. Member
  • **
  • Beiträge: 77
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #534 am: 27 September 2019, 16:19:32 »
Hallo juergs,

hier ein List der InfluxDBLog meiner Testumgebung

Datenbankname      fhem
Datenbankuser        fhem
Datenbankpasswort fhem

Internals:
   DEF        192.168.106.160 8086 fhem fhem fhem .*:([Tt]emp|[Hh]umidity|dewpoint|taupunkt|pressure|gas1|gas2|Luftfeuchte|TVOC|eCO2|CCS811_|BMP180_|BME280_|BME680_).*
   FH         
   FUUID      5d8cc25a-f33f-4013-25f0-eaea939f05c22094
   INFLUXDB   fhem
   INFLUXPORT 8086
   INFLUXPW   fhem
   INFLUXSRV  192.168.106.160
   INFLUXUSER fhem
   NAME       InfluxDB
   NR         1379
   NTFY_ORDER 50-InfluxDB
   REGEXP     .*:([Tt]emp|[Hh]umidity|dewpoint|taupunkt|pressure|gas1|gas2|Luftfeuchte|TVOC|eCO2|CCS811_|BMP180_|BME280_|BME680_).*
   STATE      active
   TYPE       InfluxDBLog
   READINGS:
     2019-09-27 13:24:34   filecount       0
Attributes:
   room       9.9 Test


Gruß
trebron106
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #535 am: 27 September 2019, 17:58:34 »
Hallo trebron106,

danke für das List des Moduls, werde es gerne ausprobieren.

Bei den Vergleichswerten fällt mir (1) + (2) auf. Auch die Sonos IAQ 2 - Kurve zur der von ESPEasy_BME680. 
Sowie der Peak bei Sonos IAQ(1)  gegen den ESPEasy_BME680-Peak....
Was mich wundert ist der Nicht-Gleichlauf des Universalsensors (mit BSEC) zum EspEasy-BME680.
Das habe ich bei mir nicht so, bei mir korrelieren die Sensoren da etwas besser.   

Evtl. wäre die Kurven (als Vergleich) von Luftfeuchte und Temperatur  ein Hinweis, was da evtl. vor sich ging.

Bei liegen auch einige Sensoren im "engen" Bereich in einem Zimmer herum. Allerdings bei geöffnetem Fenster verteilt sich
das Ganze doch sehr unterschiedlich.

Den CS811 habe ich noch nicht im Einsatz. Interessant zu sehen, dass die Werte einigermaßen korrelieren....
Ansonsten teile ich Deine Meinung, dass Absolutwerte  schon unteschiedlich sein können.

Wenn ich meine anderen Sensoren eingebunden habe, lässt sich da Langzeit-technisch von meiner Seite mehr sagen.   
« Letzte Änderung: 27 September 2019, 18:05:37 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #536 am: 27 September 2019, 21:43:51 »
Mein RegEx:
.*:([Tt]emperature|[Tt]emp|[Hh]umidity|rH|dewpoint|taupunkt|[Pp]ressure|gas1|gas2|Luftfeuchte|TVOC|tvoc|eCO2|BME680).*liefert mir nun die richtigen fhem-Readings (z.B. auch mqtt2_client), diese werden in InfluxdB geschrieben.


define influxlog InfluxDBLog localhost 8086 fhem_test <usr> <pwd> .*:([Tt]emperature|[Tt]emp|[Hh]umidity|rH|dewpoint|taupunkt|[Pp]ressure|gas1|gas2|Luftfeuchte|TVOC|tvoc|eCO2|BME680).*
setuuid influxlog 5d8e5336-f33f-72b0-fb72-c4bc41d123276ea1
attr influxlog room MQTT2_DEVICE
attr influxlog verbose 3

Nach jetzigem Kenntnisstand und den Infos hier:
https://forum.fhem.de/index.php/topic,71551.0.html
https://www.dev-eth0.de/2016/12/07/grafana_fhem_influxdb/

Ist noch etwas Optimierungspotential in Grafana da, aber die Grunddaten werden nun von allen RegEx-gefilterten fhem-readings (!) in die Datenbank via 93_InfluxDBLog-Modul geschrieben.

Der Knackpunkt ist die richtige (Perl-)RegEx-Syntax zu erstellen ....  und in Influx die Einträge der measurements zu identifizieren  und dann ist die Konfiguration in Grafana ebenfalls einfach ;)

Dann kann man sich den Feinheiten der Grafana-Abfragen und Visualisierungen widmen ...

Schön dabei ist, dass man bereits existierende Konfigurationen importieren kann ... https://grafana.com/grafana/dashboards und  ein Dashboard-Beispiel  ;)

Hier zeigt es sich auch für die MQTT-Messungen, wiedererkennbare Benennungen, nach Device unterscheidbar, zu verwenden ist von Vorteil ...  ;)

Zitat
device-category/device-id/payload-context/payload-differentiator

Zitat
>> show measurements
name: measurements
name
----
BME680_DBG_BASE_C
BME680_DBG_FILTERED
BME680_DBG_R
BME680_DBG_RATIO
BME680_aH
BME680_dewpoint
BME680_pressure
BME680_rH
BME680_temperature
BME680_tvoc
Humidity
TVOC
Temperature
humidity
pressure
temperature


>>explain select * from BME680_tvoc
QUERY PLAN
----------
EXPRESSION: <nil>
AUXILIARY FIELDS: site_name::tag, value::float
NUMBER OF SHARDS: 1
NUMBER OF SERIES: 3
CACHED VALUES: 422
NUMBER OF FILES: 0
NUMBER OF BLOCKS: 0
SIZE OF BLOCKS: 0

... und ich hatte mich gerade mit python angefreundet ...  ;) ;D

« Letzte Änderung: 19 Oktober 2019, 20:40:04 von juergs »

Offline fhem-ul

  • New Member
  • *
  • Beiträge: 7
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #537 am: 16 Oktober 2019, 21:46:03 »
Habe einige Verbesserungen eingebaut:
Jetzt sollte auch die Adresse 0x77 für den BME einsetzbar sein.
Dafür habe ich die Initialiserung des BME an eine passendere Stelle gelegt.
Das hat den Vorteil, dass ein nicht angeschlossener  BME680 in ESPEasy keine Exceptions mehr erzeugt
und sich ESPEasy aufrufen läßt, um über den Device-Konfiguratins-Dialog mittels Adress-Auswahl, Device-ENABLE-Checkbox gesetzt und SUBMIT-Button gedrückt, konfigurieren lässt.
Erst dann läuft erst die Initialisierung des BMEs los.
Die Zykluszeit habe ich von 10 auf 12s hochgesetzt, da dies Bosch in https://ae-bst.resource.bosch.com/media/_tech/media/application_notes/BST-BME680-AN014.pdf
auf Seite 10 vorschlägt. Messwerte werden im 12s Rythmus vom BME gelesen, aber erst nach der konfigurierten Zyklus-Zeit (default=60s) an die ESPEasy-Oberfläche geliefert.
Alle anderen Änderungen wie z.B. Plot + Debugausgabe werden erst nach einem Reset wirksam ...
* Github Repository ist aktualisiert.  :D

Hallo juergs,

ich habe die .bin, aus dem o.g. Beitrag von Dir, auf einen D1 geflasht, es werden die Messwerte korrekt ausgelesen (auf der seriellen Schnittstelle zu sehen), jedoch wird sobald der der TVOC-Wert erfasst wird, also nach 5 Minuten, die anderen Werte nicht mehr an FHEM aktualisiert. Angebunden ist es über den FHEM HTTP Controller. Zur Veranschaulichung füge ich einen Plot und die Ausgabe der seriellen Schnittstelle an. Da kann man sehen, dass die Werte gemessen werden, also Änderungen zu sehene sind, die Änderungen werden aber nicht übertragen. Auch bei anderen WIMOS D1 und einem Node MCU stelle ich das gleiche verhalten fest. Kannst Du mir vielleicht helfen.

Vielen Dank im Voraus, Ulrich

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1573
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #538 am: 17 Oktober 2019, 18:28:38 »
Hallo Ulrich,

Du hast eine Konfiguration gewählt, die ich so nicht getestet/ausprobiert habe.
Zum Probieren benötige ich von Dir beide Konfigurationen (Screenshot?) von der ESPEasy-Konfiguration und der
Konfiguration des FHEM-Devices. Zum Nachvollziehen auch ein Log-Auszug des FHEM-Logs zum Abbruchzeitpunkt.

Allerdings ist die einfachere Variante die Verwendung der UDP-SLINK Übertragung:
Du holst Dir von hier die FHEM-Module und kopierst sie in den FHEM-Ordner.
Falls Raspi, noch die Berechtigungen für den fhem-User und die dialout-Gruppe auf die neuen pm-Module setzen:
Beispielhaft:
8,0K -rw-r--r--  1 fhem dialout 6,2K Okt  3 14:56 10_SLinkIAQC.pm
8,0K -rw-r--r--  1 fhem dialout 4,4K Okt  3 14:56 10_SLinkIAQ.pm
8,0K -rw-r--r--  1 fhem dialout 5,3K Jan  1  1970 10_SLinkS0.pm
8,0K -rw-r--r--  1 fhem dialout 4,3K Jan  1  1970 10_SLinkTH.pm

Dann in Fhem neu starten und ein
Zitat
define slink slink
Device über die Eingabezeile definieren.
Falls Autocreate aktiv ist bekommst du dann eine neues SLink-Device angelegt, sofern in ESPEasy "UDP slink transmission enable:"   die Checkbox gesetzt ist.

Zitat
Internals:
   DEF        45482A
   FUUID      5d965caf-f33f-1cca-f8a3-7df3451b792ae5dc
   ID         45482A
   LASTInputDev slink
   MSGCNT     92444
   NAME       SLinkIAQC_45482A
   NOTIFYDEV  global
   NR         145
   NTFY_ORDER 50-SLinkIAQC_45482A
   SENSOR     192.168.178.55
   STATE      ???
   TYPE       SLinkIAQC
   slink_MSGCNT 92444
   slink_RAWMSG T:IAQC;FW:1.0;ID:45482A;IP:192.168.178.55;R:-43;F:THPV;T:20.42;H:64.14;AH:11.36;D:13.42;P:1000.4;V:761;R:480564;DB:64035000;DF:483601.375;DR:1.6758;
   slink_REMOTE 192.168.178.55
   slink_RSSI -43
   slink_TIME 2019-10-17 18:21:47
   READINGS:
     2019-10-17 18:21:47   BME680_DBG_BASE_C 64035000
     2019-10-17 18:21:47   BME680_DBG_FILTERED 483601.375
     2019-10-17 18:21:47   BME680_DBG_R    480564
     2019-10-17 18:21:47   BME680_DBG_RATIO 1.6758
     2019-10-17 18:21:47   BME680_aH       11.36
     2019-10-17 18:21:47   BME680_dewpoint 13.42
     2019-10-17 18:21:47   BME680_pressure 1000.4
     2019-10-17 18:21:47   BME680_rH       64.14
     2019-10-17 18:21:47   BME680_temperature 20.42
     2019-10-17 18:21:47   BME680_tvoc     761
Attributes:
   room       SLinkIAQC

Hierbei habe ich bisher noch keine Übertragungsprobleme feststellen können.

Die beiden anderen Übertragungsarten laufen über ein MQTT2-Device und ein MQTT-Controller in ESPEasy
oder an FHEM vorbei, über ein Mosquitto-MQTT-Server und ein Python3-Skript (als Dienst implementiert)  welches die Daten in eine InfluxDB schaufelt.
Deren Daten können dann über Grafana ausgewertet werden.

Nachdem meine SD-Karte im RASPI nach 1,5 Jahren ins stolpern gekommen ist, habe ich
gleich Raspian "Buster" neu installiert. Mit dem Vorteil, dass nun Python3 verfügbar ist.
Bei der Auswertung mit Grafana ist mir leider noch ein Fehler beim Erfassen ins Auge gefallen: Die Luftdruckdaten wurden nicht aktualisiert.

Anbei die korrigierte ESPEasy-BME680-Version.  :-[ :-\ 

Nur Sketch-Upload mit Esptool oder Arduino-Version:
esptool.exe -vv -cd nodemcu -cb 921600 -cp COM7 -ca 0x00000 -cf <Pfad zu>/ESPEasy.ino.bin

FHEM-HTTP mit ESPEasy: https://forum.fhem.de/index.php/topic,55728.0.html ?
 
« Letzte Änderung: 19 Oktober 2019, 21:36:59 von juergs »

Offline MC_Arthur

  • Jr. Member
  • **
  • Beiträge: 67
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #539 am: 19 Oktober 2019, 16:23:44 »
Nutzt den jemand diesen Sensor und könnte mir vorab mal 1-2 Maße nennen ?
Abstand Löcher , Durchmesser ggf und Mitte Loch nach unten ?!

(https://uploads.tapatalk-cdn.com/20191019/b705b4222a9ca1018423b4cf361d3d10.jpg)

Er ist bestellt . Dauert aber leider noch etwas bis er da ist .

Vielen Dank

 

decade-submarginal