NEWS
Suche einfachen Weg, JSON-Daten online zur Verfügung zu stellen
-
Ich möchte gerne eine super-leichtgewichtige Visualisierung umsetzen (VIS ist zwar genial, schleppt aber für simple Anwendungen arg viel Ballast mit).
Meine Grundidee:
Der Client zeigt im Browser eine Webseite an (lokal geladen oder von einem Server ist egal). Diese enthält etwas JavaScript, das die aktuellen Daten als JSON nachlädt und in die Seite einfügt.
Von der ioBroker-Seite müsste regelmäßig ein JSON-String mit aktuellen Werten erzeugt werden (das dürfte mit etwas JavaScript kein Problem sein). Dieser müsste dann "irgendwie" per Webserver zur Verfügung gestellt werden.Ich bin mir sicher, dass das machbar ist, habe derzeit aber einen etwas aufwendigen Weg vor Augen:
- Ein per cron regelmäßig laufendes Script erstellt das JSON-Objekt mit allen Daten.
- Diese werden mit einem Exec-Befehl in eine lokale Datei geschrieben.
- Der Zielort dieser Datei liegt im Ordner eines separat auf der gleichen Maschine laufenden Webservers, der dann die Aufgabe übernimmt, das nach außen zur Verfügung zu stellen.
Hat jemand Ideen, wie ich das einfacher realisieren kann?
Da ja sowieso schon ein Webserver im ioBroker läuft, wäre es natürlich viel schöner, wenn ich diesen nutzen könnte. Die URL der Daten dürfte gerne auch in einer tiefer verschachtelten Verzeichnisebene liegen.
Lässt sich das mit den vorhandenen Mitteln irgendwie realisieren?
Mir geht es auch darum, dass das Konstrukt im "Ruhezustand" keine Netzlast erzeugen soll. D.h. ich möchte nicht, dass die Daten ungefragt jede Minute auf einen Server im Netz geschrieben werden. Nur wenn der Client aktiv ist, soll er selbst regelmäßig ein Update der Daten per HTTP(S) anfragen.
Vielen Dank für alle hilfreichen Tipps und Ideen!
-
Das dürfte gehen mit dem Adapter Simple-API:
https://github.com/ioBroker/ioBroker.simple-apiStatt in eine Datei kannst du das JSON als String in einen Datenpunkt schreiben und diesen in Rohform mit
getPlainValue
durch den Client abrufen lassen
=> https://github.com/ioBroker/ioBroker.simple-api#getplainvalue