Zum Hauptinhalt springen

AI-on-the-edge Smart-Home-Integration, kostenlos und Open Source

AI-on-the-edge-Integration für Gladys Assistant

Wasser-, Gas- und Stromzähler, von einer ESP32-CAM mit AI-on-the-edge-device abgelesen.

Liest deinen Wasser-, Gas- oder Stromzähler in Gladys mit AI-on-the-edge-device ab: Eine ESP32-CAM fotografiert den Zähler und liest seine Ziffern mit einem neuronalen Netz. Die Integration erhält die Werte per MQTT oder über die REST-API des Geräts.

Ohne die Hardware entwickelt: Die Formate stammen aus den Quellen der Firmware und ihrer Dokumentation. Rückmeldungen im Gladys-Forum sind willkommen.

Was du bekommst​

  • Ein Zähler-Gerät pro Zahl, die eine ESP32-CAM liest: Zählerstand (m³, L oder kWh), Durchfluss (L/h) oder Leistung (kW), ein Alarm Wahrscheinliches Leck (Wasser und Gas), ein Lesefehler-Merker, der Status der Ablesung und die Zeit der letzten gültigen Ablesung.
  • Ein Kamera-Gerät pro ESP32-CAM: online, WLAN-Signal, CPU-Temperatur und, per REST, der Ablaufstatus.
  • Ein Dashboard-Widget Zähler, eine Szenen-Aktion Zählerstand und eine Schaltfläche Verbindung prüfen.

Bevor du anfängst​

  • Eine ESP32-CAM mit AI-on-the-edge-device (Version 15 oder neuer empfohlen), eingerichtet und mit korrekter Ablesung in ihrer eigenen Weboberfläche.
  • MQTT (empfohlen): Stell auf der MQTT-Seite des Geräts den Broker ein und notier das MainTopic (standardmäßig watermeter). Das Gerät sendet nach jedem Durchlauf (standardmäßig alle 5 Minuten). Der von Gladys installierte Broker geht: Seine Zugangsdaten stehen auf der MQTT-Seite von Gladys.
  • REST: Das Gerät muss von Gladys per HTTP erreichbar sein. Am Gerät ist nichts einzustellen.

Konfiguration​

  • Adresse des MQTT-Brokers, Benutzername, Passwort: der Broker, an den das Gerät sendet. Lass die Adresse leer, um nur REST zu nutzen.
  • Haupt-Topics: das MainTopic jedes Geräts, durch Kommas getrennt (watermeter, gasmeter). Ein Gerät pro Topic.
  • Adressen der Geräte: für REST die IP-Adresse oder der Name jedes Geräts, durch Kommas getrennt. Benutzer und Passwort der Weboberfläche nur, wenn sie geschützt ist.
  • Lesen alle: der REST-Takt. Richte ihn nach dem Intervall der Geräte: Öfter lesen bringt nichts Neues.
  • Zählertyp: water_m3 (Wasser, m³), water_l (Wasser, L), gas_m3 (Gas, m³) oder electricity_kwh (Strom, kWh). Typ pro Zahl gibt einer Zahl eines Geräts, das mehrere Zähler liest, einen anderen Typ: main=water_m3, elec=electricity_kwh.
  • Wahrscheinliches Leck nach: von 1 bis 24 Stunden, oder nie.
  • Sprache der Texte: Namen der Funktionen, Status der Ablesung, Szenen-Sätze.

Geräte​

Öffne den Tab Erkennung der Integration, sobald ein Gerät einen Durchlauf gesendet hat (oder per REST gelesen wurde), und füge die gewünschten Geräte hinzu. Der Zählertyp wird vor dem Hinzufügen des Zählers gewählt: Er legt Funktion und Einheit des Zählerstands fest.

  • Zählerstand: für Strom ein Index in kWh, die Energiezähler-Funktion, die Gladys kennt. Für Wasser und Gas ein Volumensensor in m³ oder L: Gladys 5 hat dafür noch kein Energie-Dashboard.
  • Durchfluss (L/h) oder Leistung: aus der Rate, die die Firmware zwischen zwei gültigen Ablesungen berechnet.
  • Lesefehler und Status der Ablesung: OK, eine unlesbare Ziffer, ein sinkender Wert oder ein zu großer Sprung, von den Plausibilitätsprüfungen der Firmware abgelehnt. Der Zählerstand behält seinen letzten gültigen Wert.
  • Online: das LWT des Geräts per MQTT (oder drei Durchläufe ohne Nachricht), die Antwort des Geräts per REST.

Wahrscheinliches Leck​

Nur Wasser und Gas. Steigt der Zählerstand während der gewählten Zeit bei jedem Durchlauf, geht die Funktion Wahrscheinliches Leck auf 1: ein offener Hahn, eine undichte Spülung, ein Rohr. Ein Durchlauf ohne sichtbare Änderung wird toleriert (ein kleiner Durchfluss bewegt die letzte Ziffer langsam); der Alarm endet, wenn sich der Zählerstand drei Durchläufe lang nicht bewegt hat. Nutz ihn als Szenen-Auslöser, wie jeden Lecksensor.

Szenen​

  • Auslöser: jede Funktion wie gewohnt, zum Beispiel Wahrscheinliches Leck auf 1 oder Lesefehler auf 1.
  • Aktion Zählerstand: der letzte Stand eines Zählers als Satz für eine Nachricht (watermeter Zähler: 1.234,568 m³, 10 L/h.) und als Werte: index, flow, reading_error, leak.

Dashboard​

Das Widget Zähler listet die zu Gladys hinzugefügten Zähler mit ihrem Stand, rot bei einem wahrscheinlichen Leck und orange, wenn die letzte Ablesung fehlgeschlagen ist. Durchfluss oder Leistung anzeigen blendet den zweiten Wert aus.

Verbindung prüfen​

Die Schaltfläche Verbindung prüfen zeigt, ob der Broker antwortet, wie viele Haupt-Topics gehört wurden und wie viele REST-Geräte antworten.

Grenzen​

  • Ohne ESP32-CAM entwickelt: getestet mit den exakten Nachrichtenformaten der Firmware, einem echten Mosquitto-Broker und einem nachgebildeten Gerät, das die REST-Antworten liefert.
  • Die Firmware sendet den Ablaufstatus nicht per MQTT: Die Funktion Ablaufstatus gibt es nur per REST.
  • Die Leckerkennung hängt von der Auflösung des Zählers (der letzten gelesenen Ziffer) und vom Durchlaufintervall des Geräts ab.
  • Ein geändertes Haupt-Topic oder eine geänderte Geräteadresse erzeugt neue Geräte in Gladys.
  • Nicht mit dem Projekt AI-on-the-edge-device verbunden.

Fehlerbehebung​

  • Nichts im Tab Erkennung: Warte einen Durchlauf ab (standardmäßig 5 Minuten), prüf das MainTopic und ob das Gerät denselben Broker nutzt; per REST, ob Gladys die Geräteadresse erreicht.
  • Lesefehler oft auf 1: Korrigier Ausrichtung und Ziffern in der Weboberfläche des Geräts; die Integration meldet nur, was die Firmware liest.
  • Der Broker lehnt Benutzername oder Passwort ab: Prüf die Zugangsdaten der MQTT-Seite von Gladys oder deines Brokers.

Konfigurationseinstellungen​

Diese Einstellungen fragt AI-on-the-edge in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
AI-on-the-edge-device verbindensectionNeinEine ESP32-CAM fotografiert den Zähler und liest seine Ziffern mit einem neuronalen Netz. Gladys erhält die Werte per MQTT (empfohlen: das Gerät sendet nach jedem Durchlauf) oder über seine REST-API. Füll eins von beiden aus, oder beide für verschiedene Geräte.
Adresse des MQTT-BrokersstringNeinDer Broker aus der MQTT-Seite des Geräts: mqtt:// (Port 1883) oder mqtts:// (Port 8883). Leer lassen, um nur REST zu nutzen.
BenutzernamestringNeinLeer lassen, wenn der Broker anonyme Clients zulässt.
PasswortsecretNein
Selbstsigniertes Zertifikat akzeptierenbooleanNeinNur mqtts://: Das Zertifikat des Brokers wird dann nicht geprüft.
Haupt-TopicsstringNeinDas MainTopic jedes Geräts (MQTT-Seite des Geräts), durch Kommas getrennt: ein Gerät pro Topic.
REST-APIsectionNeinOhne MQTT fragt die Integration jedes Gerät im gewählten Takt nach seinen Werten (/json, /rssi, /cpu_temperature, /statusflow), eine Anfrage nach der anderen.
Adressen der GerätestringNeinIP-Adresse oder Name jedes Geräts, durch Kommas getrennt. Leer lassen, um nur MQTT zu nutzen.
Benutzer der WeboberflächestringNeinNur wenn die Weboberfläche der Geräte mit einem Passwort geschützt ist.
Passwort der WeboberflächesecretNein
Lesen alleselectNeinRichte ihn nach dem Intervall der Geräte (standardmäßig 5 Minuten): öfter lesen bringt nichts Neues.
ZählersectionNeinJede von einem Gerät gelesene Zahl wird ein Zähler in Gladys. Sein Typ legt Funktion und Einheit des Zählerstands fest: Wähl ihn, bevor du den Zähler hinzufügst.
ZählertypselectNein
Typ pro ZahlstringNeinOptional, für ein Gerät, das mehrere Zähler liest: Zahl=Typ, durch Kommas getrennt. Typen: water_m3, water_l, gas_m3, electricity_kwh.
Wahrscheinliches Leck nachselectNeinWasser und Gas: Steigt der Zählerstand so lange ohne Pause, wird die Funktion Wahrscheinliches Leck gesetzt.
Sprache der TexteselectNeinNamen der Funktionen beim Hinzufügen, Status der Ablesung, Szenen-Sätze und Meldungen der Aktionen.

So installierst du AI-on-the-edge in Gladys​

  1. Öffne in Gladys Integrationen: AI-on-the-edge 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-ai-on-the-edge: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-ai-on-the-edge.

AI-on-the-edge 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​

AI-on-the-edge 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 🙂