Plugin-Daten
AutorMichael Schlenstedt
Logo
StatusBETA
Version0.3.0
Min. LB Version2.2.0
Release Downloadhttps://github.com/mschlenstedt/LoxBerry-Plugin-Frequency-Counter/archive/refs/tags/LoxBerry-Plugin-Frequency-Counter-V0.3.0.zip
BeschreibungFrequenzzähler für die GPIOs des Raspberry. Frequenzen bis zu 500 KHz (und mehr) können detektiert werden.
SprachenEN, DE
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/423319-neues-plugin-frequency-counter

Frequency Counter

Funktion des Plugins

Das Plugin kann Frequenzen an den GPIOs des Raspberrys erkennen. So können z. B. Sensoren wie Durchflussmesser oder Windmesser an den GPIOs angeschlossen werden und die detektierte Frequenz weiterverwendet werden. Es können bis zu 5 GPIOs ausgelesen werden. Es sind Frequenzen bis zu 500 KHz (oder auch mehr) möglich.

500 KHz ist weit mehr als die Loxone Frequenzzähler einiger Extensions schaffen (max. 500 Hz): https://loxwiki.atlassian.net/wiki/spaces/LOX/pages/1658224644/Frequenzz+hler

Download

Download über den Link oben in der Tabelle. Ältere Versionen über das Github Archiv: https://github.com/mschlenstedt/LoxBerry-Plugin-Frequency-Counter/releases

Installation

Die Installation des Plugins erfolgt wie immer über die Pluginverwaltung des LoxBerrys.

Konfigurationsoptionen

Topic

Unter diesem Topic werden die Daten des Plugins an den MQTT Broker gepublisht. Default: freq_count

Sample Rate

Samplingrate, mit der die Frequenz am GPIO detektiert wird. Es wird der Mittelwert über diesen Zeitraum gebildet. Bei niedrigen Frequenzen eher höhere Werte wählen. Angabe in µs (Mikrosekunden). Default: 5

Refresh Rate

Refreshrate, mit der die erfassten Frequenzen an den MQTT Broker gesendet werden. Wählt hier nicht einen zu kleinen Wert! Kleine Werte belasten die CPU, den Broker und euer Netzwerk unnötig. Angabe in s (Sekunden). Default: 5

Frequency Counter 1-5

GPIOs, an denen die Frequenzen detektiert werden sollen. Bis zu 5 GPIOs können angegeben werden.

Hardware

CPU Last

Die Überwachung einer Frequenz kostet sehr viel CPU Last, da sehr schnelle Änderungen an den GPIOs erkannt werden müssen. Aus einem Raspberry 4 benötigt die Überwachung eines GPIOs ca. 12% CPU-Last. Nutzt das Plugin ausschließlich mit einem Raspberry Pi 3 oder 4 oder Zero2!

Das Plugin nutzt die Software PIGPIO. Laut Autor können Frequenzen bis zu 500 KHz (oder mehr) erkannt werden - und das ist Faktor 1000 (!!!) höher als die Digitalen Eingänge der Loxone Extensions erkennen können (max. 500 Hz.)!

Die Ausgänge der Sensoren werden an die GPIOs des Raspberrys angeschlossen. Achtet darauf, dass die GPIOs ausschließlich und maximal 3,3V vertragen! Wenn ihr 5V Sensoren anschließt, nutzt entsprechende Widerstände bzw. Spannungsteiler. 5V direkt an den GPIOs grillen auch den Raspberry (=kaputt).

Das Plugin erkennt eine wechselnde Flanke an den GPIOs, es ist also egal, ob ihr den Eingang als "High" oder "Low" beschaltet. Ihr könnt also gegen Ground (GND) oder +VCC (3.3V) schalten.

Ich empfehle zudem entsprechende Pullup- bzw. Pulldown-Widerstände zu verwenden, damit die Frequenzen sauber erkannt werden.

Weitere Informationen zum Beispiel hier: https://www.elektronik-kompendium.de/sites/raspberry-pi/2611131.htm

Einrichtung in der Loxone Config Software

Die Daten werden per MQTT an den Miniserver übertragen. Die Einrichtung der Virtuellen Eingänge wird hier erklärt: MQTT - Schritt für Schritt: MQTT -> Loxone

In den Gateway Settings müsst ihr noch "Expand JSON Data" aktivieren!

Zur Überwachung der Funktionalität des Plugins kann das Keepalive Topic verwendet werden. Dieses wird alle 60 Sekunden erneuert. Wenn sich dieser Wert also für 60 Sekunden nicht mehr ändert, läuft das Plugin nicht mehr ordnungsgemäß. Wie man einen sich ändernden Wert erkennt, ist im Wiki beschrieben: https://loxwiki.atlassian.net/wiki/spaces/LOX/pages/1525056058/nderung+eines+Wertes+erkennen Nutzt dann eine nachgeschaltete Ausschaltverzögerung von zum Beispiel 120s.

Folgende Werte werden per MQTT an den LoxBerry Broker übertragen:

Wert Beschreibung
freq_count_keepalive Keepalive Timestamp, wird alle 60s aktualisiert.
freq_count_last Timestamp der letzten Werteänderung und Übertragung an den Broker (Freq, Diff oder Tally)
freq_count_data_gpioX_gpio Überwachter GPIO
freq_count_data_gpioX_freq Ermittelte Frequenz
freq_count_data_gpioX_diff Zeitdifferenz zwischen zwei Messungen
freq_count_data_gpioX_tally Anzahl an ermittelten Impulsen/Flanken innerhalb der Zeitdifferenz

Beispiele

Mach mit!

Füge Deinen Sensor hier auf einer eigenen Unterseite hinzu, wenn Du ihn erfolgreich mit dem Plugin verwenden konntest! Das hilft auch anderen!

Hier findest Du einige Beispiele von Sensoren, die erfolgreich mit dem Plugin verwendet werden können:

Roadmap

Aktuell keine weiteren Funktionen geplant.

Fragen stellen und Fehler melden