Freitag, 2. Oktober 2020

Shelly 1PM, Fluxdb und Grafana

Eigentlich wollte ich nur schnell einen Shelly 1PM installieren um den Stromverbrauch an einer Teilstrecke einer Phase zu protokollieren.

Da mir die Visualisierung von Grafana sehr gefällt, möchte ich den Verlauf des Stromverbrauchs in einer FluxDB ablegen und in Grafana darstellen und auswerten.

Shelly 1PM sollte dabei keine Verbindung zum internetaufbauen, ebenso sollten FluxDB und Grafana nur im lokalen LAN auf einer Synology DS212+ laufen (ärgerlich das die FluxDB per default direct Nutzungsdaten nach Hause sendet).

Normalerweise wäre die installation von Grafana und FluxDB recht einfach auf der Synology über Docker möglich. Jedoch wird die DS212+ nicht unterstütz, sondern lediglich die folgenden Modelle:

  • Serie 20:FS6400, FS3400, RS820RP+, RS820+, DS620slim, SA3600, SA3400, SA3200D
  • Serie 19:RS1619xs+, RS1219+, DS2419+, DS1819+, DS1019+, DVA3219
  • Serie 18:FS1018, RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
  • Serie 17:FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xs, DS1817+, DS1517+
  • Serie 16:RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+, DS716+II, DS216+, DS216+II
  • Serie 15:RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
  • Serie 14:RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+
  • Serie 13:RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+
  • Serie 12:RS3412RPxs, RS3412xs, RS2212RP+, RS2212+, RS812RP+, RS812+, DS3612xs, DS1812+, DS1512+, DS712+, DS412+
  • Serie 11:RS3411RPxs, RS3411xs, RS2211RP+, RS2211+, DS3611xs, DS2411+, DS1511+, DS411+, DS411+II
  • *Serie 10:RS810RP+, RS810+, DS1010+, DS710+

Python3

Python3 selbst gibt es auch für die DS212+ im Synology Store.

Den Paketmanager pip bekommt man per:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 
sudo python3 get-pip.py

Um später mit der influxDB zu kommunizieren (und dort die protokollierten Daten abzulegen) benutze ich das Paket FluxDB:

sudo python3 -m pip install influxdb
vormals habe ich das alte, inoffizielle paket influx-client genommen, was auch gut funtkioniert:
sudo python3 -m pip install influx-client

Um die Daten vom Shelly 1PM auszulesen benutze ich ShellPy

sudo python3 -m pip install ShellyPy==0.1.4

FluxDB

Zunächst habe ich mir einen neuen User “iot” erstellt und in dessen home directory folgendes gemacht:

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_linux_armhf.tar.gz
tar xvfz influxdb-1.7.10_linux_armhf.tar.gz

danach die dateien

  • influx 
  • influxd 
  • influx_inspect 
  • influx_stress 
  • influx_tsm

in aus dem entpackten Archiv in eine neuen Ordner “influxdb” bewegt.Dort habe ich dann eine neue Datei “influxd.conf” erzeugt mit folgendem Inhalt:



#only start this service after the httpd user process has started
start on started httpd-user

# stop the service gracefully if the runlevel changes to 'reboot'
stop on runlevel [06]

# run the scripts as the 'iot' user. Running as root (the default) is a bad idea.
setuid iot

# exec the process. Use fully formed path names so that there is no reliance on $PATH
exec /volume1/homes/iot/influxdb/influxd -config /volume1/homes/iot/influxdb.conf

dann habe ich noch die datei “influxdb.config” aus dem Archiv in das homeverzeichnis kopiert und die Verzeichnisse für log, meta angepasst, sodass auch diese nach /volume1/homes/iot/influxdb/ schreiben.

Dann das ganze versucht zu starten, nachdem es geklappt hat eine Verknüpfung zum Autostart hinzugefügt:

sudo ln -s influxd.conf /etc/init/influxd.conf

dann gemerkt, dass Synology die dinge Dort nicht ausführt und am Ende herausgefunden, dass man mittlerweile über den Aufgabenplaner Aufgaben nach dem Systemstart ausführen lassen kann:

imageimage

Grafana

Zuerst habe ich es mit folgendem Aufruf probiert:

wget https://dl.grafana.com/oss/release/grafana-6.6.2.linux-arm64.tar.gz 
tar -zxvf grafana-6.6.2.linux-arm64.tar.gz

und  später auch mit den anderen ARM packages probiert – leider ohne Erfolg. Auf Synolgogy DS212+ läuft ein Prozessor der armv5 kompatibel ist – leider bietet Grafana kein entsprechendes Paket an und für das selbst bauen fehlt mir die Zeit.

Chronograf

Auch Chronograf funktionierte leider nicht auf der DS212:

wget https://dl.influxdata.com/chronograf/releases/chronograf-1.8.0_linux_armhf.tar.gz
tar xvfz chronograf-1.8.0_linux_armhf.tar.gz

Aber das lasse ich nun einfach unter windows per “chronograph –r” laufen.

Keine Kommentare: