Zum Hauptinhalt springen

IoTaWatt Smart-Home-Integration, kostenlos und Open Source

IoTaWatt-Integration für Gladys Assistant

IoTaWatt-Energiemonitor im lokalen Netz: Leistung, Energie und Spannung je Stromkreis.

Überblick​

Diese Integration bringt deine IoTaWatt-Energiemonitore in Gladys. Ein IoTaWatt ist ein WLAN-Energiemonitor mit offener Hardware: Stromwandler-Zangen (CT) an den Stromkreisen deines Sicherungskastens und ein Spannungswandler (VT) an einer Steckdose. Die Integration liest ihn über dein lokales Netzwerk mit seiner dokumentierten lokalen API (/status und /query) und schreibt nie darauf: Nichts verlässt dein Zuhause. Sie ist nicht mit IoTaWatt, Inc. verbunden.

  • Ein Gerät für den IoTaWatt selbst (WLAN-Signal, Uhrbatterie, Firmware) und ein Gerät pro Eingang oder Ausgang: Leistung, verbrauchte Energie, eingespeiste Energie, Spannung, Stromstärke.
  • Energiezähler, die jede Minute aus dem Protokoll des IoTaWatt gezählt werden: Ein Neustart von Gladys oder der Integration verliert nichts.
  • Zwei Dashboard-Widgets: ein IoTaWatt mit seinen stärksten Kanälen; ein Kanal mit einem Diagramm aus dem Protokoll des IoTaWatt.
  • Szenen-Auslöser: antwortet nicht, antwortet wieder, neu gestartet.
  • Szenen-Aktion: die Energie eines Kanals über einen Zeitraum (heute, gestern, letzter Monat…).

Transport: lokal. Die Integration spricht per HTTP in deinem Netzwerk mit dem IoTaWatt; keine Daten gehen ins Internet.

Voraussetzungen​

  • Gladys Assistant 5.3.0 oder neuer.
  • Ein mit seiner Konfigurations-App eingerichteter IoTaWatt (Eingänge benannt, Ausgänge nach Wunsch), im selben Netzwerk wie Gladys.
  • Seine Adresse (IP oder Name), oder die Integration findet ihn selbst: Der IoTaWatt meldet sich per mDNS unter seinem Gerätenamen, und die Integration probiert nur Namen, die „iota“ enthalten (der Standardname ist „IotaWatt“). Ein umbenanntes Gerät musst du von Hand eingeben.
  • Kein Passwort, außer du hast im IoTaWatt eines gesetzt (Setup → Passwords), ohne den lokalen Zugriff ohne Passwort zu erlauben.

Die Integration liest die Leistung aller Kanäle alle 10, 30 oder 60 Sekunden (eine Anfrage) und jede Minute die Energie der noch nicht gezählten Minuten (eine weitere Anfrage). Ein IoTaWatt ist ein kleines ESP8266-Modul: Die Anfragen laufen nacheinander, nie parallel.

Konfiguration​

FeldBedeutung
AdressenIP-Adressen oder Namen deiner IoTaWatt, durch Kommas getrennt (192.168.1.20, iotawatt.local); leer: automatische Suche
Benutzeruser (nur lesen, genügt) oder admin; nur mit einem Passwort verwendet
PasswortNur wenn der IoTaWatt eines verlangt (ein Geheimnis: nie wieder angezeigt, nie in die Protokolle oder nach /data geschrieben)
LeistungsabfrageAlle 10 Sekunden, 30 Sekunden (Standard) oder jede Minute; die Energie wird unabhängig davon jede Minute gezählt
Sprache der TexteNamen der Funktionen, Szenentexte und Fehler; automatisch folgt der Sprache des zuletzt angezeigten Widgets (en/fr/de/es)

Schaltflächen:

  • Suchen und testen sucht die IoTaWatt (eingegebene Adressen und Netzwerksuche), liest sie und bietet ihre Kanäle im Bildschirm Entdecken an.
  • Diagnose schreibt, was die Integration weiß, in ihre Protokolle, ohne das Passwort.

Das Passwort dient der HTTP-Digest-Anmeldung: Es geht nie über das Netzwerk, nur eine daraus berechnete Antwort. Ist im IoTaWatt der „lokale Zugriff“ erlaubt, braucht eine Anfrage aus demselben Netzwerk kein Passwort; die Anfragen der Integration gehen über den Gladys-Rechner hinaus, kommen also in der Regel aus demselben Netzwerk.

Verwendung​

Geräte​

Öffne nach der Konfiguration Entdecken: Der IoTaWatt und jeder seiner Kanäle werden angeboten, benannt nach dem IoTaWatt („Heat Pump (IoTaWatt)“). Füge nur die Kanäle hinzu, die du willst, ordne jeden seinem Raum zu und benenne ihn nach Belieben um: Widgets und Szenen verwenden den Namen, den du ihm gibst.

GerätFunktionKategorie / TypEinheit
IoTaWattWLAN-Signalsignal / integer— (dBm)
IoTaWattUhrbatterie schwachbattery-low / binary—
IoTaWattFirmwaretext / text—
Leistungseingang oder -ausgangLeistungenergy-sensor / powerW
Leistungseingang oder -ausgangVerbrauchte Energieenergy-sensor / indexkWh
Leistungseingang oder -ausgangEingespeiste Energieenergy-production-sensor / indexkWh
Spannungseingang/-ausgangSpannungenergy-sensor / voltageV
StromausgangStromstärkeenergy-sensor / currentA

Alle Funktionen sind schreibgeschützt. Die Leistung hat ein Vorzeichen: Ein Kanal, der einspeist (eine Zange am Hausanschluss, während Solarmodule produzieren), wird negativ. Eingespeiste Energie erscheint erst, wenn ein Kanal negativ gesehen wurde (in den letzten 7 Tagen bei der ersten Abfrage, oder später): Drücke im Bildschirm Entdecken auf Aktualisieren, um sie einem vorhandenen Gerät hinzuzufügen.

Die Energiezähler beginnen bei 0, wenn die Integration einen Kanal zum ersten Mal sieht; Gladys nutzt nur ihre Zunahmen (Verbrauch, Kosten). Jede Minute fragt die Integration den IoTaWatt nach der Energie jeder noch nicht gezählten Minute und addiert die positiven Minuten zu „Verbrauchte Energie“, die negativen zu „Eingespeiste Energie“. Nach einem Stopp von Gladys oder der Integration holt sie aus dem Protokoll des IoTaWatt auf, bis zu 7 Tage zurück.

Ein Eingang behält sein Gerät, wenn du ihn im IoTaWatt umbenennst (er ist an seiner Kanalnummer erkannt). Ein Ausgang ist nur an seinem Namen erkannt: Umbenannt wird er als neues Gerät angeboten. Ausgänge in VA, VAR, PF oder Hz haben keine passende Funktion in Gladys und werden nicht angeboten.

Dashboard-Widgets​

Die zwei Widgets: IoTaWatt mit der Leistung seiner fünf stärksten Kanäle und seinem Zustand, und zweimal IoTaWatt-Kanal, das Netz mit 24 Stunden Leistung und die Wärmepumpe mit 14 Tagen Energie (generierte Illustration, kein Screenshot)

  • IoTaWatt: ein IoTaWatt (in den Einstellungen des Widgets wählbar; standardmäßig der erste): die Leistung seiner fünf stärksten Kanäle (eine negative, eingespeiste Leistung in Grün), dann sein Zustand, die letzte Abfrage, das WLAN-Signal, die Uhrbatterie, seit wann er läuft und die Firmware.
  • IoTaWatt-Kanal: ein Kanal (standardmäßig der erste): seine aktuelle Leistung, die Energie von heute und gestern und ein Diagramm aus dem Protokoll des IoTaWatt: Leistung über 24 Stunden, Energie pro Tag über 14 Tage oder Energie pro Monat über 12 Monate (Einstellung Diagramm). Für einen Spannungs- oder Stromkanal der aktuelle Wert und 24 Stunden Diagramm. Der Verlauf wird beim IoTaWatt abgefragt und 5 Minuten behalten.

Szenen​

Auslöser (einmal pro Änderung, nie bei der ersten Abfrage, nie wegen einer Szenen-Aktion), nach IoTaWatt gefiltert (das Gerät des IoTaWatt selbst, kein Kanal):

  • IoTaWatt: antwortet nicht: keine Antwort auf 3 Abfragen in Folge, mindestens eine Minute lang (Stromausfall, WLAN weg, Absturz); Variablen: Name, Adresse, MAC-Adresse, verpasste Abfragen, Nachricht.
  • IoTaWatt: antwortet wieder: er antwortet wieder; Variable: Minuten ohne Antwort.
  • IoTaWatt: neu gestartet: seine Laufzeit ging zurück (Stromausfall, Firmware-Update, Absturz); Variable: Laufzeit davor in Stunden.

Ein Vergleich wie „Leistung über 3.000 W“ ist kein Auslöser der Integration: Nutze eine Gerätebedingung von Gladys auf der Funktion Leistung, mit deinem eigenen Schwellwert.

Aktion:

  • IoTaWatt: Energie eines Kanals: die Energie (kWh) und die Durchschnittsleistung (W) eines Leistungskanals über einen Zeitraum (heute, gestern, diese Woche ab Sonntag, letzte Woche, dieser Monat, letzter Monat, dieses Jahr, letzte 24 Stunden, letzte 7 Tage, letzte 30 Tage), mit Beginn und Ende des Zeitraums und einem Satz (summary). Der IoTaWatt berechnet sie aus seinem eigenen Protokoll, in seiner Ortszeit.

Beispiele:

  • Jeden Morgen um 8:00 → IoTaWatt: Energie eines Kanals (Heat Pump, gestern) → dessen summary senden.
  • Wenn die Leistung des Backofens 3.000 W übersteigt (Gerätebedingung) → den Warmwasserbereiter ausschalten.
  • Wenn IoTaWatt: antwortet nicht → „{{triggerEvent.data.meter_name}} antwortet nicht: Stromausfall?“ senden.

Fehlerbehebung​

  • „Kein IoTaWatt gefunden“: Gib seine Adresse unter Adressen ein und drücke dann Suchen und testen. Die automatische Suche probiert nur mDNS-Namen, die „iota“ enthalten.
  • „verlangt ein Passwort oder lehnt das eingegebene ab“: Der IoTaWatt hat Passwörter; gib den Benutzer (user genügt) und sein Passwort ein, oder erlaube im IoTaWatt den lokalen Zugriff.
  • „antwortet, ist aber kein IoTaWatt“: Die Adresse gehört einem anderen Gerät; sie wird 30 Minuten in Ruhe gelassen.
  • Ein Kanal heißt „Input 3“: Die Liste der Reihen passte nicht zu den Eingängen; sie wird alle 10 Minuten neu gelesen.
  • Keine „Eingespeiste Energie“: Der Kanal war nie negativ; sobald er es ist, drücke im Bildschirm Entdecken auf Aktualisieren.
  • Die Werte sind veraltet: Der IoTaWatt antwortet nicht; vielleicht hat sich seine Adresse geändert: Mit der automatischen Suche wird er alle 30 Minuten neu gesucht (ein IoTaWatt ist an seiner MAC-Adresse erkannt).
  • Für eine Meldung gib die Versionen von Gladys, der Integration und der IoTaWatt-Firmware an, die Meldung von Suchen und testen und die Zeilen „IoTaWatt diagnostic“, die Diagnose in die Protokolle der Integration schreibt (DEBUG=gladys-integration-sdk fügt die SDK-Protokolle hinzu). Füge nie dein Passwort ein.
  • Grenzen: noch nie mit einem echten IoTaWatt getestet (nach der offiziellen Dokumentation und der Firmware 02_08_04 geschrieben); Ausgänge in VA, VAR, PF und Hz werden nicht angeboten; die Zähler beginnen bei 0, nicht beim Verlauf des IoTaWatt.

Konfigurationseinstellungen​

Diese Einstellungen fragt IoTaWatt in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
IoTaWatt in deinem NetzwerksectionNeinDie Integration liest deinen IoTaWatt über das lokale Netzwerk mit seiner lokalen API und schreibt nie darauf: Nichts verlässt dein Zuhause. Lass die Adressen leer, um ihn automatisch zu finden (sein Name muss „iota“ enthalten, wie standardmäßig), oder gib seine IP-Adresse oder seinen Namen ein. Nicht mit IoTaWatt, Inc. verbunden.
AdressenstringNeinIP-Adressen oder Namen deiner IoTaWatt, durch Kommas getrennt. Leer: automatische Suche.
Passwort (optional)sectionNeinNur wenn du in der Konfigurations-App des IoTaWatt Passwörter gesetzt hast (Setup → Passwords) und den lokalen Zugriff ohne Passwort nicht erlaubt hast. Das Konto „user“ genügt: Es kann nur lesen.
BenutzerselectNein
PasswortsecretNein
OptionensectionNein
LeistungsabfrageselectNeinWie oft die Leistung abgefragt wird. Die Energie wird unabhängig davon jede Minute aus dem Protokoll des IoTaWatt gezählt.
Sprache der TexteselectNeinNamen der Funktionen, Szenentexte und Fehler. Automatisch: die Sprache des zuletzt angezeigten Widgets.

So installierst du IoTaWatt in Gladys​

  1. Öffne in Gladys Integrationen: IoTaWatt erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/william-de71/gladys-iotawatt:0.1.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/William-De71/gladys-iotawatt.

IoTaWatt benötigt Gladys >=5.3.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​

IoTaWatt 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 William-De71 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 🙂