Feinstaubsensor bauen (luftdaten.info)

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

Vorheriges Thema - Nächstes Thema

igami

Hat etwas gedauert, aber ist nun geändert.
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

Edi77

Hallo,

Kann es sein das es noch Probleme mit JSON gibt?
Bekomme auch nur error


2022.01.30 18:18:32 2: LuftdatenInfo (Luft) - error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at ./FHEM/59_LuftdatenInfo.pm line 316.

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Steffen@Home

Hallo..
Habe auch ständig "error while request: read from https://.... timed out" im Logfile , liegt dies am remote ?
Pi 1 - FHEM, HM-MOD-RPI-PCB, HM-RT-CC-DN, HM-WDS10-TH-O, HM-Sec-SCo, HM-LC-Sw1PBU-FM, Relais Platine für ext. Ansteuerung, LD382 Wifi LED Controller, DHT
Pi 2 - Kamera, DHT
Pi 3 - FHEM2, Grafana, DHT, Magnet-Sensoren, Relais-Platine

kkoeniger

Bei mir funktioniert es, aber ich bekomme keine PM1 geliefert. In der Map ist PM1 sichtbar, siehe Bild.
LG,
Karl

Frank_Huber

Zitat von: kkoeniger am 20 Juli 2023, 16:06:25Bei mir funktioniert es, aber ich bekomme keine PM1 geliefert. In der Map ist PM1 sichtbar, siehe Bild.
was siehst denn auf der lokalen Webseite des Sensors?
http://<deine_sensor_ip>/values

kkoeniger

#560
Mein Sensor ist nicht lokal angebunden. Es ist eine LORA-Airstation3, zB so sichtbar .

Defintion:
[code]define kkluftdaten LuftdatenInfo remote 82127
attr kkluftdaten alias von Luftdaten.at
attr kkluftdaten devStateStyle style="font-weight:bold;;;;color:red;;;;font-size:15px;;;;"
attr kkluftdaten group Klima
attr kkluftdaten icon feinstaub_pm10
attr kkluftdaten room Umwelt
attr kkluftdaten stateFormat PM-10 [$name:PM10] ug/m3 / PM-2.5 [$name:PM2.5] ug/m3<br><br>Luftfeuchte [$name:humidity] % / Temperatur [$name:temperature] °C<br>\
am/um [$name:PM10:t] Uhr
attr kkluftdaten verbose 0
#   CFGFN     
#   DEF        remote 82127
#   FUUID      64b93a05-f33f-90bb-cef8-2912358efd3abc56
#   INTERVAL   300
#   MODE       remote
#   NAME       kkluftdaten
#   NR         84499
#   SENSORIDS  82127
#   STATE      PM-10 11 ug/m3 / PM-2.5 11 ug/m3<br><br>Luftfeuchte 59.3 % / Temperatur 26.6 °C<br>
#am/um 2023-07-21 11:19:49 Uhr
#   TIMEOUT    5
#   TYPE       LuftdatenInfo
#   eventCount 251
#   .attraggr:
#   .attrminint:
#   READINGS:
#     2023-07-21 11:19:49   PM10            11
#     2023-07-21 11:19:49   PM2.5           11
#     2023-07-21 11:19:49   humidity        59.3
#     2023-07-20 15:43:38   latitude        47.77714515000
#     2023-07-20 15:43:40   location        7202 Gemeinde Bad Sauerbrunn
#     2023-07-20 15:43:38   longitude       16.32962107938
#     2023-07-21 11:19:49   state           active
#     2023-07-21 11:19:49   temperature     26.6
#   hmccu:
#
setstate kkluftdaten PM-10 11 ug/m3 / PM-2.5 11 ug/m3<br><br>Luftfeuchte 59.3 % / Temperatur 26.6 °C<br>\
am/um 2023-07-21 11:19:49 Uhr
setstate kkluftdaten 2023-07-21 11:19:49 PM10 11
setstate kkluftdaten 2023-07-21 11:19:49 PM2.5 11
setstate kkluftdaten 2023-07-21 11:19:49 humidity 59.3
setstate kkluftdaten 2023-07-20 15:43:38 latitude 47.77714515000
setstate kkluftdaten 2023-07-20 15:43:40 location 7202 Gemeinde Bad Sauerbrunn
setstate kkluftdaten 2023-07-20 15:43:38 longitude 16.32962107938
setstate kkluftdaten 2023-07-21 11:19:49 state active
setstate kkluftdaten 2023-07-21 11:19:49 temperature 26.6

[/code]
LG,
Karl

kkoeniger

Ich habe es jetzt mit ioBroker und von dort via MQTT gelöst --> funktioniert.
LG,
Karl

retikulum

#562
Falls noch jemand ne ganz andere Variante braucht, um Sensordaten an sensor.community zu senden, hab ich hier ein externes .sh script gebaut. Via httpmod erhielt ich nur 400er als Response und habs nicht gecheckt (Header/Body Syntax Problem?).
Da mir das auf den Geist gegangen ist, hab ich das mit curl in einem bash script gelöst, das von fhem oder Cronjob alle 5 Minuten getriggert wird.

Voraussetzung: telnet in fhem aktiveren (define telnetPort telnet 7072)
Ihr müsst euere Sensor-ID, Device- und Readingnamen noch anpassen.

/opt/fhem/scripts/sensorcommunity.sh:
#!/bin/bash

P1_VALUE=$(echo '{ReadingsVal("MQTT2_DVES_476DD4","SDS0X1_PM10","")}' | nc -q 1 localhost 7072)
P2_VALUE=$(echo '{ReadingsVal("MQTT2_DVES_476DD4","SDS0X1_PM2.5","")}' | nc -q 1 localhost 7072)

timestamp=$(date '+%Y-%m-%d %H:%M:%S')
curl -s -X POST "https://api.sensor.community/v1/push-sensor-data/" \
     -H "Content-Type: application/json" \
     -H "X-Pin: 1" \
     -H "X-Sensor: esp8266-1234567" \
     -d "{\"software_version\": \"Tasmota 13.3.0(sensors)\", \"sensordatavalues\": [{\"value_type\": \"P1\", \"value\": \"$P1_VALUE\"},{\"value_type\": \"P2\", \"value\": \"$P2_VALUE\"}]}" \
     | echo "[$timestamp] Server response: $(cat -)" >> logfile.log

Es wird hier außerdem eine logfile.log angelegt mit der Antwort des Servers.

Fhem:
define send_data_to_sensor_community at +*00:05:00 {system("/opt/fhem/scripts/sensorcommunity.sh &")}
oder einen Cronjob (als fhem-user) anlegen mit crontab -e und folgender Zeile:

(Upload alle 5 Minuten)
*/5 * * * * /opt/fhem/scripts/sensorcommunity.sh

heramol

Hallo!
Als Feinstaubsensornutzer ist mir aufgefallen, dass seit ein paar Tagen ne neue Firmware drauf ist und die Taupunkttemperatur aufgeführt ist. Kann zwar berechnet werden, wenn ich mich richtig informiert habe, wenn der Sensor die Taupunkttemperatur aber über die Schnittstelle sendet, wäre es etwas bequemer. Wurde das Thema bereits angesprochen? Über die Suche habe ich jetzt nichts finden können, oder ich habe nur falsch gesucht.

Danke für die Info

VG Tom