ioBroker E-Charts Diagramme per Telegram-Nachricht versenden
In diesem Artikel zeige ich Dir, wie Du ein mit E-Charts erstelltes Diagramm per Telegram-Nachricht versenden kannst.
In einem vorherigen Artikel haben wir bereits gemeinsam den E-Charts Adapter installiert und ein erstes Diagramm erstellt. In diesem Artikel zeige ich Dir, wie Du ein erstelltes Diagramm als Bild per Telegram versenden kannst. Der Adapter verfügt dazu über eine entsprechende sendTo-Implementierung für das Scripting.
Im ersten Schritt habe ich mir nun ein einfaches Diagramm über den täglich kumulierten Stromverbrauch erstellt. Mit dem Diagramm sehe ich ganz gut zu welchen Zeiten am meisten Strom verbraucht wird. Im Screenshot unten siehst Du einen leichten Anstieg um 6:00 Uhr und dann einen starken Anstieg zwischen 11:00 Uhr und 12:00 Uhr. Das hier erstellte Diagramm werden wir jetzt per Telegram-Adapter versenden, um das Diagramm z.B. auch von unterwegs einsehen zu können.
Nach dem wir das Diagramm erstellt haben, benötigen wir im nächsten Schritt die Objekt-ID des Diagramms. Diese siehst Du unterhalb des Diagramm-Titels links in der Auswahl.
Zudem findest Du die Objekt-ID auch in den Objekten und kannst sie hier auch direkt über die gelb markierte Kopieren-Funktion in die Zwischenablage kopieren.
Im nächsten Schritt wechseln wir dann in den Bereich Skripte und erstellen ein neues Java-Script.
Als Namen habe ich dann einen eindeutigen und sprechenden Namen verwendet. In meinem Fall habe ich das Script zudem im Ordner Stromverbrauch erstellt. Ich empfehle Dir hier ebenfalls eine eigene Ordner-Struktur zu erstellen, in denen Du Deine Scripts ordentlich aufbewahren kannst.
Im nächsten Schritt kopierst Du den Script-Code in Dein neu erstelltes Java-Script. Im Script wird die sendTo-Funktion aufgerufen, welcher über den Parameter preset die Objekt-ID des Diagramms übergeben wird. Über die Parameter renderer, background, theme und quality kannst Du die Erstellung und das Aussehen des Diagramms steuern. Wenn Die Funktion das Diagramm auf dem Datenträger fileOnDisk gespeichert hat, dann wird im Anschluss die Datei per Telegram verschickt. Dazu wird einfach dem Text-Parameter die Datei übergeben. Wenn Du das Script speicherst und dann aktivierst, wird das Script automatisch einmalig ausgeführt.
sendTo('echarts.0', {
preset: 'echarts.0.Stromverbrauch_heute',
renderer: 'jpg',
background: '#FFFFFF',
theme: 'light',
quality: 1.0,
fileOnDisk: '/opt/iobroker/iobroker-data/echarts-temp-photo.jpg'
}, result => {
if (result.error) {
sendTo("telegram.0", "send", { text: result.error });
} else {
sendTo("telegram.0", "send", { text: '/opt/iobroker/iobroker-data/echarts-temp-photo.jpg' });
}
});
Im nächsten Schritt können wir uns jetzt überlegen, wann wir das Script ausführen möchten.
Über einen Schedule-Block könnten wir das Script beispielsweise zu einem festgelegten Zeitpunkt ausführen. Alternativ kann das Script auch per Text2Command über den Telegram-Bot ausgeführt werden.
Im folgenden Artikel zeige ich Dir Beispiele für die Verwendung des Telegram-Versands
Ich hoffe ich konnte Dir mit dem Artikel und dem Script weiterhelfen. Schickst Du dir selber auch Diagramme per Telegram? Ich freue mich auf Deine Anregungen und Ideen 🙂
Hallo,
vielen dank für die Anleitung, seit dem bekomm ich noch jeden Abend zu meinen Erzeugten werten des Balkonkraftwerk, ein schönes Bild vom Diagramm dazu, allerdings auch meine Frau. Kann man in dem Skript so etwas wie „user:user_to_send“ einbauen, damit nur der jenige das Bild bekommt der es auch anfordert?
Danke
Gruß Kay
Moin Kay,
ja, das werde ich demnächst in einem separaten Artikel zeigen 🙂
LG Matthias