RestAPI mit MobileAlerts

Hallo ich bin seit einem halben Jahr mit HC2 unterwegs und habe eine Reihe an Aktoren von Fibaro und anderen Herstellern in Verwendung und mittlerweile an die 40 Lua Szenen gut laufen. Nun möchte ich meine Mobile Alerts Sensoren auslesen und auch nutzen um z.B. Temperaturen zu überwachen.

Es gibt dazu auch im Netz eine Dokumentation, die ich im folgenden übernommen habe.
Mir ist jedoch nicht klar, wie ich Header und Datenblock so gestalte, dass ich die Daten nachher verwenden kann. Verwende ich die URL mit meiner PhoneID im Browser bekomme ich eine schöne Übersicht all meiner Sensoren mit ihren Messwerten, aber wie drücke ich dies in meiner LUA Szene für das Homecenter2 aus?

Hier die RestAPI Angaben zu Mobile Alerts und darunter meinen kläglichen Skriptversuch, der im Debug mit der print Meldung ERROR und Operation canceled als Status quittiert wird.

Ich bin für Eure Hinweise dankbar.

https://github.com/sarnau/MMMMobileAlerts/blob/master/MobileAlertsGatewayRESTAPI.markdown
Mobile Alerts REST API
The REST API provides read access to the most recent received measurement
for ID01, ID08, ID09, ID0B and ID0E sensors.
Overview
Requests are made using HTTPS. All requests are POST request. Request
parameters are encoded in the “application/x-www-form-urlencoded” format.
All requests return data encoded in json. Datetime values are encoded as the
number of seconds since 1.1.1970.
The base url of the REST API is https://www.data199.com/api/pv1.
Successfull calls return json using the following structure:
{
„success“ : true,
[Response data],
}
Calls with errors return json using the following structure:
{
„success“ : false,
„errorcode“ : 1,
„errormessage“ : „Some error message“,
}

local url= „https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=123456789“ – hier steht natürlich die richtige ID
local self = net.HTTPClient({timeout=2000})
self:request(url, {
options={
headers = self.controlHeaders,
method = ‚POST‘,
data = requestBody,
timeout = 5000,
checkCertificate = false
},
success = function(status)
local result = json.decode(status.data)
if result[1] then
if result[1].error then
print („ERROR „… result[1].status)
print (“ type: " … result[1].error.type)
print (“ address: " … result[1].error.address)
print (" description: " … result[1].error.description)
elseif result[1].success then
print „SUCCESS“
print (result[1].devices)
self:updateProperty(„userName“, result[1].success.username)
else
print ("unknown response structure: ")
print(status)
end
else
print ("unknown response structure: ")
print(status)
end
end,
error = function(error)
print „ERROR“
print(error)
end
})

Hallo, wen das Thema interessiert: Ich habe es mittlerweile gelöst. Läuft echt cool. Habe zwei VD eingerichtet, die mir die Sensorwerte anzeigen und im 15 Minuten Interval aktualisiert werden. Ferner ist der Code so aufgebaut, dass ich Aktionen wie diverse Alarme triggere, sobald Werte überschritten / unterschritten sind. Z.B. verwende ich die Sensoren in den Kühlschränken und warne mich so vor offenen Kühlschranktüren oder Ausfällen derselben, ebenso wie Flusensoren. Besonders smart finde ich, dass ich über den Feuchtigskeitssensor im Bad den Lüfter ein- und ausschalte für ein besseres Raumklima. Wer Interesse hat, bitte melden, ansonsten lade ich die VD’s und Code beschreibung hoch, sobald ich Zeit finde #MobileAlerts

Hallo Wil,

ich stehe gerade vor einem ähnlichen Problem.

Bekomme als Response immer nur folgendes:
Status Code 200
JSON Response {‚success‘: False, ‚errorcode‘: 1051, ‚errormessage‘: ‚The request parameters are are invalid‘, ‚primarydomain‘: ‚www.data199.com‘}

Bitte um Hilfe.

Danke und Gruß
Peter

sorry wenn ich hier erst nach Ewigkeiten antworte. Aber vielleicht findest es dennoch Interessenten. Anbei die Scene. Als ich diese geschrieben habe, bin ich mit json noch nicht zrecht gekommen. Also nicht wundern, dass ich alles in Stringsverarbeite. Ich habe noch zwei kleine VD dazu. Wer die braucht bitte melden, diesmal bemühe ich mich um schnellere Antwirten
Scene-Mobile Alerts by CW C2023.txt (9,8 KB)