MySQL

Binde deine MySQL-Datenbank in Homey ein. Speichere Homey-Daten wie Sensorwerte oder Energiezähler in deiner SQL-Datenbank.

Verwende diese App, um SQL-Abfragen in Homey zum Lesen oder Schreiben von Datensätzen aus/in eine lokale MySQL-kompatible Datenbank auszuführen.

Die App stellt einen Treiber bzw. ein Gerät zur Verfügung, um eine Verbindung zu einem Datenbankserver und einer seiner Datenbanken herzustellen.

Einrichtung der Datenbankverbindung

Füge ein Gerät hinzu. Während der Einrichtung muss die Datenbankverbindung angegeben werden. Neben der IP-Adresse (oder Servername) und dem Port sind ein Benutzer sowie dessen Passwort anzugeben.

Nach erfolgter Einrichtung wird ein Gerät in Homey angelegt.

Dieses Gerät bietet selbst keine Dialog- oder Steuerungselemente an. Es dient lediglich der Verbindung zur Datenbank. Auf diese Weise können beliebig viele Datenbanken eingebunden werden.

Verwendung von Flows

Das Gerät bietet Flow-Aktionen, um SQL-Abfragen auszuführen. Es können sowohl lesende (SELECT) als auch schreibende (INSERT, UPDATE, DELETE) Abfragen erstellt werden.

Als Beispiel dient eine Tabelle mit Energie-Daten:

Soll bspw. der neueste Wert der Spalte grid_injected gelesen werden, dann kann dieser SQL-Befehl in der Flow-Karte eingegeben werden:

Auf diese Weise können Einzelwerte gelesen werden, entweder als Textvariable oder Zahlenvariable.

Alternativ können aber auch ganze Zeilen gelesen werden.

Als Ergebnis wird ein JSON-String übergeben. Dieser Text kann nun ausgelesen werden. Homey bietet dafür Logik-Karten an, mit denen auf JSON-Elemente zugegriffen werden kann. Über die Angabe des JSPN-Pfades kann eine Zeile über den Index (mit Angabe von [0]) und aus dieser Zeile das Feld (mit Angabe von grid_injected).

Mit der gleichen Logik können auch Datenbankeinträge geschrieben werden, in dem die Inhalte als Flow-Token in den SQL-Befehl eingefügt werden.

Datums-Parameter

Um einfach zeitabhängige Einträge zu lesen, bietet die App die Verwendung von Parametern an. Der Syntax ist:

  • [date-1d] = gestern
    [date+1d] = morgen
    [date+0d] = heute
  • [date-1m] = einen Monat in der Vergangenheit
  • [date-1y] = ein Jahr in der Vergangenheit

In dem vorherigen INSERT-Befehl werden z.B. um 0:00 Uhr die Verbrauchswerte des vergangen Tages in die Datenbank geschrieben. Dazu wird das Feld date mit dem Wert [date-1d] gefüllt. D.h. der Datensatz erhält als Datum von “gestern”.