Daten zum LMA senden?
Verfasst: Di 26. Nov 2019, 21:14
Bin gerade dabei, die Verbindung zwischen meinem LMA und iobroker etwas auszubauen und hab da ein kleines Problem beim Einbinden von unserer Heizung (nur Warmwasserkessel).
Folgendes ist realisiert:
Befehl an Alexa "Warmwasser an" (ist ne Einmalladung für ca. 45 min) oder auch Szene in der Visualierung ausgelöst -> löst eine Szene auf LMA aus mit einem HTTP-GET. Damit geht dieser Befehl an die api vom iobroker (sehr gut dokumentiert!) und der steuert den Bosch-Adapter an (für die Buderus-Heizung). Funktioniert gut. Die Adapter muss man nur installieren, wenig konfigurieren und läuft!
Befehl an Alexa "Warmwasser aus" funktioniert auch (stoppt vorzeitig die Warmwasserproduktion).
Jetzt soll aber auf Wunsch meiner Frau auch noch die aktuelle Wassertemperatur angezeigt oder angesagt werden (wozu eigentlich?). Jedenfalls hab ich die Wassertemperatur in einem nodejs Objekt in iobroker gespeichert und bin am überlegen, ob ich die irgendwie umgekehrt in den LMA hineinkriege (möglichst in einen der 10 Temperaturkanäle, wovon ich dann einen missbrauchen würde für eigene Zwecke). Dann könnte man Alexa schön nach der Temperatur Warmwasser fragen.
Den Zugriff auf die weather.json hat man schnell realisiert und mit dem kleinen Skript hab ich es auch erfolgreich getestet (welches in iobroker läuft):
const request = require('request');
request('http://192.168.*.*/weather.json', function(err, response, body) {
let json = JSON.parse(response.body);
console.log(JSON.stringify(json.channel0.temperature));
});
Dann kriegt man schon mal die Temperatur von Channel0 auf der Konsole angezeigt. Natürlich werden später die benötigten Daten nicht auf Konsole ausgegeben, sondern ordentlich in objekte geschrieben zur weiteren Verwendung in iobroker. Das oben ist nur Spielerei.
Die aktuellen Werte aus der weather.json sind damit auf dem iobroker und können dort bearbeitet werden.
So, der Warmwasserwert aus der Heizung soll aber nun umgekert an den LMA. Jetzt müsste ich entweder den einzelnen Temperaturwert (z.B. aus channel0) an den LMA schicken oder auch die ganze, nur an dieser Stelle geänderte weather.json an den LMA . Bevor ich hier lang probiere und recherchiere, frag ich einfach mal ganz blöd in die Runde:
- hab ich überhaupt Schreibrechte auf den LMA? Werden Änderungen bzw. Datenübergaben über WLAN irgendwie akzeptiert?
- wenn ja, wie könnte ich das grundsätzlich realisieren?
Szenen auslösen auf dem LMA geht natürlich, hilft aber nicht so recht weiter. Irgendwie möchte ich einem Objekt (z.B. dem Temperaturkanal0 auf dem LMA) eben die aktuelle Temperatur des Warmwasserkessels übergeben. Einen Bresser-Sensor kann ich physikalisch ja nicht reinhängen. Den Wert aus dem iobroker einem Funksender zu übergeben, der dann wiederum dem LMA einen Bresser-Sensor vorgaukelt, ist mir zu aufwändig und zu teuer (mir fehlt da die Ausstattung).
Gibt ja leider noch kein Interface zwischen iobroker und LMA, aber vielleicht hat jemand Erfahrung mit Schreiben eines Wertes in die weather.json oder kann ein einfachstes Inferface für diese Datenübergabe zur Verfügung stellen (Tip vom Admin?)
Folgendes ist realisiert:
Befehl an Alexa "Warmwasser an" (ist ne Einmalladung für ca. 45 min) oder auch Szene in der Visualierung ausgelöst -> löst eine Szene auf LMA aus mit einem HTTP-GET. Damit geht dieser Befehl an die api vom iobroker (sehr gut dokumentiert!) und der steuert den Bosch-Adapter an (für die Buderus-Heizung). Funktioniert gut. Die Adapter muss man nur installieren, wenig konfigurieren und läuft!
Befehl an Alexa "Warmwasser aus" funktioniert auch (stoppt vorzeitig die Warmwasserproduktion).
Jetzt soll aber auf Wunsch meiner Frau auch noch die aktuelle Wassertemperatur angezeigt oder angesagt werden (wozu eigentlich?). Jedenfalls hab ich die Wassertemperatur in einem nodejs Objekt in iobroker gespeichert und bin am überlegen, ob ich die irgendwie umgekehrt in den LMA hineinkriege (möglichst in einen der 10 Temperaturkanäle, wovon ich dann einen missbrauchen würde für eigene Zwecke). Dann könnte man Alexa schön nach der Temperatur Warmwasser fragen.
Den Zugriff auf die weather.json hat man schnell realisiert und mit dem kleinen Skript hab ich es auch erfolgreich getestet (welches in iobroker läuft):
const request = require('request');
request('http://192.168.*.*/weather.json', function(err, response, body) {
let json = JSON.parse(response.body);
console.log(JSON.stringify(json.channel0.temperature));
});
Dann kriegt man schon mal die Temperatur von Channel0 auf der Konsole angezeigt. Natürlich werden später die benötigten Daten nicht auf Konsole ausgegeben, sondern ordentlich in objekte geschrieben zur weiteren Verwendung in iobroker. Das oben ist nur Spielerei.
Die aktuellen Werte aus der weather.json sind damit auf dem iobroker und können dort bearbeitet werden.
So, der Warmwasserwert aus der Heizung soll aber nun umgekert an den LMA. Jetzt müsste ich entweder den einzelnen Temperaturwert (z.B. aus channel0) an den LMA schicken oder auch die ganze, nur an dieser Stelle geänderte weather.json an den LMA . Bevor ich hier lang probiere und recherchiere, frag ich einfach mal ganz blöd in die Runde:
- hab ich überhaupt Schreibrechte auf den LMA? Werden Änderungen bzw. Datenübergaben über WLAN irgendwie akzeptiert?
- wenn ja, wie könnte ich das grundsätzlich realisieren?
Szenen auslösen auf dem LMA geht natürlich, hilft aber nicht so recht weiter. Irgendwie möchte ich einem Objekt (z.B. dem Temperaturkanal0 auf dem LMA) eben die aktuelle Temperatur des Warmwasserkessels übergeben. Einen Bresser-Sensor kann ich physikalisch ja nicht reinhängen. Den Wert aus dem iobroker einem Funksender zu übergeben, der dann wiederum dem LMA einen Bresser-Sensor vorgaukelt, ist mir zu aufwändig und zu teuer (mir fehlt da die Ausstattung).
Gibt ja leider noch kein Interface zwischen iobroker und LMA, aber vielleicht hat jemand Erfahrung mit Schreiben eines Wertes in die weather.json oder kann ein einfachstes Inferface für diese Datenübergabe zur Verfügung stellen (Tip vom Admin?)