Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate Luftdaten.info sensor stations #153

Closed
Nijmegen-Geluid opened this Issue Dec 18, 2018 · 18 comments

Comments

@Nijmegen-Geluid
Copy link

Nijmegen-Geluid commented Dec 18, 2018

Een fijnstofmeter kit van een burger heeft de mogelijkheid om de data naar een eigen API te versturen. Is gebaseerd op Luftdaten!
Kan dit binnen het SE projekt?

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Dec 20, 2018

Alles is mogelijk, alleen niet out-of-the box. Er is een klein stukje ontwikkeling nodig, m.n. voor de mapping van data formaten. Als deze naar InfluxDB kan sturen zijn we een eind op weg.

@Nijmegen-Geluid

This comment has been minimized.

Copy link
Author

Nijmegen-Geluid commented Dec 21, 2018

Is mogelijk.
Via een output in de software.
Hoe krijgen we dat bij jouw?
Als extern bestandje via de mail?

@Nijmegen-Geluid

This comment has been minimized.

Copy link
Author

Nijmegen-Geluid commented Dec 23, 2018

Je kunt op https://github.com/opendata-stuttgart/sensors-software alle info vinden. Als je het account geeft waar het bericht heen moet kan ik dit bij een van de sensors activeren.
Is dat een goed idee?

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Jan 24, 2019

Nog niet vergeten! Ga dit oppakken, ga zo naar dit event: https://www.meetup.com/Code-For-NL/events/258154926 om meer over Luftdaten (sensors) te weten te komen.

@Nijmegen-Geluid

This comment has been minimized.

Copy link
Author

Nijmegen-Geluid commented Jan 24, 2019

@Nijmegen-Geluid

This comment has been minimized.

Copy link
Author

Nijmegen-Geluid commented Jan 28, 2019

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Jan 29, 2019

Ik stel voor dat Roderick hier reageert, dan blijft de informatie uitwisseling transparant, ipv ergens 1-1 in emails. Ik kan hem wel vragen.

Ik ben redelijk, ook technisch, op de hoogte van LuftDaten. Het beste, ook voor toekomst is als het SE platform de data van LuftDaten zelf binnenhaalt via onze "Harvesters". Dit is niet anders dan we met Intemo en AirSensEUR doen: data wordt op remote server, een Data Collector, verzamelt en SE haalt deze voortdurend op. Dan kunnen we ook snel uitbreiden met meerdere LuftDaten sensors en is het gemakkelijk voor de LuftDaten sensors eigenaren: hoeven maar naar 1 plek te sturen. Deze Harvester moet nog wel ontwikkeld worden, maar er hoeft verder geen calibratie gedaan neem ik aan, hoewel die SDS011 wel erg gevoelig is voor RH, maar goed er worden meerdere sensoren in LuftDaten gebruikt.

@Nijmegen-Geluid

This comment has been minimized.

Copy link
Author

Nijmegen-Geluid commented Jan 29, 2019

@ropeters68

This comment has been minimized.

Copy link

ropeters68 commented Jan 30, 2019

Hallo Just,

Ik zie 2 manieren om de luftdaten sensor data beschikbaar te maken voor het Smart Emission platform:

  • data ophalen luftdaten http://api.luftdaten.info/v1/sensor/{sensorid} (voorbeelden: sensor Extrmadura straat Lent 16772 (SDS011), 16773 (DHT), 16774 (BME280))
    Randvoorwaarde: de sensors moeten bij lufdaten aangemeld zijn.
    Hierbij moet er rekening gehouden worden dat luftdaten per sensor in de kit een ID gebruikt, onze kits hebben een SDS011 voor fijnstof, een DHT22 bij de luchtafvoer (voor controle op de temperatuur/ luchtvochtigheid van de gemeten lucht), BME280 (meet de temperatuur/luchtvochtigheid en luchtdruk van de buitenlucht). Onze sensors wijken iets af van de basis kits zoals op de Luftdaten site beschreven. Wij gebruiken een verwarmde luchtinlaat (en SDS011) behuizing) waardoor de te meten lucht ca. 10 graden wordt verwarmd waardoor de relatieve luchtvochtigheid altijd lager zou moeten liggen dan 70%. De bedoeling is dat daarmee de meetfout door hygroscopische groei van de fijnstofdeeltjes wordt ondervangen.
    De kits versturen iedere 150 seconden een bericht naar luftdaten (op het configuratiescherm kan een andere frequentie ingesteld worden maar daar doen we tot nu toe nog niets mee).
  • Data via een eigen API versturen
    Verder heb ik een gratis accountje voor het opvragen van weersgegevens:
    http://weerlive.nl/api/json-data-10min.php?key=xxxxxxxx&locatie=Nijmegen
    Kan interessant zijn voor ivm verklaren van veranderingen agv wijziging in windrichting/snelheid.
    De eerste optie lijkt me het eenvoudigst, is dan een kwestie van de json-file mappen naar de database.
@ropeters68

This comment has been minimized.

Copy link

ropeters68 commented Jan 30, 2019

Kleine toevoeging, naar verwachting worden er in februari in workshop in Nijmegen/Arnhem ca. 40 sensors gebouwd, dit zijn wel de basis versies (SDS011 en DHT22).

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 4, 2019

@ropeters68 ja via Harvesting, op selectie van Luftdata sensoren, evt geografisch regio Nijmegen, indien mogelijk, lijkt mij beste optie. Zie idd 2 metingen uit laatste 5 min: bijv http://api.luftdaten.info/v1/sensor/16772/ (slash '/' verplicht aan eind URL). DIe workshop lijkt mij interessant. Worden die sensoren daar ook meteen aangesloten? Luftdaten sensor id kan als metadata in SE.

Ja RH is m.i. groot probleem en DHT22 blijft snel op 100% hangen.

Ik overleg nog met Paul Geurts, maar lijkt mij verrijking voor SE platform.

@ropeters68

This comment has been minimized.

Copy link

ropeters68 commented Feb 4, 2019

Geografische selectie van sensoren is volgens mij mogelijk. De sensoren moeten aangemeld zijn bij Luftdaten voordat de data beschikbaar wordt, dit registratie proces zou 3 dagen moeten duren maar ik zit al meer dan 3 weken te wachten op de registratie van de sensoren op de Graafseweg. Lukas heeft aangekondigd dat de registratie in februari geautomatiseerd gaat worden zodat de doorlooptijd minuten ipv weken wordt. Op basis van eerdere workshops (o.a. Luchtwachters Delft) verwacht ik dat lang niet alle sensors online zullen komen. Het vinden van een geschikte ophangplek binnen 3 meter van een stopcontact en voldoende WiFi dekking is lastig. Dat zijn wel randvoorwaarden voor registratie omdat locatie en hoogte van de sensor opgegeven moeten worden.
RH is zeker een probleem, zelf ben ik geen fan van de standaard behuizing die ook voor de workshop wordt gebruikt, de kans op corrosie is vrij groot.
Wij gebruiken de BME voor het meten van de buitenlucht condities, van de 8 sensoren heb ik er maar bij 1 problemen gezien (als het langdurig regent, hersteld daarna weer). De DHT zit ingepakt in de behuizing bij de uitgaande verwarmde luchtstroom, dat gaat prima.
Het zou mooi zijn als de sensoren aan het SE platform kunnen worden toegevoegd!

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 5, 2019

Goed/prio met Paul.
Ja, Lukas is druk, heb hem uitgebreid gesproken vorige week vr op TTN conf. Mogelijk iets met SE platform doen tbv Luftdaten, maar stap voor stap.

WIFI en Stroom zijn ook in mijn AQ-projecten (heb i.s.m. RIVM 5 EU JRC AirSensEURs aangesloten op SE-platform, o.a. Nijmegen-Ruyterstr, steeds grootste struikelblok. Daarom ben ik mij aan verdiepen in LoRa/TTN evt. later met solar-current. Maar die AQ sensoren hebben wel vaak een actieve ventilator die veel stroom vreet.

De BME280 hoor ik overal goede verhalen over.

Terug naar issue hier: Ik ga kijken hoe op slimste manier LuftDaten (LD) sensoren kunnen worden geharvest, m.n. zonder handmatige akties. Bijv alles in bbox "Groot-Nijmegen". LD API heeft idd spatial queries, bijv bbox of lon/lat met straal, daar kom ik wel uit. Ik wil wel de LD sensor-id's behouden, anders dan bijv in https://samenmeten.rivm.nl/dataportaal/. Gelukkig heeft SE een generieke "metadata" mogelijkheid. Voornaamste probleem is een automatische "id-mapping": binnen SE zijn id's iets anders opgebouwd, een id is een fysiek Station ("Thing" in SensorThings API) : 8-cijferig, is historisch ontstaan i.s.m. Intemo: eerste 4 cijfers project id/vaak zelfs postcode, tweede 4 station-id. Binnen "Station" kunnen weer meerdere sensors/indicatoren aktief zijn tot wel 60 voor Josene (denk aan geluid-indicatoren in freq banden, sommige "sensors" zijn virtueel, afgeleid). Goed, er is altijd uit te komen. Ik laat weten. Ik begin met laatste waarden, is eenvoud, die zijn altijd in SmartApp en SOSEmu API beschikbaar.

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 6, 2019

Ok, klopte niet wat ik over LD en id's en SamenMeten- hierboven stelde: er is toch een concept van een "station" in LD, dat is een "kit" bijv met id=LTD_8930 (Lent) zie ik terug in de LD API als een location.id waarin hier 3 sensoren (SDS011, SHT22, BME280), dus totaal komt ie 6x terug, hetgeen goed klopt met dat ieder station iedere 150 sec stuurt (dus 2x per 5 min).

Met deze query krijg ik alle laatste 5 min metingen in "Groter Nijmegen" gebied:
http://api.luftdaten.info/v1/filter/box=51.7,5.6,51.9,6.0

.
.
  {
    "sensor": {
      "pin": "1",
      "id": 17622,
      "sensor_type": {
        "name": "SDS011",
        "id": 14,
        "manufacturer": "Nova Fitness"
      }
    },
    "timestamp": "2019-02-05 15:42:03",
    "location": {
      "latitude": "51.8600",
      "country": "NL",
      "id": 8930,
      "longitude": "5.8680",
      "altitude": "12.7"
    },
    "id": 2826167868,
    "sampling_rate": null,
    "sensordatavalues": [
      {
        "value_type": "P1",
        "id": 6003944572,
        "value": "30.00"
      },
      {
        "value_type": "P2",
        "id": 6003944573,
        "value": "23.50"
      }
    ]
  },
  {
    "sensor": {
      "pin": "7",
      "id": 17623,
      "sensor_type": {
        "name": "DHT22",
        "id": 9,
        "manufacturer": "various"
      }
    },
    "timestamp": "2019-02-05 15:42:04",
    "location": {
      "latitude": "51.8600",
      "country": "NL",
      "id": 8930,
      "longitude": "5.8680",
      "altitude": "12.7"
    },
    "id": 2826167908,
    "sampling_rate": null,
    "sensordatavalues": [
      {
        "value_type": "humidity",
        "id": 6003944658,
        "value": "47.80"
      },
      {
        "value_type": "temperature",
        "id": 6003944657,
        "value": "16.00"
      }
    ]
  },

justb4 added a commit to smartemission/docker-se-stetl that referenced this issue Feb 6, 2019

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 6, 2019

Eerste resultaten laatste waarden Luftdaten in Lent bemoedigend (test server, nog niet live), nu formaliseren en historische waarden bewaren.

image

justb4 added a commit to smartemission/docker-se-smartapp that referenced this issue Feb 6, 2019

justb4 added a commit to smartemission/docker-se-smartapp that referenced this issue Feb 6, 2019

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 6, 2019

Eerste ruwe versie op productie:

  • harvesting configurabel, kan per bbox, nu alleen Groter Nijmegen
  • alleen laatste waarden
  • SE project id is 4931 (49 voor Luftdaten algemeen, 31 NL)
  • eerste 4 cijfers station id is project id, rest Luftdaten kit id (location id): e.g. 49318526
  • te zien in SmartApp https://data.smartemission.nl/smartapp/ (ook lagen aan/uit te zetten)
  • ook in Heron Viewer: (alleen "current" lagen): https://data.smartemission.nl/heron/
  • data via Harvester in SE DB
  • nog dubbele waarden meteo (SHT22 en BME260)
  • eerst dit testen dan verder met historie harvesting

image

@ropeters68

This comment has been minimized.

Copy link

ropeters68 commented Feb 7, 2019

Top! Ziet er goed uit.

justb4 added a commit to smartemission/docker-se-stetl that referenced this issue Feb 10, 2019

justb4 added a commit to smartemission/docker-se-stetl that referenced this issue Feb 11, 2019

justb4 added a commit to smartemission/docker-se-stetl that referenced this issue Feb 11, 2019

justb4 added a commit that referenced this issue Feb 11, 2019

justb4 added a commit to smartemission/docker-se-stetl that referenced this issue Feb 12, 2019

justb4 added a commit that referenced this issue Feb 12, 2019

justb4 added a commit that referenced this issue Feb 12, 2019

@justb4 justb4 changed the title Inserting new sensor of other brand Integrate Luftdaten.info sensor stations Feb 12, 2019

@justb4

This comment has been minimized.

Copy link
Contributor

justb4 commented Feb 12, 2019

Also integrated a Luftdaten Harvester. Every hour the average hour-values for Luftdaten stations within specified bboxes are read from the Luftdaten API.

Now historic time-series are also built up and made available via APIs (WMS, WFS, SOS, STA) and via the Heron Viewer (below). Will take some time for history to build up. Also some changes to metadata such that it is easier to track back a measurement to an LTD station and sensor (id) within.

Made it easier to integrate additional sensor-types that send calibrated data via the introduction of the Vanilla Device. See also updated documentation:
https://smartplatform.readthedocs.io/en/latest/sensors.html

image

For now this implementation is finished and goes into maintenance mode so closing this issue. Open separate issues for any problems or extensions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.