Zum Hauptinhalt springen

Emoncms Smart-Home-Integration, kostenlos und Open Source

Emoncms-Integration für Gladys Assistant

Deine Emoncms-Feeds in Gladys (emonPi, emonTx, emonHP): Leistung, Energie, Temperaturen …

Emoncms ist die freie Energie-Monitoring-Software von OpenEnergyMonitor: Emoncms zeichnet die Feeds eines emonPi, eines emonTx, eines emonHP-Wärmepumpenmonitors oder jedes Sensors auf, der an sie sendet, auf einem lokalen Server oder auf emoncms.org. Diese Integration bringt diese Feeds in Gladys: ein Gerät pro Feed-Tag (in der Praxis eines pro Knoten: emonpi, emontx4, heatpump …), eine Funktion pro Feed, mit dem passenden Gladys-Typ für seine Einheit. Die kumulierten Energie-Feeds (kWh) kann der Energie-Tab von Gladys nutzen. Eine Szene kann reagieren, wenn ein Feed nicht mehr aktualisiert wird, Werte von Gladys an Emoncms senden, und ein Dashboard-Widget zeigt, welche Feeds noch aktiv sind.

Getestet mit einem echten Emoncms-11.9.10-Server (Docker), mit Eingängen, die über seine API gesendet und in Feeds für Leistung, Energie, Spannung, Temperatur und Durchfluss umgewandelt wurden. Ohne die Hardware entwickelt (kein emonPi oder emonTx zur Hand): Rückmeldungen sind willkommen in den Issues. emoncms.org nutzt dieselbe API, wurde aber nicht getestet (kein Konto).

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Einen Emoncms-Server, den der Gladys-Rechner erreicht: einen emonPi oder eine emonBase in deinem Netz, deinen eigenen Server oder ein Konto auf emoncms.org.
  • Den Lese-API-Schlüssel des Emoncms-Kontos (Seite My Account von Emoncms). Den Schreib-API-Schlüssel nur, wenn du Werte von Gladys an Emoncms senden willst.

Die Integration liest nur, außer du nutzt die Szenenaktion „Einen Wert an Emoncms senden“: Dann schreibt sie nur in die Eingänge, die du angibst.

Erste Schritte​

1. Adresse und Schlüssel finden​

Öffne Emoncms im Browser und notiere die Adresse: http://192.168.1.20, http://emonpi.local/emoncms (manche Server liefern Emoncms unter /emoncms aus) oder https://emoncms.org. Du kannst die Adresse jeder Emoncms-Seite einfügen: Die Integration behält nur die Wurzel. Öffne dann My Account: Der Lese- und der Schreib-API-Schlüssel sind 32 Zeichen lang.

2. Die Integration konfigurieren​

Öffne in Gladys die Konfigurationsseite der Integration:

  • Emoncms-Adresse: die oben notierte Adresse.
  • Lese-API-Schlüssel: reicht, um alle Feeds zu lesen.
  • Schreib-API-Schlüssel (optional): nur für die Szenenaktion, die Werte sendet.
  • Zu verfolgende Feeds: die IDs der Feeds, die in Gladys erscheinen sollen (Spalte Id der Seite Feeds), durch Kommas getrennt. Leer: alle Feeds.
  • Aktualisierungsintervall: von 5 Sekunden bis 5 Minuten, standardmäßig 10 Sekunden. Jede Aktualisierung ist eine einzige Anfrage für alle Feeds.
  • Feed gestoppt nach: Ein Feed ohne neuen Wert seit dieser Dauer gilt als gestoppt (standardmäßig 15 Minuten, „Nie“ schaltet die Prüfung ab).
  • Sprache der Meldungen: Sprache der Szenenvariablen und der Fehler.

Klicke dann auf Verbindung testen: Die Integration liest Emoncms und nennt die Zahl der Feeds, der hinzuzufügenden Geräte, der gestoppten Feeds und ob der Schreibschlüssel funktioniert.

3. Die Geräte hinzufügen​

Öffne den Tab Entdecken der Integration: Dort steht ein Gerät pro Feed-Tag (die Feeds ohne Tag sind in einem Gerät namens „Emoncms“ zusammengefasst). Füge die gewünschten hinzu. Ein neuer Feed zeigt das Gerät als geändert an: Klicke auf Aktualisieren, um ihn hinzuzufügen. Ein umbenannter Feed behält in Gladys seinen ersten Namen (Namen werden beim Anlegen festgelegt).

Die Geräte​

Jeder Feed wird eine Funktion mit dem Namen des Feeds, typisiert nach seiner Einheit:

Emoncms-EinheitIn Gladys
W, kWLeistung (mit Vorzeichen: negativ ist eine Einspeisung)
kWh, Wh, MWhEnergiezählerstand, vom Energie-Tab von Gladys genutzt
V, A, mASpannung, Strom
°C, °F, KTemperatur
L, m³Volumen
L/min, L/h, m³/hWasserdurchfluss, in m³/h (12,5 L/min = 0,75 m³/h)
hPa, mbar, Pa, kPa, barDruck
luxHelligkeit
pulsesZähler
VA, kVA, var, %, ppm, dBAllgemeiner Sensor, mit seiner Einheit
keine, Hz, kWh/d, andereAllgemeiner Sensor, die Einheit im Namen

Nur die kumulierten Energie-Feeds (kWh, Wh, MWh) werden ein Energiezählerstand: Ein kWh-Feed aus dem Emoncms-Prozess „Power to kWh“ ist einer. Ein „kWh/d“-Feed bleibt ein allgemeiner Sensor.

Die Werte gehen an Gladys, wenn sie sich ändern. Der letzte Wert eines gestoppten Feeds wird nicht erneut gesendet, als wäre er frisch: Sein Verlauf in Gladys endet dort, wo der Feed gestoppt hat. Steht Feed gestoppt nach auf „Nie“, gibt es diese Prüfung nicht: Der letzte Wert eines toten Feeds wird alle 6 Stunden erneut gesendet. Das Geräte-Badge zeigt „lokal“ (oder „Cloud“ für emoncms.org) und „nicht erreichbar“, solange Emoncms nicht antwortet.

Dashboard​

Das Widget Emoncms-Feeds hat eine Einstellung, Gerät (leer: Übersicht):

  • leer zeigt es die Zahl der aktuellen und gestoppten Feeds, dann eine Zeile pro Gerät, orange, wenn einer seiner Feeds gestoppt hat;
  • mit einem Gerät zeigt es seine ersten sechs Feeds als Live-Kacheln, dann die gestoppten Feeds mit der Zeit seit ihrem letzten Wert.

Szenen​

Auslöser​

Emoncms-Feed gestoppt oder zurück: Ein Feed hat in der unter Feed gestoppt nach eingestellten Zeit keinen neuen Wert erhalten, oder wird wieder aktualisiert. Filter: das Gerät und die Änderung (Gestoppt, Wieder aktuell). Variablen: der Feed, seine ID, das Gerät (Tag), der Zustand, die Minuten seit dem letzten Wert und der letzte Wert. Beim Start der Integration wird nichts ausgelöst, nur bei einer Änderung, die sie im Betrieb sieht.

Aktionen​

Einen Wert an Emoncms senden: sendet eine Zahl an einen Emoncms-Eingang, wie es ein emonTx täte, mit dem Schreibschlüssel. Felder: Knoten (standardmäßig gladys), Name des Eingangs, Wert. Der Wert kann eine Szenenvariable sein, zum Beispiel ein Wert, den die Aktion „Gerätewert abrufen“ kurz davor gelesen hat. In Emoncms erscheint der Eingang auf der Seite Inputs: Speichere ihn in einem Feed, um seinen Verlauf zu behalten. Ausgabe: Gesendet.

Ideen für Szenen​

  • emonTx ausgefallen: Auslöser „Emoncms-Feed gestoppt oder zurück“, Änderung „Gestoppt“, Gerät emontx → Nachricht senden „Emoncms: {{feed_name}} seit {{minutes}} Min. gestoppt“.
  • Einen Zigbee-Sensor in Emoncms behalten: Auslöser auf die Temperatur eines Gladys-Sensors, Aktion „Gerätewert abrufen“, dann „Einen Wert an Emoncms senden“ mit Knoten gladys, Eingang wohnzimmer und dem gelesenen Wert.
  • Leistung der Wärmepumpe: Ist der Leistungs-Feed der Wärmepumpe hinzugefügt, kann eine Szene einen Warmwasserbereiter ausschalten, wenn die Leistung eine Schwelle überschreitet (ein Geräteauslöser von Gladys, nichts Besonderes an der Integration).

Fehlerbehebung​

  • „Emoncms antwortet nicht“: Prüfe die Adresse im Browser von einem Rechner im selben Netz wie Gladys. Ein emonPi kann unter http://emonpi.local erreichbar sein, aber der Container der Integration löst keine .local-Namen auf: Nimm lieber die IP-Adresse.
  • „Keine Emoncms-API unter dieser Adresse“: Die Adresse öffnet eine andere Webseite. Füge den Unterpfad /emoncms hinzu oder entferne ihn.
  • „API-Schlüssel von Emoncms abgelehnt“: Kopiere den Lese-API-Schlüssel erneut aus My Account. Ein Schreibschlüssel liest auch, ist aber nicht nötig.
  • Ein Feed erscheint gestoppt, obwohl er aktualisiert wird: Die Uhren von Gladys und dem Emoncms-Server weichen ab, oder der Feed wird seltener gespeichert als die eingestellte Dauer. Erhöhe Feed gestoppt nach.
  • Ein neuer Feed fehlt: Prüfe Zu verfolgende Feeds und aktualisiere dann das Gerät im Tab Entdecken.

Grenzen​

  • Ein Emoncms-Konto pro Installation der Integration.
  • Die IDs und Tags der Feeds identifizieren die Funktionen: Ein Feed, der zu einem anderen Tag wechselt, wird eine neue Funktion eines anderen Geräts, ohne den alten Verlauf.
  • Die Eingänge von Emoncms werden nicht gelesen, nur die Feeds. Der Verlauf, der schon in Emoncms liegt, wird nicht in Gladys importiert.
  • Gladys kann die Zustände seiner Geräte nicht automatisch an Emoncms senden: Eine Szene mit der Aktion „Einen Wert an Emoncms senden“ erledigt das, ein Wert nach dem anderen.
  • emoncms.org: dieselbe API, nicht getestet; halte dich an die Nutzungsregeln (eine Aktualisierung alle 10 Sekunden oder seltener reicht völlig).

Konfigurationseinstellungen​

Diese Einstellungen fragt Emoncms in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein Emoncms-ServersectionNeinEin emonPi, eine emonBase, dein eigener Server oder emoncms.org. Die API-Schlüssel stehen auf der Seite My Account von Emoncms. Jedes Feed-Tag (emonpi, emontx …) wird ein Gerät: Füge die gewünschten im Tab „Entdecken“ hinzu.
Emoncms-AdressestringJaDie Adresse, unter der du Emoncms öffnest, mit Unterpfad falls nötig (/emoncms auf manchen Servern).
Lese-API-SchlüsselsecretJaReicht zum Lesen der Feeds. 32 Zeichen, auf der Seite My Account.
Schreib-API-Schlüssel (optional)secretNeinNur für die Szenenaktion, die Werte von Gladys an Emoncms sendet. Sonst leer lassen.
Zu verfolgende FeedsstringNeinFeed-IDs durch Kommas getrennt (Spalte Id der Seite Feeds). Leer: alle Feeds.
AktualisierungsintervallselectNeinEine Anfrage pro Aktualisierung für alle Feeds. Emoncms selbst speichert alle 10 Sekunden.
Feed gestoppt nachselectNeinEin Feed ohne neuen Wert seit dieser Dauer gilt als gestoppt: Sein alter Wert wird nicht mehr an Gladys gesendet, und der Szenenauslöser startet.
Sprache der MeldungenselectNeinSprache der Szenenvariablen und der Fehler (Gladys teilt einer Integration deine nicht mit).

So installierst du Emoncms in Gladys​

  1. Öffne in Gladys Integrationen: Emoncms erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-emoncms:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-emoncms.

Emoncms benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Emoncms ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂