Bei shrdzm war heute Nacht noch jemand fleißig am recherchieren.
Ich habe 3 Mails erhalten. Ich muss gestehen, für mich ist in der Thematik selbst Einarbeit nötig.
Wenn ich das richtig verstehe kann ich aus der ersten Mail über die lokale IP-Adresse des Homeys auf REST zugreifen.
Mail 1
Wie schaut denn die Konfigurationsmöglichkeit beim Homey eigentlich aus?
Laut dieser Beschreibung sollte es möglich sein, dem Homey über diese REST-Services Informationen zu schicken bzw. abzufragen:
Speziell dieses PUT Kommando schaut interessant aus. Damit scheint es möglich zu sein, irgendwelche Werte zu schicken die dann aber in der Logik vom Homey erst verarbeitet werden müssten?
PUT { “value”: value } TO http://<HOMEY_IP>/api/manager/logic/variable/<VARIABLE_ID>/
Kannst du eventuell mal ein anderes Kommando direkt aus dem Browser testen um zu sehen ob die REST-Schnittstelle prinzipiell funktioniert?
Ich denke, dieses sollte die bekannten Devices liefern:
http://<HOMEY_IP>/api/manager/devices/device/
Wenn das funktioniert, können wir mal mit einem Simulator (wie Insomnia) das PUT Kommando probieren um testweise mal ein paar Stromverbrauchswerte zu schicken.
Funktioniert das dann, dann wissen wir wie es funktioniert und es ist nicht schwer das ins Modul einzubauen.
Mail 2
Das mit dem REST Aufruf vom Homey geht wohl nur über einen passenden Token.
Dh.: der Aufruf unten funktioniert so über einen Browser nicht.
Mit Insomnia könnte es zum Testen aber funktionieren.
Im Homey Forum wird angedeutet, dass der Homey MQTT Messages empfangen kann?
Eigentlich müsstest du die Daten vom Modul nur zu deinem eigenen MQTT Broker schicken auf den sich dann auch Homey subscribet hat.
Das ist keine Option?
Mail 3
…ok…noch ein wenig gesucht und versucht das Homey System zu verstehen…
Wenn ich es richtig verstanden habe, können Scripte im Homey gebaut und aufgerufen werden?
Dort können auch zB.: REST Aufrufe gemacht werden.
Das Smartmetermodul stellt ja einen REST Endpoint zur Verfügung der dann über ein Script aufgerufen werden könnte.
Der REST Endpoint wird bei deinem Modul auf der General-Seite angezeigt. Wenn du diesen über einen Browser aufrufst, werden auch die Daten angezeigt die ausgegeben werden würden.
Im Script würde so ein Aufruf dann wohl ca. so aussehen wenn ich es richtig verstanden habe…
const response = await fetch(<genau der Link so wie auf der General-Seite vom Modul angezeigt>, { headers: { ‘Authorization’: Bearer egal } })
const energy = await response.json()