Inhaltsverzeichnis:

Raspberry PI-basierter Strommonitor für Haushaltsgeräte - Gunook
Raspberry PI-basierter Strommonitor für Haushaltsgeräte - Gunook

Video: Raspberry PI-basierter Strommonitor für Haushaltsgeräte - Gunook

Video: Raspberry PI-basierter Strommonitor für Haushaltsgeräte - Gunook
Video: Top 10 Raspberry Pi Erweiterungen 2024, Juli
Anonim
Home Appliance Raspberry PI-basierter Strommonitor
Home Appliance Raspberry PI-basierter Strommonitor
Home Appliance Raspberry PI-basierter Strommonitor
Home Appliance Raspberry PI-basierter Strommonitor

Dies war ein kleines Projekt, das ich durchgeführt habe, um den Stromverbrauch einzelner Geräte im Haus zu überwachen und Diagramme ihres Stromverbrauchs im Laufe der Zeit anzuzeigen. Es ist tatsächlich eines der einfacheren Raspberry PI-basierten Projekte, die ich gemacht habe, kein Löten oder Hacken offener Produkte erforderlich. Es muss kein Raspberry PI-Projekt sein, es könnte leicht auf einer Linux-Box oder vielleicht Windows durchgeführt werden.

Die Kosten betragen 50 AUD für einen Satz von 4 Strommonitoren / Smart Plugs und die Kosten für einen Raspberry PI. Dies kann auf einem Pi Zero oder dem Original PI laufen, obwohl ich fand, dass es etwas langsam war. Der einzige andere PI, den ich habe, ist ein PI 3 und ich fand ihn sehr bissig, also würde ich ihn empfehlen. Beachten Sie, dass Sie die Häufigkeit der Datenerfassung reduzieren können (ich habe 10 Sekunden verwendet), wenn Sie es auf einem älteren PI ausführen möchten.

Dieses Projekt hat auch den zusätzlichen Vorteil, den Smart Plug von der Hersteller-Firmware zu befreien, sodass Sie ihre spezifischen Apps und Cloud-Dienste nicht verwenden müssen. So können sie mit Home Assist oder einfach mit Ihren eigenen Python-Skripten verwendet werden.

Bitte beachten Sie, dass ich davon ausgehe, dass Sie wissen, wie Sie das Betriebssystem auf dem PI installieren, eine Verbindung herstellen und einige grundlegende Linux-Befehle ausführen. Ich gehe auch davon aus, dass Sie wissen, wie Sie die IP-Adresse Ihres Smart Plugs finden, sobald er mit Ihrem WLAN verbunden ist.

Lieferungen

2er Pack oder 4er Pack Smart Plugs von hier:

www.kogan.com/au/buy/kogan-smarterhome-sma…

1 Himbeer-PI

Fähigkeiten:

Möglichkeit zum Einrichten eines Himbeer-PI

Grundlegende Linux-Befehlszeile

Texteditor wie vi oder nano (nano ist benutzerfreundlicher, vi ist schneller, wenn Sie es kennen)

Fähigkeit, die IP von Geräten in Ihrem Netzwerk zu finden.

Schritt 1: Kaufen Sie einige Smart Plugs

Kaufen Sie einige Smart Plugs
Kaufen Sie einige Smart Plugs

Der Smart Plug, den ich verwendet habe, war von hier:

www.kogan.com/au/buy/kogan-smarterhome-sma…

Beachten Sie, dass es eine ganze Reihe von Smart Plugs gibt, die kompatibel sind. Die meisten (alle?) ESP8266 (WEMOS)-basierten Geräte sind sehr einfach zu flashen. Stellen Sie sicher, dass Sie etwas mit Stromüberwachung erhalten, da viele dies nicht tun. Diese Seite zeigt eine große Liste kompatibler Geräte:

templates.blakadder.com/plug.html

Schritt 2: Flashen des Geräts

Dieser Teil war überraschend einfach. Sie laden im Grunde einfach die Software herunter, führen sie aus und führen Sie durch.

Dazu benötigen Sie eine Raspberry PI- oder Linux-Box mit WLAN. Sie benötigen Ihre primäre Verbindung zu diesem Gerät, die NICHT das WLAN ist. Für meinen PI3 war das einfach, da ich über Ethernet verbunden war. Wenn Sie einen PI Zero haben, müssen Sie ihn auf die altmodische Weise mit einer Tastatur und einem Monitor verbinden.

Ich gehe davon aus, dass Sie wissen, wie man einen PI einrichtet und mit SSH oder einer Tastatur eine Verbindung herstellt, damit ich das nicht durchmache. Wenn Sie sich nicht sicher sind, gibt es viele Tutorials im Internet.

Bevor wir beginnen, nur ein bisschen Hintergrund zu den Geräten. In China gibt es ein Unternehmen namens Tuya, das intelligente Stecker für verschiedene Kunden auspumpt. Sie nehmen Anpassungen für verschiedene Kunden vor und bieten eine Standard-Firmware und ermöglichen es Unternehmen, ihre eigenen Änderungen vorzunehmen. Das Problem dabei ist, dass Sie, wenn Sie eine Reihe von Produkten von verschiedenen Anbietern haben, am Ende eine Reihe von Apps ausführen müssen, von denen einige besser funktionieren als andere. Durch das Flashen einer Open-Source-Firmware befreien Sie sich von all dem. Dies ist also gut für die allgemeine Hausautomation.

So …. Hier ohne weiteres die Anleitung:

1) Führen Sie diese Befehle auf dem PI aus. Dadurch wird die erforderliche Software installiert.

# git clone https://github.com/ct-Open-Source/tuya-convert# cd tuya-convert#./install_prereq.sh

2) Stecken Sie den intelligenten Stecker in die Stromversorgung

3) Schalten Sie es mit der Taste ein

4) Halten Sie den Netzschalter gedrückt, bis das blaue Licht zu blinken beginnt

5) Warten Sie 10 Sekunden. Dies ist nicht unbedingt erforderlich, aber ich fand, es funktionierte besser, wenn Sie es taten.

6) Führen Sie diesen Befehl aus

./start_flash.sh

Von hier aus folgen Sie einfach den Anweisungen, außer am Ende wählen Sie "2. Tasmota". Es gibt eine Option für eine andere Firmware, aber ich habe das nicht ausprobiert, bin mir also nicht sicher, wie es ist.

Beachten Sie, dass ich dies mehr als einmal tun musste, zuerst dachte ich, ich hätte das Gerät gemauert, ich hatte kein Licht, kein Relaisklicken, kein Lebenszeichen. Aber ich habe es ausgeschaltet und den letzten Befehl erneut ausgeführt und es hat funktioniert. Ich musste dies mit 3 von 4 Geräten machen, die ich geflasht habe, nur eines ging direkt durch, ich denke aufgrund von Schritt 5.

Vollständige Anleitung hier:

github.com/ct-Open-Source/tuya-convert

Schritt 3: Erstmalige Verbindung mit der Firmware

Erstmalige Verbindung mit der Firmware
Erstmalige Verbindung mit der Firmware
Erstmalige Verbindung mit der Firmware
Erstmalige Verbindung mit der Firmware
Erstmalige Verbindung mit der Firmware
Erstmalige Verbindung mit der Firmware

Sobald Sie Tasmota auf das Gerät geflasht haben, zeigt es nicht mehr viele Lebenszeichen. Der Grund dafür ist, dass es konfiguriert werden muss. Dies ist ziemlich einfach, ich fand es am besten, es mit meinem Telefon zu tun. Schritte sind:

1) Suche nach WLAN-Zugangspunkten

2) Verbinden Sie sich mit dem mit der Bezeichnung tasmota_xxxx (wobei x für Zahlen steht)

3) Das Telefon sollte Sie zur Standardseite leiten, wenn nicht, gehen Sie zu 192.168.4.1

Beachten Sie, dass bei einigen Telefonen möglicherweise die Meldung "Kein Internetzugang, möchten Sie verbunden bleiben" angezeigt wird, wählen Sie "Ja".

4) Geben Sie auf der angezeigten Seite den Namen Ihres WiFi-Netzwerks und das Passwort in die ersten 2 Felder ein. Klicken Sie auf die Option zum Anzeigen des Passworts und überprüfen Sie dreimal, ob Sie das richtige Passwort eingegeben haben. Wenn Sie das falsche Passwort eingegeben haben, kann es schwierig sein, zu diesem Konfigurationsbildschirm zurückzukehren. Beachten Sie, dass Sie auch nach WLAN-Netzwerken suchen können, obwohl Sie natürlich noch das Passwort eingeben müssen.

5) Der Stecker sollte jetzt mit Ihrem WiFi-Netzwerk verbunden sein. Sie müssen zur Konfigurationsseite Ihres Routers gehen und die IP Ihres Geräts finden.

6) Öffnen Sie einen Webbrowser auf Ihrem PC und gehen Sie zu https://[device_ip] Sie sollten den Konfigurationsbildschirm von Tasmota sehen.

Herzlichen Glückwunsch, Sie haben den Stecker erfolgreich geflasht.

Schritt 4: Konfigurieren des Steckers

Stecker konfigurieren
Stecker konfigurieren

Die Firma, die diese Geräte herstellt, stellt anscheinend 10.000 Geräte mit vielen verschiedenen Konfigurationen her. Wir haben gerade eine neue Firmware geflasht und die Firmware weiß nicht, auf welche Geräte sie geflasht wurde. Bevor also etwas funktioniert, müssen wir es konfigurieren. Dazu müssen wir die Details unseres Geräts im Web finden und diese spezielle Konfiguration laden.

Finden Sie dazu Ihr Gerät auf dieser Seite:

templates.blakadder.com/plug.html

Für das von mir verwendete Gerät ist die Konfiguration hier:

templates.blakadder.com/kogan-KASPEMHUSBA….

Um die Konfiguration einzustellen, kopieren wir einfach den Text unter Template. In diesem Fall ist es:

Dann

1) Gehen Sie zu Ihrer Gerätekonfigurationsseite https://[IP of Smart Plug]

2) Klicken Sie auf Konfigurieren, konfigurieren Sie andere

3) Fügen Sie Ihre Vorlagenzeichenfolge ein

4) Setzen Sie ein Häkchen bei "MQTT aktivieren"

5) Klicken Sie auf Aktivieren und Speichern.

Um zu testen, ob dies funktioniert hat, klicken Sie auf "Hauptmenü", um zur Startseite zurückzukehren und Sie sollten nun die Stromverbrauchszahlen sehen. Sie werden alle Null sein, sogar die Spannung, aber das ist ein gutes Zeichen. Klicken Sie auf die Umschalttaste und Sie sollten das Klicken des Relais hören und sehen, wie die Spannung ansteigt.

Schritt 5: Spannung kalibrieren

Spannung kalibrieren
Spannung kalibrieren

Ich fand, dass die Spannungsanzeige ziemlich hoch war. Wenn Sie eine andere Spannungsquelle im Haus haben (zB Smart Meter vielleicht??) dann können Sie den Stecker sehr einfach kalibrieren. Um dies zu tun

1) Holen Sie sich den korrekten Spannungswert

2) Schalten Sie das Relais im Smart Plug ein

3) Klicken Sie auf der Startseite des Geräts auf Konsole

4) Geben Sie den Befehl "VoltageSet 228" ein und drücken Sie die Eingabetaste (ersetzen Sie 228 durch Ihre Spannung)

Spannung sollte jetzt korrekt angezeigt werden.

Schritt 6: Software auf dem PI installieren

Es gibt einige Pakete, die auf dem PI installiert werden müssen. Diese sind einfach zu installieren und können den Anweisungen der verschiedenen Pakete folgen. Ich werde die Anweisungen hier geben, aber beachten Sie, dass sie sich im Laufe der Zeit ändern können, sodass meine Anweisungen veraltet sind. Die Pakete sind:

Grafana (zum Anzeigen von Grafiken)

Influxdb (Zeitreihendatenbank, die unsere Daten speichert)

Telegraf (wird verwendet, um Daten in Influxdb zu übertragen)

Mosquitto (Nachrichtenbus zum Weiterleiten von Daten, der Smart Plug schiebt die Daten hierher)

Die Kette des Datenflusses ist wie folgt:

Smart Plug -> Mosquitto -> Telegraf -> InfluxDB -> Grafana

Wenn Sie fragen, warum wir Mosquitto und Telegraf nicht überspringen können, ist das eine gute Frage. Theoretisch könnte der Smart Plug zu Influx drängen. Das Problem dabei ist, dass es dann für Hunderte verschiedener Endpunkte konfigurierbar sein müsste und uns von einigen Auswahlmöglichkeiten ausschließen würde. Die meisten Dinge in der Heimautomatisierung verwenden Mosquitto, um Nachrichten weiterzugeben. Als Beispiel können wir den Plug ein- und ausschalten, indem wir Nachrichten an Mosquitto senden und der Smart Plug empfängt sie und antwortet.

Schritt 7: Grafana installieren

Grafana installieren
Grafana installieren

Von:

grafana.com/grafana/download?platform=arm

Oder viele andere Optionen hier:

grafana.com/grafana/download

Für Pi 1 und Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1#Finde die neueste Version von der Seite unter topwget https://dl.grafana.com/oss/release/grafana-rpi_7….sudo dpkg -i grafana-rpi_7.0.1_armhf. debsudo /bin/systemctl daemon-reloadsudo /bin/systemctl enable grafana-serversudo /bin/systemctl start grafana-server

Für neuere PIs (ARMv7)

sudo apt-get install -y adduser libfontconfig1#finde die neueste Version von der Seite unter topwget https://dl.grafana.com/oss/release/grafana_7.0.1_…sudo dpkg -i grafana_7.0.1_armhf.debsudo / bin/systemctl daemon-reloadsudo /bin/systemctl enable grafana-serversudo /bin/systemctl start grafana-server

Zu testen:

Gehen Sie zu https://[IP von PI]:3000

Benutzername/Passwort ist admin/admin, Sie werden aufgefordert, es zu ändern, Sie können es vorerst überspringen

Wenn Sie eine GUI erhalten, ist alles gut, gehen Sie zum nächsten Schritt

Schritt 8: InfluxDB installieren

Führen Sie diese Befehle auf dem PI aus:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -source /etc/os-releasetest $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get install influxdbsudo systemctl aktivieren influxdbsudo systemctl start influxdb

Testen Sie, indem Sie "influx" eingeben. Dies sollte Sie in die influxdb-Befehlszeile bringen. Geben Sie "Datenbanken anzeigen" ein, es werden noch keine Datenbanken angezeigt, aber wenn Sie eine leere Liste ohne Fehler erhalten, ist alles gut.

Schritt 9: Installieren von Telegraf

Dies ist wirklich einfach, weil wir die influxdb-Repos hinzugefügt haben, die wir einfach eingeben können:

sudo apt-get install telegrafsudo systemctl aktivieren telegrafsudo systemctl start telegraf

Zu diesem Zeitpunkt wird Telegraf bereits Systemmetriken in influxdb protokollieren. Sie können sie sehen, indem Sie diese Befehle eingeben:

influxshow databasesuse telegrafshow seriesSELECT * FROM CPU LIMIT 10;

Schritt 10: Installieren Sie Mosquitto

Dieser Teil ist einfach, da wir nur die Standardversion installieren, die mit raspian verpackt ist:

sudo apt-get -y mosquittosudo installieren apt-get -y mosquitto-clientssudo installieren systemctl mosquittosudo aktivieren systemctl mosquitto starten# Passwort für mosquittosudo erstellen mosquitto_passwd -c /etc/mosquitto/tasmota tasmota#passwort eingeben. Notieren Sie sich dieses Passwort, da wir es an Smart Plug weitergeben müssen

Zu testen:

Führen Sie dies in einer SSH-Sitzung aus:

mosquitto_sub -t test

Führen Sie dies in einem anderen aus

mosquitto_pub -t test -m meine Nachricht

Sie sollten Ihre Nachricht in der ersten SSH-Sitzung sehen

Schritt 11: Senden von Daten vom Smart Plug an Mosquitto

Senden von Daten vom Smart Plug an Mosquitto
Senden von Daten vom Smart Plug an Mosquitto

Jetzt haben wir mosquitto ausgeführt und müssen den Smart Plug so konfigurieren, dass er Daten an mosquitto sendet. Dies ist ziemlich einfach zu tun. Wir benötigen das Passwort, das für mosquitto aus dem vorherigen Schritt eingegeben wurde.

1) Melden Sie sich bei Ihrer Smart Plugs-Webseite an

2) Klicken Sie auf Konfiguration und dann auf Protokollierung konfigurieren

3) Stellen Sie den Telemetriezeitraum auf 10 ein und klicken Sie auf Speichern.

4) Klicken Sie auf MQTT konfigurieren

5) Geben Sie als Host die IP-Adresse Ihres PI ein

6) Geben Sie als Benutzername tasmota. ein

7) Geben Sie als Passwort das Passwort aus dem vorherigen Schritt ein

8) Geben Sie als Thema tasmota1 ein

9) Klicken Sie auf Speichern

Zu testen:

Geben Sie am PI den folgenden Befehl ein. Innerhalb von 10 Sekunden sollten Sie sehen, dass Daten durchkommen.

mosquitto_sub -t tele/tasmota1/SENSOR

Daten sollten so aussehen:

Schritt 12: Verwenden Sie Telegraf, um Daten von Mosquitto an Influx zu übertragen

Wir werden nun Telegraf so konfigurieren, dass die Daten von mosquitto gelesen und an influxdb gepusht werden. Auf der PI:

1) sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak

2) sudo vi /etc/telegraf/telegraf.conf

Hinweis vi ist für neue Benutzer nicht besonders benutzerfreundlich, wenn Sie einen menübasierten Texteditor bevorzugen, verwenden Sie stattdessen nano:

sudo nano /etc/telegraf/telegraf.conf

3) Fügen Sie die Konfiguration aus der angehängten Datei ein

4) sudo systemctl Neustart telegraf

Geben Sie dies zum Testen auf dem PI ein:

Zustrom

Datenbanken anzeigen

Sie sollten die Testdatenbank sehen. Wenn Ihnen der Namenstest nicht gefällt, können Sie dest_db in der Datei telegraf.conf ändern.

Schritt 13: Erstellen Sie schließlich Diagramme in Grafana

Erstellen Sie schließlich Diagramme in Grafana
Erstellen Sie schließlich Diagramme in Grafana

Endlich bekommen wir ein paar Daten zu sehen:-):-)

Zuerst müssen wir eine Verbindung zur Datenbank herstellen. Gehen Sie zur Grafana-Webseite http:[ip of PI]:3000

1) Einloggen mit admin/admin

2) Klicken Sie in der linken Spalte auf das Zahnradsymbol und die Datenquellen

3) Klicken Sie auf Datenquelle hinzufügen

4) Klicken Sie auf influxdb

5) Geben Sie als URL https://localhost:8086. ein

6) Geben Sie für die Datenbank test. ein

7) Geben Sie für HTTP GET. ein

8) Geben Sie für das min. Zeitintervall 10s. ein

9) Klicken Sie auf Speichern und testen, es sollte "Datenquelle funktioniert" sagen.

OK, jetzt haben wir eine Verbindung zur Datenbank und können einen Graphen erstellen … endlich.

1) Klicken Sie in der linken Spalte auf das + und dann auf Dashboard und Add New Panel

2) Für die Datenbank klicken Sie auf InfluxDB

3) Klicken Sie auf Messung und wählen Sie Kogan

4) Wählen Sie für das Feld Energy_Power aus.

5) Geben Sie als Alias Ihrer Serie einen Namen (z. B. Geschirrspüler)

6) Geben Sie auf der rechten Seite für Panel Title einen Namen ein, zB Power.

7) Das war's, Sie sollten Daten sehen. Klicken Sie auf den Pfeil nach links, um die Bearbeitung zu beenden, und klicken Sie dann auf Speichern, und geben Sie Ihrem Dashboard einen Namen.

Wenn Sie so weit gekommen sind, großartige Arbeit, ernsthaft.

Schritt 14: Noch ein paar Tipps

Noch ein paar Tipps
Noch ein paar Tipps
Noch ein paar Tipps
Noch ein paar Tipps

Die von mir bereitgestellte Standard-Telegraf-Konfiguration war etwas wartungsintensiv, da für jedes Gerät ein neuer Abschnitt hinzugefügt werden muss und ein Neustart von Telegraf durchgeführt werden muss. Mit den folgenden Änderungen wird die Dynamik viel dynamischer, da Geräte in der Tasmota-Konfiguration hinzugefügt oder umbenannt werden können, ohne dass Telegraf geändert werden muss.

Die erste Änderung besteht darin, das + in den Themennamen zu setzen, dies ist im Grunde ein Platzhalter. Dies allein würde ausreichen, außer wenn Sie in Grafana Diagramme erstellen, werden die Geräte als Dinge wie "Tele / WashingMachine / SENSOR" bezeichnet. Der zweite Teil der Telegraf-Konfiguration unten ist der Regex-Prozessor. Es zieht den Text "WashingMachine" aus der Mitte und verwandelt ihn in ein neues Tag, das an InfluxDB gepusht wird.

Hinweis: Stellen Sie sicher, dass Sie für jedes Gerät einen anderen Themennamen in der Tasmota-Konfiguration einrichten

[inputs.mqtt_consumer.tags] dest_db = "test"

Sobald dies erledigt ist, ist es sehr einfach, Grafana so zu konfigurieren, dass mehrere Geräte in einem Diagramm angezeigt werden. Das diesem Schritt beigefügte Bild zeigt, was zu tun ist. Klicken Sie einfach auf das +-Zeichen in der zeilenweisen Gruppe und wählen Sie Tag (Gerät) aus. Ganz unten bei Alias By geben Sie $tag_device ein. Sie sollten jetzt mehrere Reihen in einem Diagramm sehen. Sie können auf den Text jedes Elements klicken, um es ein- und auszuschalten (Strg-Klick funktioniert, um mehrere auszuwählen).

Empfohlen: