Hallo,
ich betreibe schon lange einen Feinstaubsensor im Luftgütemessnetz ( OK Lab Stuttgart / sensor comunity). Jetzt habe ich entdeckt, dass ich auch Messwerte an OpenSenseMap senden kann. Ich habe also alles eingerichtet und es funktioniert auch prima!
Ich betreibe aber noch weitere Sensoren wie z.B. einen Regenmesser. Dessen Daten möchte ich auf die OpenSenseMap hochladen. Einen weiteren Sensor habe ich in der OpenSenseMap hinzugefügt und auch eine weitere Sensor-ID bekommen.
Ich habe es über die REST-api versucht, bekomme aber immer Fehlermeldungen:
|code|„MethodNotAllowed“| | — | — | |message|„GET is not allowed“|
Die URL ist folgende:
https://api.opensensemap.org/boxes/:678243828e3d610008ef8xxx/:678250bc8e3d61000805xxx/?„value“=„0.3“&„createdAt“="2025-01-11T20:48:00Z"
Wo ist mein Fehler?
Kann mir jemand helfen?
Vielen Dank schon mal!!!
Hallo,
Du musst neue Werte mit POST senden, nicht GET.
https://docs.opensensemap.org/#api-Measurements-postNewMeasurement
Gruss Macro77
Ich probiere gerade mit php einen http - post request zu realisieren.
Ich sende mit curl den JSON-String:{ „sensor“: „678250bc8e3d61000805exxx“, „value“: „0.3“, „created_at“: „2025-01-12T17:59:00Z“ }
Auch da bekomme ich die Fehlermeldung:
Fehler beim Hochladen des Messwerts: {„code“:„UnprocessableEntity“,„message“:„Invalid sensor id in measurement {„sensor_id“:„sensor“,„value“:„678250bc8e3d61000805exxx“}“}
Die Sensor-ID ist aber korrekt!
Das der php-code ist nur für mein Verständnis gut. Eigentlich will ich die Messwerte von IOBroker aus hochladen.
…
Hallo
Also wenn ich von einem Ubuntu Server was sende dann klapppt es:
curl -X POST -H „Content-Type: application/json“ --data ‚{„value“:"-2.5"}‘ ‚https://ingress.opensensemap.org:443/boxes/5exxx/5exxx‘
Die Boxid und Sensorid müssen natürlich stimmen.
Ich mache das bei mir von Homeassistant mit NodeRed.
Gruss Macro77
Bei mir klappts jetzt auch:
const options = {
hostname: 'api.opensensemap.org',
port: 443,
path: `/boxes/${boxId}/${sensorId}`,
method: 'POST',
headers: {
'Content-Type': 'application/json',
// 'Authorization': 'Bearer ' + apiKey
}
};
Da war wohl noch ein Fehler…
Vielen Dank nochmals!