PiEM-It! FAQ (Frequently Asked Questions, häufig gestellte Fragen)

    Autor   : Dirk Weyand
    Version : 1.5.7
    Datum   : 20/03/2023

Inhalt

1. Allgemeines
2. Häufig gestellte Fragen
2.1 Was muss man bei der Admin IP eingeben ?
2.2 Was ist die Access Whitelist ?
2.3 Wie kann man sich Details zu den Grafiken ansehen ?
2.4 Wie funktioniert die Suche ?
2.5 Ich möchte mir die Messwerte von 10:00 bis 12:00 Uhr vom 7.Juli ansehen. Wie geht das ?
2.6 Wieso sehe ich nur Platzhalter aber keine Grafiken im Browser ?
2.7 Welchen Wert muss man als Einheit bei Ferraris Zählern konfigurieren ?
2.8 Wie kann man die Module als Respawn-Prozesse ins System integrieren, wenn keine inittab vorhanden ist ?
2.9 Wie verwende ich den YouLess LS110 Datenlogger zusammen mit der PiEM-It! Management Software ?
2.10 Kann man ein Espressif ESP8266-Modul zur Übertragung der Zählimpulse nutzen ?
2.11 Wie funktioniert mit PiEM-It! das Monitoring eines PIKO Wechselrichters von Kostal ?
2.12 Wie verwende ich den EDIMAX SP-2101W Smart Plug zusammen mit der PiEM-It! Management Software ?
2.13 Wieso werden von meinem S0-Zähler nicht alle Zählimpulse erfasst ?
2.14 Wie kann man ein SMA Energy Meter zusammen mit der PiEM-It! Management Software verwenden ?
2.15 Kann man für die Darstellung der Verbrauchswerte die Anzahl der Nachkommastellen ändern ?
2.16 Kann man das Skript zum Auslesen des SMA EM auch automatisch beim Hochfahren des RPi starten ?
2.17 Wie kann man die Multicast-Gruppe beim PiSMA-Modul anpassen ?
2.18 Wie kann man die Adresse des MQTT-Brokers konfigurieren ?
2.19 Wie kann ich meine Zählerstände per MQTT publizieren ?
2.20 Kann man auch Zählerstände per MQTT empfangen ?
2.21 Kann man die Verbrauchswerte als JSON im Payload übertragen ?
2.22 Wie kann man das PiMQTT-Modul automatisch starten ?
2.23 Wie binde ich moderne digitale Zähler mit D0-Schnittstelle ein ?
2.24 Ich möchte die Verbrauchswerte meiner Zähler an eine SmartHome Steuerungszentrale senden, geht das ?
2.25 Wie kann man HTTP Actions nutzen um Zählerstände von PiEM mit openHAB auszulesen ?
2.26 Warum funktioniert die Software bei meinem Raspberry Pi nicht ?
2.27 Fortsetzung folgt . . .
3. Glossar

1. Allgemeines

PiEM-It! ist eine von TGD-Consulting entwickelte Software, welche die Nutzung eines Raspberry Pi als Energie Monitor fürs Smart Metering ermöglicht. Die Management Software PiEM-It! ist eine embedded App und besteht aus mehreren Modulen,

Alle Module benötigen eine REBOL3-Laufzeitumgebung/Interpreter. Weitere Informationen zum π-Energie-Monitor (PiEM) und zur PiEM-It! Management Software erhalten Sie hier.

Dies sind die FAQ zu PiEM-It!, neue Fragen können Sie hier stellen.

[ zurück nach oben ]

2. Häufig gestellte Fragen (Frequently Asked Questions)

2.1 Was muss man bei der Admin IP eingeben ?

Bei der Admin IP werden die IP-Adressen der Rechner eingetragen, welche den PiEM über das Webinterface administrieren dürfen. Die Admin IP beschränkt dabei den Zugriff auf die "config.html" Seite des PiEM und legt den IP-Filter des PiEM-It! Webserver-Moduls für diese Seite entsprechend fest.

Achtung: Nur berechtigte IP-Adressen können Änderungen an den Einstellungen der PiEM-It! Management Software durchführen. In der Voreinstellung sind dies nur Rechner, welche sich im selben IP-Segment wie der PiEM befinden. Bei Bedarf kann die Zugriffsmöglichkeit auf dedizierte IP-Adressen eingeschränkt werden.

2.2 Was ist die Access Whitelist ?

Mit Hilfe der Access Whitelist wird der IP-Filter des PiEM-It! Webserver-Moduls für die Seiten "show.html", "details.html" und "search.html" sowie für alle übrigen Ressourcen festgelegt. Falls bei Access Whitelist eine IP-Adresse (z.B. 192.168.1.100) oder ein IP-Segment (z.B. 192.168.1.0) eingetragen wird, so ist der Zugriff auf den Webserver des PiEM nur von Rechnern mit diesen IP-Adressen möglich. Ist die Access Whitelist leer, ist der Zugriff auf den Webserver nicht eingeschränkt und von allen Rechnern aus möglich.

2.3 Wie kann man sich Details zu den Grafiken ansehen ?

Klicken Sie dazu einfach auf die Grafik und sie wird in einem separaten Browserfenster in original Größe dargestellt. Sollten dadurch immer noch nicht alle gewünschten Details erkennbar sein, können Sie mit Hilfe der Suche detailiertere Plots erstellen, siehe auch folgenden Abschnitt 2.4 .

2.4 Wie funktioniert die Suche ?

Die Suche erreicht man mit Hilfe des entsprechenden Buttons von der Hauptseite des PiEMs vom Browser aus. Die Suchfunktion bietet mehrere Möglichkeiten. Zulässige Suchparameter sind dabei entweder

Es werden nur die Grafiken passend zur Suche dargestellt. Da die Plots bei der Suche dynamisch generiert werden, können einige Sekunden vergehen bis das Browserfenster aktualisiert wird.

2.5 Ich möchte mir die Messwerte von 10:00 bis 12:00 Uhr vom 7.Juli ansehen. Wie geht das ?

Geben Sie dafür zunächst das Datum bei der Suche ein:

7-Jul-2014

Es werden nun die Grafiken für den 7.Juli ( Tag / Woche / Monat / Jahr ) angezeigt.

Präzisieren Sie ihre Suche nun für den gewünschten Zeitraum. Die Uhrzeiten müssen dabei durch ein Space voneinander getrennt sein, siehe Beispiel:

10:00 12:00

Jetzt wird zusätzlich eine Grafik für den genauen Zeitraum im Browser dargestellt.

Anstelle der obigen iterativen Suche kann auch direkt der gewünschte Zeitraum mit Beginn und Ende im DD-MMM-YYYY/HH:MM Format eingegeben werden.

7-Jul-2014/10:00 7-Jul-2014/12:00

Da bei dieser Art der Suche mehr Zeichen im Suchfeld einzugeben sind, ist die iterative Suche intuitiver und anschaulicher und führt daher auch meistens schneller zum erwünschten Ergebnis.

2.6 Wieso sehe ich nur Platzhalter aber keine Grafiken im Browser ?

Es kann nur zwei Gründe geben, warum keine Grafiken dargestellt werden:

Hinweis: Das Kommandozeilenprogramm gnuplot installiert man so:

sudo apt-get update && sudo apt-get install gnuplot

2.7 Welchen Wert muss man als Einheit bei Ferraris Zählern konfigurieren ?

Bei dem Parameter Einheit ist der Verbrauchswert pro Impuls des Sensors als Dezimalzahl einzugeben.

Für Ferraris Zähler entspricht dies dem Energiebetrag pro Umdrehung, der gewöhnlich bei 1 / 75 bzw. 1 / 96 je nach Typ des Zählers liegt. Anstelle einer Dezimalzahl kann der Einfachheit halber auch direkt der Quotient eingetragen werden. Die PiEM-It! Management Software berechnet daraus dann automatisch den richtigen Dezimalwert. Der Dividend, Divisor sowie Operator müssen dabei durch ein Space voneinander getrennt sein, siehe Beispiel:

1 / 96

2.8 Wie kann man die Module als Respawn-Prozesse ins System integrieren, wenn keine inittab vorhanden ist ?

Falls bei ihrem Raspbian keine /etc/inittab zu finden ist, wird die aktuelle Jessie Distribution anstelle von Wheezy verwendet. Bei Raspbian Jessie werden die Prozesse nicht mehr über das init-System sondern per systemd gestartet. Eine /etc/inittab ist daher nur bei Wheezy basierten Distributionen zu finden.

Um das Webserver-Modul von PiEM-It! unter Jessie als Respawn-Prozess ins System einzubinden, muss nur der folgende systemd-Service per sudo nano /etc/systemd/system/Webserver.service eingetragen werden:

[Unit]
Description=PiEM-It! Webserver-Modul, respawn
After=network.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/piem && ./bin/r3 Webserver.r >> nohup.out"
User=pi
Restart=always
SyslogIdentifier=piem

[Install]
WantedBy=multi-user.target

Anschließend wird der Service noch per

sudo systemctl enable Webserver.service

aktiviert und fortan wird beim Hochfahren des Raspberry Pi das PiEM-It! Webserver-Modul automatisch als Respawn-Prozess gestartet.

Das PiEM-It! Management Software Modul bindet man übrigens auf die gleiche Art und Weise per sudo nano /etc/systemd/system/PiEMItMgmt.service

[Unit]
Description=PiEM-It! Mgmt-Modul, respawn
After=network.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/piem && ./bin/r3 PiEMIt.r >> nohup.out"
User=pi
Restart=always
SyslogIdentifier=piem

[Install]
WantedBy=multi-user.target

und

sudo systemctl enable PiEMItMgmt.service

ein.

2.9 Wie verwende ich den YouLess LS110 Datenlogger zusammen mit der PiEM-It! Management Software ?

Sie haben bereits erfolgreich den YouLess LS110 Datenlogger an ihrem Zähler montiert und über dessen embedded Webinterface konfiguriert, dann können Sie den Datenlogger wie folgt über PiEM-It! abfragen:

  1. Sie müssen den Datenlogger zunächst als normalen Sensor bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist auf die Anschlussart remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Je höher der maximale Verbrauch, desto kleiner muss die Abtastrate gewählt werden. Die Abtastrate sollte zwischen einer und 10 Sekunden liegen.
  4. Speichern Sie die geänderten Einstellungen und
  5. legen eine Optionsdatei .PiEMIt.logger entsprechend für den YouLess-Datenlogger an. Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#123456789 http://192.168.0.242/a Youless]" > .PiEMIt.logger

Hinweis: Hinter dem Hash (#) ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden.

Nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann automatisch die aktuellen Messwerte des YouLess Datenlogger abgefragt.

2.10 Kann man ein Espressif ESP8266-Modul zur Übertragung der Zählimpulse nutzen ?

Ja, das geht. Falls der direkte Anschluss eines Zählers an den Raspberry Pi nicht möglich sein sollte, aber eine gute Ausleuchtung ihres WLAN-AP im Bereich des Zählers vorhanden ist, dann kann man ein preisgünstiges ESP8266-Modul zur Erfassung und Übertragung der Zählimpulse an die PiEM-It! Management Software verwenden.

Ein geeigneter Beispiel-Sketch zum Flashen des ESP8266 über die Arduino-IDE finden Sie auf GitHub. Die Einbindung des ESP8266-Moduls in PiEM-It! geschieht danach wie folgt:

  1. Sie müssen das ESP8266-Modul zunächst als normalen Sensor bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist entsprechend zu wählen und die Anschlussart ist auf remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Je höher der maximale Verbrauch, desto kleiner muss die Abtastrate gewählt werden. Die Abtastrate sollte zwischen einer und 10 Sekunden liegen.
  4. Speichern Sie die geänderten Einstellungen und
  5. ergänzen Sie die optionale/vorhandene Optionsdatei .PiEMIt.logger entsprechend um einen Eintrag für das ESP8266-Modul. Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#123456789 %/run/shm/123456789.esp ESP]" >> .PiEMIt.logger

Hinweis: Hinter dem Hash (#) und im Dateinamen ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden.

Nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann automatisch die aktuellen Messwerte über das ESP8266-Modul per HTTP-GET Request an PiEM-It! übermittelt.

2.11 Wie funktioniert mit PiEM-It! das Monitoring eines PIKO Wechselrichters von Kostal ?

Voraussetzung ist, dass ihr PIKO über die RJ45 Schnittstelle (Ethernet) mit dem LAN verbunden ist und die IP-Adresse des Wechselrichters bekannt ist. Sie können dann in wenigen Schritten den PIKO-Stringwechselrichter der Firma Kostal zusammen mit der PiEM-It! Management Software nutzen, ohne auf den Cloud-Service des Herstellers angewiesen zu sein. Alle mit Hilfe von PiEM erfassten und verarbeiteten Daten werden nur lokal auf der SD-Card ihres Raspberry Pi gespeichert und verbleiben stets bei ihnen zu Hause unter der eigenen Kontrolle.

Führen Sie einfach folgende Schritte durch, um das Monitoring für den PIKO Wechselrichter mit der PiEM-It! Management Software zu ermöglichen:

  1. Sie müssen den PIKO-Stringwechselrichter zunächst als normalen Sensor bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist entsprechend zu wählen und die Anschlussart ist auf remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Je kleiner die Abtastrate gewählt wird, desto mehr Daten werden gespeichert und desto genauer wird das Monitoring. Die Abtastrate sollte zwischen fünf und 60 Sekunden liegen.
  4. Speichern Sie die geänderten Einstellungen und
  5. machen den PIKO als externen Datenlogger gegenüber PiEM bekannt. Dafür ergänzen Sie die optionale/vorhandene Optionsdatei .PiEMIt.logger entsprechend um einen Eintrag für den Wechselrichter. Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#123456789 http://pvserver:pvwr@192.168.2.4/index.fhtml Kostal]" >> .PiEMIt.logger

Hinweis: Hinter dem Hash (#) ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden. In der URL müssen neben der IP-Adresse auch die Credentials (User/Passwort) für den Zugriff auf den PIKO Wechselrichter enthalten sein. Falls Sie nicht die Standard-Credentials verwenden, müssen die Angaben vor dem @-Zeichen in der URL angepasst werden.

Nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann automatisch die aktuellen Photovoltaik-Werte des PIKO Wechselrichters erfasst und für die Visualisierung von Leistung und Stromertrag genutzt.

2.12 Wie verwende ich den EDIMAX SP-2101W Smart Plug zusammen mit der PiEM-It! Management Software ?

Sie haben bereits erfolgreich einen EDIMAX SP-2101W Smart Plug in ihr WLAN eingebunden und über die ediLive-App konfiguriert, dann können Sie die Energieerfassung des EDIMAX Smart Plugs wie folgt über PiEM-It! abfragen:

  1. Sie müssen den EDIMAX Smart Plug zunächst als normalen Sensor bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist auf die Anschlussart remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Je höher der maximale Verbrauch, desto kleiner muss die Abtastrate gewählt werden. Die empfohlene Abtastrate liegt bei 15 Sekunden.
  4. Speichern Sie die geänderten Einstellungen und
  5. ergänzen Sie die Optionsdatei .PiEMIt.logger entsprechend der Konfiguration ihrer EDIMAX WLAN-Steckdose. Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#8010268531 http://admin:1234@192.168.0.101:10000/smartplug.cgi EDIMAX]" >> .PiEMIt.logger

Hinweis: Hinter dem Hash (#) ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden. In der URL müssen neben der IP-Adresse auch die Credentials (User/Passwort) für den Zugriff auf die EDIMAX WLAN-Steckdose enthalten sein.

Nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann automatisch die aktuellen Messwerte des EDIMAX Smart Plugs abgefragt.

2.13 Wieso werden von meinem S0-Zähler nicht alle Zählimpulse erfasst ?

Falls bei ihrem PiEM-System nicht alle Zählimpulse auf der S0-Schnittstelle erfasst werden, ist entweder die Abtastrate bei den PiEM-Settings für den Zähler zu groß gewählt oder der S0-Zähler selbst erzeugt nur einen sehr kurzen Zählimpuls.

Gängige S0-Zähler können mit einer Abtastrate von 0.07 - 0.1 zuverlässig sogar mit einem stromsparenden Raspberry Pi Zero W ausgelesen werden.

Falls ihr S0-Zähler nur einen sehr kurzen Zählimpuls von wenigen ms erzeugt, sollten Sie das Signal mit Hilfe einer monostabilen Kippstufe auf Basis des IC NE555 verlängern. Ein entsprechendes Schaltbeispiel für den NE555 im monostabilen Modus ist z.B. auf Wikipedia gegeben (https://de.wikipedia.org/wiki/NE555#Monostabile_Kippstufe). Hier die Werte für diese Schaltung sowie die Anschlussbelegung zum Pi,

2.14 Wie kann man ein SMA Energy Meter zusammen mit der PiEM-It! Management Software verwenden ?

Voraussetzung ist, dass Sie ein neueres Raspberry Pi Model (2,3 oder 4) mit Mehrkern-SOC verwenden und sich der Raspberry Pi und das SMA Energy Meter im gleichen Netzsegment befinden. Nur so können die vom SMA Energy Meter als UDP-Multicasts verschickten Speedwire Datagramme auch vom Raspberry Pi empfangen und ausgewertet werden. Sowohl die älteren Versionen 1 und 2.0 des SMA Energy Meters als auch die aktuelle Version des Sunny Home Manager 2.0 lassen sich über die PiEM-It! Management Software auswerten.

Führen Sie einfach folgende Schritte durch, um das Monitoring für das SMA Energy Meter mit der PiEM-It! Management Software zu ermöglichen:

  1. Sie müssen das SMA Energy Meter zunächst als normalen Zähler bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist entsprechend zu wählen und die Anschlussart ist auf remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Je kleiner die Abtastrate gewählt wird, desto mehr Daten werden gespeichert und desto genauer wird das Monitoring. Die Abtastrate sollte zwischen fünf und 60 Sekunden liegen.
  4. Speichern Sie die geänderten Einstellungen und
  5. machen den SMA EM als externen Datenlogger gegenüber PiEM bekannt. Dafür ergänzen Sie die optionale/vorhandene Optionsdatei .PiEMIt.logger entsprechend um einen Eintrag für den Wechselrichter. Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#123456789 %/run/shm/123456789.sma SMA]" >> .PiEMIt.logger

Hinweis: Hinter dem Hash (#) ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden.

Nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann automatisch die Summe des aktuellen Verbrauchs aller vom SMA Energy Meter überwachten drei Phasen erfasst und für die Visualisierung von Gesamtleistung und Stromverbrauch genutzt.

2.15 Kann man für die Darstellung der Verbrauchswerte die Anzahl der Nachkommastellen ändern ?

In der PiEM-It! Management Software werden die Verbrauchswerte für gewöhnlich mit einer Genauigkeit auf eine Nachkommastelle gerundet dargestellt. Bei Bedarf kann man mit Hilfe der Optionsdatei .PiEMIt.precise die Darstellung weiter präzisieren. Falls eine Darstellung gerundet auf zwei Nachkommastellen gewünscht wird, so kann die Optionsdatei wie folgt erstellt werden:

cd /home/pi/piem && echo "" > .PiEMIt.precise

Wenn man eine Darstellung mit 3 Nachkommastellen benötigt, wird die Optionsdatei .PiEMIt.precise wie folgt angelegt:

cd /home/pi/piem && echo "3" > .PiEMIt.precise

Jeweils nach einem Neustart des Raspberry Pi oder der PiEM-It! Management Software werden dann die Verbrauchswerte mit der konfigurierten Präzision dargestellt.

2.16 Kann man das Skript zum Auslesen des SMA EM auch automatisch beim Hochfahren des RPi starten ?

Das PiSMA-Modul von PiEM-It! wertet die Verbrauchswerte des SMA Energy Meter aus. Um das PiSMA-Modul als Respawn-Prozess ins System einzubinden, muss nur der folgende systemd-Service per sudo nano /etc/systemd/system/PiSMA.service eingetragen werden:

[Unit]
Description=PiEM-It! PiSMA-Modul, respawn
After=multi-user.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/piem && ./bin/rebol -qs PiSMA.r >>  nohup.out"
User=pi
Restart=always
SyslogIdentifier=piem

[Install]
WantedBy=multi-user.target

Anschließend wird der Service noch per

sudo systemctl enable PiSMA.service

aktiviert und fortan wird beim Hochfahren des Raspberry Pi das PiEM-It! PiSMA-Modul automatisch als Respawn-Prozess gestartet.

2.17 Wie kann man die Multicast-Gruppe beim PiSMA-Modul anpassen ?

Falls Sie nicht die voreingestellte Multicast-Gruppe bei ihrem SMA Energy Meter verwenden, muss diese auch beim PiSMA-Modul angepasst werden. Ansonsten können keine UDP-Multicasts empfangen und ausgewertet werden.

Editieren Sie dazu im Header des PiSMA.r Skriptes den Eintrag für die MultiCast-Gruppe (MC-group) entspechend.

REBOL [
    Title: {UDP-Multicast Receiver and Decoder 4 SMA Speedwire data}
    Name: PiSMA
    Version: 0.1.5
    Date: 9-Oct-2020
    File: %PiSMA.r
    Author: "Dirk Weyand"
    Usage: "nohup bin/rebol -qs PiSMA.r &"
    MC-group: 239.12.255.254
]

do load decompress 64#{
eJztXc1u20YQvuspxgyKxAhk2o77JyAwnKQtdHBrQEmDhiCKNTmSGJNcZrmMqxh5
mz5Gb3mxzi4pkdSP0x5aRsTwIIi7s7Mz37ffUKAOo4WaoR7BV64qUjefJ+4gxOti
NoJRIJMEUz14i/oDWUyLNADPETe6wDhGeIORBjlPES7SmbhGmH76S9nRDzLFI2cA

Das PiSMA-Modul muss neugestartet werden, damit die geändertem Einstellungen verwendet werden. Rebooten Sie dazu einfach ihren Raspberry Pi.

2.18 Wie kann man die Adresse des MQTT-Brokers konfigurieren ?

Das aktuelle Release der PiEM-It! Management Software unterstützt nun auch MQTT zum Empfang oder zur Übertragung von Verbrauchswerten der Zähler. MQTT ist ein offenes Netzwerkprotokoll für Machine-to-Machine-Kommunikation, das zur Übertragung der Daten eine Publish-/Subscribe-Architektur verwendet. Zentrale Komponente dieser Architektur stellt der MQTT-Broker dar.

PiEM kommuniziert als MQTT-Client mit dem Broker. Die Adresse des MQTT-Brokers wird mit Hilfe der Optionsdatei .PiMQTT.broker angepasst. Hier sehen Sie exemplarisch den Inhalt dieser Datei mit dem URI des MQTT-Brokers, welche Sie an ihren lokalen oder den gewünschten Broker anpassen:

tcp://broker.hivemq.com:1883

Das PiMQTT-Modul muss neugestartet werden, damit die geändertem Einstellungen verwendet werden. Rebooten Sie dazu einfach ihren Raspberry Pi.

2.19 Wie kann ich meine Zählerstände per MQTT publizieren ?

Falls Sie die mit PiEM lokal erfassten Verbrauchswerte ihrer Zähler als Publish-Message per MQTT weiterleiten möchten, können Sie das einfach mit dem PiMQTT-Modul (PiMQTT.r) der PiEM-It! Management Software realisieren. Verwenden Sie dazu die .PiMQTT.publish Optionsdatei. Dort tragen Sie das zu ihrem Zähler passende "Topic" samt Quellangaben der Logdatei zeilenweise ein. Der Inhalt von .PiMQTT.publish für zwei Zähler sieht beispielsweise so aus:

PiEM/Stromverbrauch %Strom.txt
PiEM/Einspeisung %Einspeisung.txt

Das PiMQTT-Modul muss neugestartet werden, damit diese Option verwendet wird. Nach einen Reboot ihres Raspberry Pi werden dann die jeweils aktuellen Verbrauchswerte der angegebenen Zähler per MQTT-Publish an den Broker mitgeteilt.

2.20 Kann man auch Zählerstände per MQTT empfangen ?

Auf die gleiche Weise wie bei Publish-Messages konfigurieren Sie den Subscribe-Request, um Zählerstände per MQTT empfangen zu können. Allerdings verwenden Sie nun die .PiMQTT.subsribe Optionsdatei. Dort tragen Sie die "Topics" der Zähler ein, deren Messwerte Sie empfangen möchten. Neben dem Topic selbst müssen Sie in der Zeile noch den Speicherort in der RAM-Disk (Shared-Memory-Bereich) angeben, wo das PiEMZähler-Modul die Messwerte aus dem Payload weiterverarbeitet. Falls der Payload nicht in dem von PiEM erwarteten Format vorliegt "Zählerstand Verbrauch Datum/Uhrzeit", dann müssen zusätzliche Regeln zum Parsen des Payloads angegeben sein.

home/MQTT/Stromverbrauch %/run/shm/123456789.mqtt
home/MQTT/Einspeisung %/run/shm/987654321.mqtt [type ",:" map ["Stand" "Leistung" "Datum"]]

Jeden "MQTT-Zähler" (Zeile in der .PiMQTT.subsribe Optionsdatei) binden Sie bei PiEM-It! wie folgt ein:

  1. Sie müssen einen "MQTT-Zähler" zunächst als normalen Zähler bei den PiEM-Settings konfigurieren, wobei eine eindeutige Zählernummer und GPIO zu verwenden ist.
  2. Der Typ des Zählers ist entsprechend zu wählen und die Anschlussart ist auf remote zu setzen.
  3. Legen Sie eine geeignete Abtastrate fest. Sie sollte passend zum Intervall der empfangenen MQTT-Nachrichten sein.
  4. Speichern Sie die geänderten Einstellungen und
  5. ergänzen Sie die optionale/vorhandene Optionsdatei .PiEMIt.logger entsprechend um einen Eintrag für den "MQTT-Zähler". Das geht zum Beispiel wie folgt:
cd /home/pi/piem && echo "[#123456789 %/run/shm/123456789.mqtt MQTT]" >> .PiEMIt.logger

Hinweis: Hinter dem Hash (#) ist die konfigurierte eindeutige Zählernummer einzutragen. Das Hash-Zeichen darf nicht entfernt werden.

Das PiMQTT-Modul muss neugestartet werden, damit diese Option verwendet wird. Nach einen Reboot ihres Raspberry Pi werden dann die MQTT-Publish Meldungen vom Broker als Verbrauchswerte des angegebenen Zähler in PiEM dargestellt.

2.21 Kann man die Verbrauchswerte als JSON im Payload übertragen ?

Ja, man kann die von PiEM erfassten Verbrauchswerte auch im JSON-Format mit dem Payload per MQTT Publish-Request an den MQTT Broker übertragen. Dazu muss die Zeile aus obigen Optionsdateien entsprechend angepasst werden, z.B.:

PiEM/Stromverbrauch %Strom.txt [type "JSON" map [Zeitstempel Zählerstand Verbrauch]]
PiEM/Einspeisung %Einspeisung.txt [type "JSON" map [Datum Zählerstand Einspeisung]]

Das PiMQTT-Modul verwendet für die Konvertierung des Payloads nach JSON das altjson.r Skript von Christopher Ross-Gill.

2.22 Wie kann man das PiMQTT-Modul automatisch starten ?

Das PiMQTT-Modul von PiEM-It! übernimmt als MQTT-Client die Kommunikation mit dem MQTT-Broker. Um das PiMQTT-Modul als Respawn-Prozess ins System einzubinden, muss nur der folgende systemd-Service per sudo nano /etc/systemd/system/PiMQTT.service eingetragen werden:

[Unit]
Description=PiMQTT-Client Modul, respawn
After=multi-user.target

[Service]
ExecStart=/bin/sh -c "cd /home/pi/piem && ./bin/r3 PiMQTT.r >> MQTT.log"
User=pi
Restart=always
SyslogIdentifier=pimqtt

[Install]
WantedBy=multi-user.target

Anschließend wird der Service noch per

sudo systemctl enable PiMQTT.service

aktiviert und fortan wird beim Hochfahren des Raspberry Pi das PiMQTT-Modul automatisch als Respawn-Prozess gestartet.

2.23 Wie binde ich moderne digitale Zähler mit D0-Schnittstelle ein ?

Auch moderne digitale Stromzähler mit D0-Schnittstelle, sogenannte Smartmeter, können einfach mit der PiEM-It! Management Software ausgewertet werden. Dafür wird die D0-Schnittstelle über einen entsprechenden USB-Serial-Tastkopf mit dem RaspberryPi verbunden, um mit Hilfe von PiEM das SML-Protokoll der D0-Schnittstelle auswerten zu können.

Über die PiEM-Settings konfigurieren Sie den Zähler zunächst als gewöhnlichen Verbrauchszähler für Strom. Verwenden Sie dabei einen GPIO, der nicht anderweitig am Raspberry Pi verwendet wird. Tragen Sie die Nummer des GPIO dann in die Optionsdatei .PiEMIt.meter ein, um das Auslesen der D0-Schnittstelle zu aktivieren. Z.B.:

echo "25" > /home/pi/piem/.PiEMIt.meter

Prüfen Sie abschließend bei den "Globals" im PiEMZaehler.r Skript, ob das vom USB-Serial-Tastkopf am RaspberryPi verwendete Serial-Device übereinstimmt oder passen es ggf. an.

Nach einem Neustart der PiEM-It! Management Software werden dann die Verbrauchswerte des digitalen Stromzählers erfasst und aufgezeichnet.

2.24 Ich möchte die Verbrauchswerte meiner Zähler an eine SmartHome Steuerungszentrale senden, geht das ?

Ja, das geht. Das aktuelle Release der PiEM-It! Management Software kann mit folgenden SmartHome Steuerungszentralen kommunizieren:

Legen Sie dafür zunächst eine entsprechende SmartHome-Optionsdatei im piem Verzeichnis per

cd /home/pi/piem && nano .PiEMIt.SmartHome

an. Ein Beispiel für den Inhalt der Optionsdatei .PiEMIt.SmartHome sieht so aus:

tcp://192.168.1.10:4321     ; IP-Adresse und Port des SmartHome-Servers für den Empfang des Füllstandes als TCP Telegramm
#1234 Stromverbrauch #4321 Einspeisung    ; Zählernummer und Bezeichnungen des Zählers, deren Stand übertragen werden sollen

Natürlich müssen Sie noch die Steuerungszentrale selbst für den Empfang der Zählerstände von PiEM vorbereiten und konfigurieren. Hier ist beispielhaft verdeutlicht, was im Falle des Gira HomeServers zu tun ist. Beim Gira HomeServer ist entsprechend der Optionsdatei ein "IP/EIB-Telegramm empfangen" einzurichten (IP-Telegramm-Typ: TCP / IP-Telegramm-Port: 4321).

2.25 Wie kann man HTTP Actions nutzen um Zählerstände von PiEM mit openHAB auszulesen ?

PiEM bietet über ein Export-CGI die einfache Möglichkeit Zählerstände per HTTP-Requests abzufragen. Es werden sowohl GET als auch POST Anfragemethoden unterstützt. Der Einfachheit sind hier allerdings nur Beispiele für GET-Requests aufgeführt, da man diese zum Testen auch über den Webbrowser absenden kann.

Das Export-CGI bietet die folgenden Optionen zur Abfrage von Messwerten. Wichtig ist, dass beim Parameter id die gewünschte Zählernummer angegeben ist. Die zugehörigen HTTP-Requests sehen wie folgt aus:

2.26 Warum funktioniert die Software bei meinem Raspberry Pi nicht ?

Falls bei ihrem Raspberry Pi die Software ohne erkennbaren Grund nicht funktionieren will, verwenden Sie aller Wahrscheinlichkeit nach die 64-bit Version des Raspberry Pi OS (arm64). Im Softwarebundle ist allerdings nur der REBOL3-Interpreter für die gängige 32-bit Version des Raspberry Pi OS (armhf) enthalten.

Wechseln Sie in das Installationsverzeichnis der Software, um mit diesem Befehl:

file bin/r3

bin/r3: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=c73a4fb5e845483360fcd0717e7c670dba7e20c9, stripped

die Art des Binaries zu ermitteln, welche auf ihrem System installiert ist.

Entweder Sie befolgen dann die hier aufgeführten Schritte, um das 32-bit Rebol3 Binary verwenden zu können, oder laden die 64-bit Version von Rebol3 herunter und ersetzen damit die vorhandene r3 Datei im bin Verzeichnis der Software.

Oder Sie installieren das - für alle Raspberry Pi Modelle empfohlene - Raspberry Pi OS Lite Image in 32-bit.

2.27 Fortsetzung folgt . . .

. . . fragen Sie einfach !

[ zurück nach oben ]

3. Glossar

APAccess Point

AppApplication (Programm)

FAQFrequently Asked Questions

ICIntegrated Curcuit

IDEIntegrated Development Environment

IPInternet Protocol

JSONJavaScript Object Notation

LANLocal Area Network

M2MMachine-to-Machine-Kommunikation

MQTTMessage-Queuing-Telemetry-Transport

OSOperating System (Betriebssystem)

PiEMΠ-Energie-Monitor

REBOLRelative Expression Based Object Language

RJRegistered Jack

TNGThe Next Generation

WLANWireless Local Area Network

[ zurück nach oben ]

Copyright 2014 - 2023 TGD-Consulting   -  WWW.TGD-CONSULTING.DE
erstellt am 20-März-2023 um 12:34:45