Welkom bij het Meet je leefomgeving dashboard
Met sensorkastjes in tuinen, schoolpleinen en buurten meten leerlingen en andere geïnteresseerden overal in Nederland de kwaliteit van hun leefomgeving. Op deze kaart zie je alle meetgegevens verzameld zoals de maximale temperatuur, gemiddeld CO2-gehalte en andere attributen. Meer weten over het project? Ga naar meetjeleefomgeving.nl.
Deze website is onderdeel van het project Meet je leefomgeving. Er kunnen geen rechten worden ontleend aan iets op deze website, inclusief de gegevens. Onderhoud aan de website is spaarzaam, en er kunnen geregeld fouten voorkomen. Is er iets te vragen of melden, gebruik dan graag het formulier op de algemene website.
Meetdata is openbaar beschikbaar en wordt in hexagons samengevoegd om exacte meetlocaties te verhullen. Gateways zijn zichtbaar op de locatie die de eigenaar zelf heeft ingesteld — die kan (iets) afwijken van de werkelijke plek.
Gebruikers kunnen in overleg met de beheerder een account krijgen. Neem alstublieft contact op via het formulier op de algemene website.
Elke gekleurde hexagon is een gebied waarin metingen van sensorkastjes zijn samengevoegd. De kleur laat zien hoe hoog of laag de gekozen waarde is (bijvoorbeeld temperatuur of CO2), in te stellen bij Filters. Zwarte stippen zijn gateways die de metingen ontvangen hebben.
Zoom voldoende in en klik op de ronde knop links op de kaart om individuele metingen te bekijken in plaats van samengevoegde hexagons.
Om zelf metingen naar deze kaart te sturen heb je een API-sleutel nodig. Er is één type sleutel: gratis, met een ruim daglimiet, zonder vervaldatum.
Een privé-sleutel houdt de metingen van jouw apparaten uit de openbare kaart, gateway-statistieken en andere publieke weergaven. Jijzelf blijft de gegevens wel zien via de panelen Apparaten en Live data.
latitude en longitude instelt.Heb je losse meetdata (bijvoorbeeld een CSV-bestand), gebruik dan het Upload-paneel om deze alsnog aan de kaart toe te voegen.
Deze sleutel wordt nooit meer getoond. Kopieer hem voordat je dit sluit.
Live metingen van jouw webhook worden hier getoond.
Let op: de inhoud van dit tabblad gaat verloren bij het herladen van de pagina.
| Tijd | DEV EUI | Poort | Temp °C | Vocht % | Druk hPa | CO₂ ppm | PM2.5 | PM10 | Lux | UV | dB | Volt V | Beweging | VOC |
|---|
The webhook endpoint uses HTTP Basic Auth. Set your MJLO account username as the username and your API key as the password. For anonymous keys (generated without an account), any username is accepted.
POST https://[your-mjlo-host]/webhook.php
Content-Type: application/json
This matches the standard The Things Stack webhook format — point your TTN application webhook here directly.
These fields must be set by your payload formatter inside
decoded_payload of the uplink message.
| Field | Type | Description | |
|---|---|---|---|
latitude |
float | required | Decimal degrees |
longitude |
float | required | Decimal degrees |
altitude |
float | optional | Metres above sea level |
voltage |
float | optional | Battery voltage (V) |
hdop |
float | optional | Horizontal dilution of precision |
sats |
int | optional | Number of GNSS satellites used |
temperature |
float | optional | °C |
humidity |
float | optional | % |
pressure |
float | optional | hPa |
luminosity |
float | optional | lux |
uv |
float | optional | UV index |
loudness |
float | optional | dB(A) |
co2 |
float | optional | ppm |
pm25 / pm10 |
float | optional | µg/m³ |
voc |
float | optional | |
motion |
bool | optional | Stored as 0/1 |
Any other numeric field present in decoded_payload that doesn't yet exist as a column is
automatically added to the uplinks table as a FLOAT column on first use — no
schema change needed on this end.
If latitude or longitude is missing, the device record is still updated
but no uplink or gateway data is stored.
The following fields from the standard The Things Stack uplink payload are read automatically. No changes to your application setup are needed beyond enabling the webhook.
| Field path | Type | |
|---|---|---|
end_device_ids.device_id |
string | required |
end_device_ids.application_ids.application_id |
string | required |
end_device_ids.dev_eui |
string | required |
received_at |
string | required |
uplink_message.f_port |
int | required |
uplink_message.f_cnt |
int | required |
uplink_message.settings.frequency |
string | required |
uplink_message.settings.data_rate.lora.spreading_factor |
int | required |
uplink_message.settings.data_rate.lora.bandwidth |
int | required |
uplink_message.rx_metadata |
array | required |
simulated |
bool | optional |
If simulated is present, only the device record is updated — no uplink or receipt data is stored.
rx_metadata[])| Field | Type | Description | |
|---|---|---|---|
gateway_ids.gateway_id |
string | required | Use "packetbroker" for Packet Broker |
packet_broker.forwarder_gateway_id |
string | optional | Required when gateway_id is "packetbroker" |
received_at |
string | required | ISO 8601 timestamp |
rssi |
int | required | Signal strength (dBm) |
snr |
float | optional | Signal-to-noise ratio (dB), defaults to 0 |
location.latitude |
float | optional | Defaults to 0 if absent |
location.longitude |
float | optional | Defaults to 0 if absent |
location.altitude |
float | optional | Defaults to 0 if absent |
Every key has a daily uplink limit (default 100,000/day, UTC). Exceeding it returns
429 Too Many Requests until the counter resets at midnight UTC. An invalid or unknown key
returns 401 Unauthorized.
{
"received_at": "2024-01-15T12:00:00Z",
"end_device_ids": {
"device_id": "my-tracker",
"application_ids": { "application_id": "my-app" },
"dev_eui": "0004A30B001C0530"
},
"uplink_message": {
"f_port": 1,
"f_cnt": 42,
"received_at": "2024-01-15T12:00:00Z",
"decoded_payload": {
"latitude": 52.0116,
"longitude": 4.3571,
"altitude": 5,
"voltage": 3.7,
"hdop": 1.2,
"sats": 8,
"temperature": 18.4,
"humidity": 62.1
},
"settings": {
"frequency": "868100000",
"data_rate": {
"lora": {
"spreading_factor": 7,
"bandwidth": 125000
}
}
},
"rx_metadata": [
{
"gateway_ids": { "gateway_id": "my-gateway" },
"received_at": "2024-01-15T12:00:00Z",
"rssi": -85,
"snr": 7.5,
"location": {
"latitude": 52.015,
"longitude": 4.360,
"altitude": 10
}
}
]
}
}
Het MJLO dashboard verzamelt alleen de gegevens die nodig zijn om de kaart te laten werken. Hieronder lees je wat er wordt opgeslagen, waarom, en hoe lang.
Elke meting die je naar ons doorstuurt bevat een GPS-positie van je sensorkastje. Deze positie slaan we op om hem op de kaart te tonen en om dekkingsstatistieken te berekenen.
Elke sleutel kan in het Account-paneel op privé worden gezet. Wanneer een sleutel privé is:
De schakelaar hiervoor staat in het Account-paneel naast elke sleutel.
Je API-sleutel authenticeert elke meting en elke inlogpoging op deze kaart. Behandel hem als een wachtwoord.
Log je in met je Meet je leefomgeving-account, dan worden je gegevens gecontroleerd tegen de hoofdwebsite (meetjeleefomgeving.nl) via een versleutelde verbinding. Wachtwoorden worden nooit opgeslagen op de kaart-server, en staan als beveiligde hash op de hoofdwebsite.
Deze site slaat een kleine hoeveelheid data op in je browser:
Wanneer The Things Network onze webhook aanroept om een meting af te leveren, kunnen we het HTTP-verzoek loggen voor debugdoeleinden. Dit verzoek bevat geen persoonsgegevens of IP-adressen, maar extra velden in de payload kunnen wel worden vastgelegd. Deze logs worden kort bewaard en niet gedeeld met derden.
Dekkingsdata is openbaar zichtbaar op de kaart voor iedereen die de site bezoekt. We verkopen, verhandelen of delen individuele gebruikersgegevens niet met derden.
Je kunt je sleutels en bijbehorende gegevens op elk moment verwijderen via het Account-paneel. Wil je een account of gegevens laten verwijderen die niet via de interface te verwijderen zijn, gebruik dan het contactformulier op de algemene website.
Als dit privacybeleid ingrijpend verandert, werken we dit paneel bij en vermelden we de datum van de laatste herziening. Laatst bijgewerkt: juli 2026.
| Attribuut | Min | Gem | Max | Eenheid |
|---|