Feinstaubsensor bauen (luftdaten.info)

Begonnen von igami, 08 Februar 2017, 06:23:27

Vorheriges Thema - Nächstes Thema

igami

Ich habe mir auch einen mit der gleichen ID eingerichtet und bekomme regelmäßig Daten. Und mit dem Backup sollte es nichts zu tun haben.
Ich habe nur diese Zeile eingebaut

      return unless($timestamp ge ReadingsVal($SELF, ".timestamp", ""));

mit der geprüft wird ob die erhaltenen Daten neuer sind als die vorhandenen. Um nicht noch einen zweiten request zu starten wenn es eh nichts neues gibt.

Habe es nun trotzdem schon mal ofiziell eingecheckt.
Dabei gibt es noch eine Änderung: Bei der Abfrage bekomme ich immer 5 Werte zurück und bisher hatte ich immer den ältesten verwendet, nun wird der aktuelle genommen. Hatte mich da vertan.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

KyleK

Hallo,

ich würde gerne einen SVG Plot aus den Luftdaten-Werten in FHEM anzeigen lassen, bin aber, was FHEM angeht, leider noch neu und unerfahren.
Kann mir hier jemand auf die Sprünge helfen?

Soweit ich sehen kann müsste erstmal ein FileLog für das Luftdaten Device angelegt werden, und dann braucht man noch ein gplot-File. Aber was soll da drin stehen?
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

reibuehl

Ich verwende folgendes SVG gplot File:

# Created by FHEM/98_SVG.pm, 2017-04-02 19:23:32
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "µg/m³"
set y2label "µg/m³"
set yrange [0:200]
set y2range [0:200]

#logdb Feinstaub:PM10
#logdb Feinstaub:PM2.5

plot "<IN>" using 1:2 axes x1y1 title 'PM10' ls l3 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'PM2.5' ls l2 lw 1 with lines


Benutzt logdb statt Logfile.
Reiner.

igami

Ich werde bei Gelegenheit mal gplot erstellen dateien einchecken
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Frank_Huber

Für neue Plots kopiere ich meist ein bestehendes und andere dann die Devices/Readings ab. (dblog)

Btw: keine weiteren Ausfälle beim Daten holen bis jetzt.

Frank_Huber


PeMue

Hallo zusammen,

nachdem ich Euren Thread gelesen habe, habe ich die "Große" HMUART Platine https://forum.fhem.de/index.php?action=dlattach;topic=56606.0;attach=76061 so erweitert, dass sie auch für einen Luftdatensensor passt. Es wäre klasse, wenn jemand von Euch noch mal über den Schaltplan schauen könnte.

Gruß PeMue
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

Waldmensch

#67
Ich habe gestern den Sensor nachgebaut, bei Luftdaten.info registriert und das Modul in Betrieb genommen. Es funktioniert auch und die Feinstaubdaten laufen regelmäßig ein. Leider werden irgendwann keine DHT22 Daten mehr abgerufen. Man sieht im verbose 5 Log nur noch den Aufruf und die Antwort vom SDS011. Nach einem "shutdown restart" werden wieder ein paar mal beide Sensoren abgefragt, bis irgendwann wieder nur noch der SDS011 abgefragt wird. Vermutlich wird bei einer ausbleibenden Antwort (timeout etc) der zweite Sensor deaktiviert. Ich bin der Meinung, das man das nicht tun sollte wenn der zweite Sensor bewußt im Define angegeben ist. Damit teilt der Nutzer ja mit, das der Sensor da ist. Ich habe als workaround für mich erstmal die Zeile 238 auskommentiert. Kann damit leben, wenn mal ein Wert fehlt.

hier die Device Daten:

Internals:
   CONNECTION remote
   DEF        1679 1680
   INTERVAL   300
   NAME       Luftdaten
   NR         292
   SENSORID1  1679
   STATE      active
   TYPE       LuftdatenInfo
   Helper:
     Dblog:
       Pm10:
         Logdb:
           TIME       1492324238.50584
           VALUE      5.42
       Pm2.5:
         Logdb:
           TIME       1492324238.50584
           VALUE      2.70
       Humidity:
         Logdb:
           TIME       1492321538.94285
           VALUE      42.40
       State:
         Logdb:
           TIME       1492324238.50584
           VALUE      active
       Temperature:
         Logdb:
           TIME       1492321538.94285
           VALUE      7.30
   Readings:
     2017-04-16 08:30:38   PM10            5.42
     2017-04-16 08:30:38   PM2.5           2.70
     2017-04-16 07:45:38   humidity        42.40
     2017-04-15 12:45:14   latitude        51.795
     2017-04-15 12:45:14   location        06849
     2017-04-15 12:45:14   longitude       12.258
     2017-04-16 08:30:38   state           active
     2017-04-16 07:45:38   temperature     7.30
Attributes:
   verbose    5


Erfolgreicher Abruf nach restart:
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_statusRequest
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_GetHttpResponse
2017-04-16 07:45:38 ESPEasy ESPEasy_sonoff_5_Schalter Relay: off
2017-04-16 07:45:38 ESPEasy ESPEasy_sonoff_5_Schalter R: -84.00 R: off
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_ParseHttpResponse
2017.04.16 07:45:38 4 : LuftdatenInfo (Luftdaten) - returned data: [{"id":83355927,"sampling_rate":null,"timestamp":"2017-04-16 05:40:04","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219687848,"value":"5.32","value_type":"P1"},{"id":219687849,"value":"2.77","value_type":"P2"}]},{"id":83357043,"sampling_rate":null,"timestamp":"2017-04-16 05:41:03","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219690196,"value":"6.50","value_type":"P1"},{"id":219690197,"value":"3.62","value_type":"P2"}]}]
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - returned data is newer than readings
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - parsing SDS011 data
2017-04-16 07:45:38 LuftdatenInfo Luftdaten PM10: 6.50
2017-04-16 07:45:38 LuftdatenInfo Luftdaten PM2.5: 3.62
2017-04-16 07:45:38 LuftdatenInfo Luftdaten active
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_GetHttpResponse
2017-04-16 07:45:38 CUL_FHTTK OG.kz.TK.Kinderzimmertuer Window: Closed
2017-04-16 07:45:38 CUL_FHTTK OG.kz.TK.Kinderzimmertuer Reliability: ok
2017-04-16 07:45:38 CUL_FHTTK OG.kz.TK.Kinderzimmertuer Battery: ok
2017-04-16 07:45:38 CUL_FHTTK OG.kz.TK.Kinderzimmertuer Closed
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_ParseHttpResponse
2017.04.16 07:45:38 4 : LuftdatenInfo (Luftdaten) - returned data: [{"id":83355953,"sampling_rate":null,"timestamp":"2017-04-16 05:40:05","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1680,"pin":"7","sensor_type":{"id":9,"name":"DHT22","manufacturer":"various"}},"sensordatavalues":[{"id":219687900,"value":"7.30","value_type":"temperature"},{"id":219687901,"value":"42.50","value_type":"humidity"}]},{"id":83357072,"sampling_rate":null,"timestamp":"2017-04-16 05:41:04","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1680,"pin":"7","sensor_type":{"id":9,"name":"DHT22","manufacturer":"various"}},"sensordatavalues":[{"id":219690254,"value":"7.30","value_type":"temperature"},{"id":219690255,"value":"42.40","value_type":"humidity"}]},{"id":83358414,"sampling_rate":null,"timestamp":"2017-04-16 05:42:15","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1680,"pin":"7","sensor_type":{"id":9,"name":"DHT22","manufacturer":"various"}},"sensordatavalues":[{"id":219693070,"value":"7.40","value_type":"temperature"},{"id":219693071,"value":"42.80","value_type":"humidity"}]},{"id":83359777,"sampling_rate":null,"timestamp":"2017-04-16 05:43:29","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1680,"pin":"7","sensor_type":{"id":9,"name":"DHT22","manufacturer":"various"}},"sensordatavalues":[{"id":219695923,"value":"7.30","value_type":"temperature"},{"id":219695924,"value":"42.40","value_type":"humidity"}]}]
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - returned data is newer than readings
2017.04.16 07:45:38 5 : LuftdatenInfo (Luftdaten) - parsing DHT22 data
2017-04-16 07:45:38 LuftdatenInfo Luftdaten temperature: 7.30
2017-04-16 07:45:38 LuftdatenInfo Luftdaten humidity: 42.40
2017-04-16 07:45:38 LuftdatenInfo Luftdaten active


irgendwann kommt das:
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_statusRequest
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_GetHttpResponse
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_ParseHttpResponse
2017.04.16 07:50:38 4 : LuftdatenInfo (Luftdaten) - returned data: [{"id":83366710,"sampling_rate":null,"timestamp":"2017-04-16 05:49:39","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219710410,"value":"4.97","value_type":"P1"},{"id":219710411,"value":"2.98","value_type":"P2"}]}]
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - returned data is newer than readings
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - parsing SDS011 data
2017-04-16 07:50:38 LuftdatenInfo Luftdaten PM10: 4.97
2017-04-16 07:50:38 LuftdatenInfo Luftdaten PM2.5: 2.98
2017-04-16 07:50:38 LuftdatenInfo Luftdaten active
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_GetHttpResponse
2017-04-16 07:50:38 ESPEasy ESPEasy_sonoff_5_Schalter Relay: off
2017-04-16 07:50:38 ESPEasy ESPEasy_sonoff_5_Schalter R: -84.00 R: off
2017.04.16 07:50:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_ParseHttpResponse
2017.04.16 07:50:38 2 : LuftdatenInfo (Luftdaten) - no second sensor found



und dann wird nur noch der Feinstaubsensor abgefragt:
2017.04.16 07:55:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_statusRequest
2017.04.16 07:55:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_GetHttpResponse
2017.04.16 07:55:38 5 : LuftdatenInfo (Luftdaten) - entering LuftdatenInfo_ParseHttpResponse
2017.04.16 07:55:38 4 : LuftdatenInfo (Luftdaten) - returned data: [{"id":83368197,"sampling_rate":null,"timestamp":"2017-04-16 05:50:58","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219713540,"value":"5.45","value_type":"P1"},{"id":219713541,"value":"2.63","value_type":"P2"}]},{"id":83369333,"sampling_rate":null,"timestamp":"2017-04-16 05:51:59","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219715919,"value":"5.77","value_type":"P1"},{"id":219715920,"value":"2.67","value_type":"P2"}]},{"id":83370444,"sampling_rate":null,"timestamp":"2017-04-16 05:52:58","location":{"id":838,"latitude":"51.795","longitude":"12.258","country":"DE"},"sensor":{"id":1679,"pin":"1","sensor_type":{"id":14,"name":"SDS011","manufacturer":"Nova Fitness"}},"sensordatavalues":[{"id":219718245,"value":"6.82","value_type":"P1"},{"id":219718246,"value":"3.63","value_type":"P2"}]}]
2017.04.16 07:55:38 5 : LuftdatenInfo (Luftdaten) - returned data is newer than readings
2017.04.16 07:55:38 5 : LuftdatenInfo (Luftdaten) - parsing SDS011 data
2017-04-16 07:55:38 LuftdatenInfo Luftdaten PM10: 6.82
2017-04-16 07:55:38 LuftdatenInfo Luftdaten PM2.5: 3.63
2017-04-16 07:55:38 LuftdatenInfo Luftdaten active

igami

Zitat von: PeMue am 14 April 2017, 11:13:46
nachdem ich Euren Thread gelesen habe, habe ich die "Große" HMUART Platine https://forum.fhem.de/index.php?action=dlattach;topic=56606.0;attach=76061 so erweitert, dass sie auch für einen Luftdatensensor passt. Es wäre klasse, wenn jemand von Euch noch mal über den Schaltplan schauen könnte.
Ich bin kein Bastler in dem Sinne und kann dazu leider nichts sagen.

Hallo zusammen,

Zitat von: Waldmensch am 16 April 2017, 08:38:07
Ich habe gestern den Sensor nachgebaut, bei Luftdaten.info registriert und das Modul in Betrieb genommen. Es funktioniert auch und die Feinstaubdaten laufen regelmäßig ein. Leider werden irgendwann keine DHT22 Daten mehr abgerufen. Man sieht im verbose 5 Log nur noch den Aufruf und die Antwort vom SDS011. Nach einem "shutdown restart" werden wieder ein paar mal beide Sensoren abgefragt, bis irgendwann wieder nur noch der SDS011 abgefragt wird. Vermutlich wird bei einer ausbleibenden Antwort (timeout etc) der zweite Sensor deaktiviert. Ich bin der Meinung, das man das nicht tun sollte wenn der zweite Sensor bewußt im Define angegeben ist. Damit teilt der Nutzer ja mit, das der Sensor da ist. Ich habe als workaround für mich erstmal die Zeile 238 auskommentiert. Kann damit leben, wenn mal ein Wert fehlt.
Ich werde einstellen, dass der Sensor 3x keine Daten liefern muss, bis er entfernt wird.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Waldmensch

Warum machst Du es nicht so, dass er entfernt wird, wenn das Modul ihn selber gesucht hat. Wenn der Nutzer den Sensor explizit im DEF angegeben hat, lässt Du ihn drin. Wenn FHEM einfach mal für 3x Intervall kein Internet hat, würde der Sensor ja immer gelöscht werden. Ich würde da schon auf den User hören, der sagt das der Sensor existiert, und den Sensor abfragen.
Oder füge die erlaubten Fehlversuche als Attribut ein, das man sie selber auf 1000 o.ä. setzen kann, wenn man das Verhalten nicht möchte.


Gesendet von iPhone mit Tapatalk

igami

Zitat von: Waldmensch am 17 April 2017, 18:22:37
Warum machst Du es nicht so, dass er entfernt wird, wenn das Modul ihn selber gesucht hat. Wenn der Nutzer den Sensor explizit im DEF angegeben hat, lässt Du ihn drin. Wenn FHEM einfach mal für 3x Intervall kein Internet hat, würde der Sensor ja immer gelöscht werden. Ich würde da schon auf den User hören, der sagt das der Sensor existiert, und den Sensor abfragen.
Oder füge die erlaubten Fehlversuche als Attribut ein, das man sie selber auf 1000 o.ä. setzen kann, wenn man das Verhalten nicht möchte.
Wenn keine Internetverbindung besteht wird das als Fehler ins Log geschrieben, aber keine SensorID gelöscht.
Habe es jetzt so gelöst wie du vorgeschlagen hast: Die Sensor ID wird nur gelöscht, wenn der Sensor nicht explizit angegeben wurde. Ist dann ab morgen verfügbar.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Waldmensch

Cool! Vielen Dank :)


Gesendet von iPhone mit Tapatalk

FhemPiUser

Ich habe mir auch eine Feinstaubsensor SDS011 bestellt, will den aber nur lokal mit fhem verwenden. Ich will also nicht, dass irgendetwas rausgeschickt wird ins Inrnet / zu luftdaten.info. Geht das mit der bestehenden Software?

Ansonsten dachte ich an die ESPEasy firmware anstelle der  luftdaten.info firmware. ESPEasy ist ja sehr gut an fhem anzubinden. Hat mal jemand ESPEasy + fhem mit dem SDS011 sensor probiert und zum Laufen bekommen?

dev0

Schau Dir mal das MH-Z19 Plugin an, dieser CO2 Sensor wird ebenfalls seriell angesprochen. Sollte sich mit etwas Zeit und Spucke entsprechend anpassen lassen.

Frank_Huber

Ja, das geht. Musst nur in deinem Router die IP für das Internet sperren. Evtl kannst es auch direkt in der Software abschalten.

Meiner persönlichen Meinung nach solltest du das aber nicht machen. Du nutzt die Software von dem Projekt, dann kannst doch auch die Daten hinschicken. Sind dich nur die Luftdaten und es ist ja auch keine Behörde.
Nur meine Meinung. Nicht zur Diskussion gedacht...

Gesendet von meinem JY-S3 mit Tapatalk