Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

SandroK

Nachtrag:

Wenn ich dann nach dem Neustart in das Modul schaue, ist dies disconnect (Siehe Anlage)

VG Sandro

DS_Starter

Kannst du noch einen Ausschnitt vom Log der FHEM Startsequenz posten. Dort müssten Einträge von "Mengen" drin sein.

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

SandroK

Hallo Heiko hier der Output meiner Logdatei:


2016.06.27 08:44:26 0: Server started with 25 defined entities (fhem.pl:11655/2016-06-13 perl:5.020002 os:linux user:fhem pid:434)
2016.06.27 08:44:26 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 08:44:26 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 434
2016.06.27 08:44:26 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established
2016.06.27 09:11:28 3: DbRep Mengen - Connection to db mysql:database=fhem;host=localhost;port=3306 established
Undefined subroutine &main::timelocal called at ./FHEM/93_DbRep.pm line 359.
2016.06.27 11:00:09 1: Including fhem.cfg
2016.06.27 11:00:09 3: telnetPort: port 7072 opened
2016.06.27 11:00:11 3: WEB: port 8083 opened
2016.06.27 11:00:11 3: WEBphone: port 8084 opened
2016.06.27 11:00:11 3: WEBtablet: port 8085 opened
2016.06.27 11:00:13 2: eventTypes: loaded 87 events from ./log/eventTypes.txt
2016.06.27 11:00:24 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet_eval:
2016.06.27 11:00:24 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2016.06.27 11:00:26 3: Opening CUL_0 device /dev/ttyACM0
2016.06.27 11:00:28 3: Setting CUL_0 serial parameters to 9600,8,N,1
2016.06.27 11:00:28 3: CUL_0 device opened
2016.06.27 11:00:31 3: CUL_0: Possible commands: BbCFiAZNkGMKUYRTVWXefmLltux
2016.06.27 11:00:31 2: Switched CUL_0 rfmode to WMBus_T
2016.06.27 11:00:34 3: StromzaehlerNT: I/O device is CUL_0
2016.06.27 11:00:34 3: StromzaehlerHT: I/O device is CUL_0
2016.06.27 11:00:40 3: Wasserzaehler: I/O device is CUL_0
2016.06.27 11:00:44 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 11:00:46 2: DbRep Mengen - DB connect failed. Have a look if the credentials of logdb are right !
2016.06.27 11:00:46 1: Including ./log/fhem.save
2016.06.27 11:00:47 1: usb create starting
2016.06.27 11:00:52 3: Probing CUL device /dev/ttyAMA0
2016.06.27 11:00:52 3: Can't open /dev/ttyAMA0: Permission denied
2016.06.27 11:00:53 1: usb create end
2016.06.27 11:00:53 0: Featurelevel: 5.7
2016.06.27 11:00:53 0: Server started with 23 defined entities (fhem.pl:11655/2016-06-13 perl:5.020002 os:linux user:fhem pid:432)
2016.06.27 11:00:53 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2016.06.27 11:00:53 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 432
2016.06.27 11:00:53 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established

DS_Starter

Hi Sandro,

DbLog wird nach DbRep geladen, deswegen kriegt DbRep nicht die Logon-Daten. Die Reihenfolge muss andersherum sein bzw. DbLog sollte ohnehin gleich am Anfang mit starten.

Die andere Sache mit timelocal ... schau mal bitte ob das Modul Time::Local bei dir installiert ist, sollte eigentlich so sein.

Z.B. mit. perldoc perlmodlib

Wenn nicht installier das mal nach.  So jetzt muß ich aber ...  :)

Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

SandroK

HAllo Heiko,

das Disconnect Problem ist gelöst, habe die Modul-nr. auf 94 gesetzt nun ist er auch wieder connect.

Wenn ich einen Zeitbegrenzung bei den Attributen eingeben will, kommt folgender Fehler:

The Value for timestamp_begin is out of range - Undefined subroutine &main::timelocal called

Da scheint was zu fehlen.

ZitatDie andere Sache mit timelocal ... schau mal bitte ob das Modul Time::Local bei dir installiert ist, sollte eigentlich so sein.

Da musst Du mir helfen: Bei mir kommt ...

pi@RPI-FHEM:/opt/fhem/FHEM $ perldoc -f
Option f needs a following argument!

at /usr/share/perl/5.20/Pod/Perldoc/GetOptsOO.pm line 45.
Usage: perldoc [-hVriDtumFXlT] [-n nroffer_program]
    [-d output_filename] [-o output_format] [-M FormatterModule]
    [-w formatter_option:option_value] [-L translation_code]
    PageName|ModuleName|ProgramName

Examples:

    perldoc -f PerlFunc
    perldoc -q FAQKeywords
    perldoc -v PerlVar
    perldoc -a PerlAPI

The -h option prints more help.  Also try "perldoc perldoc" to get
acquainted with the system.                        [Perldoc v3.23]
pi@RPI-FHEM:/opt/fhem/FHEM $ perldoc -f perlmodlib
No documentation for perl function 'perlmodlib' found
pi@RPI-FHEM:/opt/fhem/FHEM $


raus. Ich gehe davon aus das perllibmod nachzuinstallieren ist. Wie geht das ?

Hier auch nochmals meine fheminfo:

Fhem info:
  Release  : 5.7 FeatureLevel: 5.7
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.20.2
  uniqueID : e3372d4b3832bb4f0d87f3eda68eedae
  upTime   : 00:11:25

Defined modules:
  CUL           : 1
  DbLog         : 1
  FHEMWEB       : 3
  FileLog       : 4
  HTTPSRV       : 1
  SVG           : 1
  WMBUS         : 3
  autocreate    : 1
  eventTypes    : 1
  notify        : 1
  readingsGroup : 1
  telnet        : 1
  weblink       : 1

Defined models per module:
  CUL           : CUL


VG Sandro


DS_Starter

Hi Sandro,

also das Problem Time::Local war mein Fehler. Ich habe es im Modul nicht explizit geladen. Bei mir ist es nicht aufgefallen.
Das habe ich jetzt nachgeholt.

Außerdem habe ich die Initialroutine umgebaut. Jetzt sollte das Modul auch dann auf "connect" gehen wenn DbLog erst später geladen wird oder später connected.
Beim FHEM Restart kommt zuerst "initialized" und nach ca. 5 Sek "connected" .. wenn die Verbindung klappt.

Probiere mal die hier angehängte Version.
Vergiß nicht die nach 94_DbRep umbenannte Datei zu löschen !

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

SandroK

Hallo Heiko,

das sieht schon vieeel besser aus.

Wo es hackt, ist wenn kein Startdatum angegeben wird, dann läuft er in ein Timeout.
Wie kann man das dynamisch halten und wie kann man die Sache insgesamt triggern ?

(Nimm's mir nicht übel, ich beschäftige mich erst seit einigen Wochen mit
FHEM, allerdings auch "nur" in Verbindung mit einem WAGO-Controller, da ich eine vernüftige Lösung
zum DatenLogging suchte :-) nun - der Appetit kam beim Probieren ... und schon war ein CUL an der Kiste)

Ich habe mal bissel dran rumgespielt, gefällt mir sehr sehr gut. Wenn er fertig gerechnet hat, dann muß
man nochmals den Browser refreshen und schon sind die Werte da :-)

Was mich jetzt noch interessiert, laut Deinem Screenshot logst Du bereits Differenzwerte (richtig ?)
was kann ich tun, um aus absolut Zählerständen was gescheites zu machen, Tagesverbrauch, Stundenverbrauch etc. ?

Dein 2. Screenshot ist eine ReadingGroup ? Kann man da eventuell eine Differenzberechnung ansetzen, ich würde das
nur für eine Visu benötigen, die Rohwerte können ruhig so in der DB liegen. Wenn ja, hast Du da einen Ansatz ?

VG Sandro

DS_Starter

Das ist super Sandro  :)

Den Timeout kannst du mit dem Attribut Timeout beeinflussen. Standard sind 60 Sekunden.
Hier kommt es auf die Performance deiner DB und der Datenmenge an. Hast du auch den Index wie im Eingangsthread angegeben angelegt ?

Wie ich das triggere, schreibe ich heute Abend. Das ist mir auf dem Tel jetzt zu stressig.  ;)
Aber ist ein Notify bzw. Mehrere weil ich insg. 5 DbRep Definitionen habe die alle in die Readingsgroup eingehen.

Du hast Recht, ich logge bereits Diff-Werte bzw. Einen Wert des Wechselrichters der immer seine aktuelle Leistung angibt. Dafür kann dann maxValue mit der Tagesaggregation verwendet werden.

Für deine Aufgabenstellung werde ich wohl das Modul gleich noch erweitern. DiffValue, welches  dann aus einem Periodenanfang und Ende (Aggregation) den Differenzwert in die Readings schreibt. Das wäre dann für solche Loggings wie deine wahrscheinlich eine günstige Variante.

Habe auch noch vor einen Wikieintrag anzulegen wo diese Fallbeispiele nachvollziehbar dargestellt werden.
Dauert halt alles ein bisschen  ;)

Schau dir ruhig mal Readingsgroup an. Das Tool ist sehr mächtig.
Vielleicht stellst du eine Frage dazu noch in einem anderen Umterforum. Ich müsste mich auch etwas näher damit befassen um deine Frage sicher zu beantworten.


Grüsse
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

SandroK

Hi Heiko,

vielen Dank für die schnelle Antwort. Du brauchst nicht zu hetzen, ich kann mir aber vorstellen das man froh ist, mal ein Feedback zur eigenen Entwicklung zu bekommen. :-)

Meine DB-Tabellen-Parameter siehst Du im Anhang 1 (Sollte alles richtig sein, den Idx hab ich dazugebaut, wegen nachfolgenden Sachverhalt)

Bei der Einrichtung gab/gibt es bei mir eh immer einen Fehler beim ersten Öffnen der Tabellen zumindest mit NaviCat(Light) welches ich benutze. (Siehe Anhang 2)
Dies ist aber ein anderes Ding.

Okay, wie gesagt - Danke erstmal - ich probiere weiter mit ReadingGroup etc. und zwischen drin muß ich auch noch bissel was arbeiten :-)

VG

DS_Starter

Ja, es ist gut zu erfahren dass die Arbeit nicht nur einen selbst sondern auch anderen hilft. Und dabei findet man auch Fehler die bei der eigenen Installation nicht auftreten.  ;)

Ich melde mich wieder ...
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hi Sandro,

hier die kurze Beschreibung des triggerns.
Ausgangslage ist dass über meinen SMA_Energymeter und Modul SMAEM die Differenzwerte für Bezug, Einspeisung, Kosten und Vergütung in der MySQL-DB regelmäßig gespeichert werden (alle 60 sek).
Die Wechselrichterwerte für die Tageswerte sind immer die jeweilige Leistung die er momentan abgibt. Geloggt wird alle 67 sek.
Für jede dieser Werte gibt es eine DbRep-Instanz mit dem Schema:


Bezug                    -> sumValue
Einspeisung           -> sumValue
Kosten                  -> sumValue
Vergütung             -> sumValue
Tageswerte            -> maxValue


Für die Ermittlung von Bezug, Einspeisung und Tageserzeugung verwende ich drei Definitionen mit dem AT-Kommando.
Hier als Beispiel die Def von recalc_Bezug:


define recalc_Bezug AT +*00:05:05 {if ($mday == 01) {my $rcb = strftime "%Y-%m-%d", localtime(time);; fhem ("attr Bezug timestamp_begin $rcb 00:00:00");; fhem ("set Bezug sumValue") } else {fhem ("set Bezug sumValue") } }


Das if in der Def sorgt dafür dass mit jedem 01. des Monats die Datumselektion weitergeschaltet wird. In einem anderen AT wird regelmäßig ein fhem.save ausgeführt. Dadurch beibt die Weiterschaltung nach einen FHEM Restart erhalten.

Für die Ermittlung von Kosten und Vergütung verwende ich jeweils eine Notify Definition. Hier das Beispiel für recalc_Kosten:


define recalc_Kosten NOTIFY 
Bezug:.*done {if ($mday == 01) {my $rck = strftime "%Y-%m-%d", localtime(time);; fhem ("attr Kosten timestamp_begin $rck 00:00:00");; fhem ("set Kosten sumValue") } else {fhem ("set Kosten sumValue") } }


IF macht das wie oben beschrieben.
Ansonsten wird dieser Vorgang angestoßen wenn die Berechnung von Bezug fertig ist (Event Bezug:.*done).
Die Readings adaptiere ich über das Attr readingsmap zu "Bezug_Summe_(kWh)" (im Falle von Bezug). Einfach für eine bessere Lesbarkeit.

Die erzeugten Readings führe ich dann über ein Readingsgroup zusammen. Wie ich die Def gemacht habe schreibe ich am Besten mal ins Wiki.

viele Grüße
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo zusammen,

im Eingangsthread habe ich wieder eine weiterentwickelte/korrigierte Version V2.9.7 eingehängt.
Was wurde geändert ?

* die deutesche commandref ist dabei
* der Fehler wegen fehlender Time::Local korrigiert
* das Format der Readingnamen habe ich angepasst damit keine unsupportet Characters mehr auftreten (restart bzw. reread)
* das Attribut readingmap wurde zu readingNameMap geändert, bitte anpassen falls verwendet
* die sql-calls in den Routinen countEntries, averageValue, sumValue geändert -> fix Problem wenn kein timestamp in Verbindung mit aggregation ist gesetzt
* weitere kleine Änderungen

Nach Übernahme FHEM restarten !

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hi Sandro,

du hattest mich doch nach der Readingsgroup Definition gefragt.
Ich werde sicherlich noch einige Zeit brauchen bevor ich dazu komme einen Wikieintrag zu erstellen.

Deswegen hier meine Readingsgroup Def so wie sie in der fhem.cfg steht. Soll als Anregung dienen eine eigene zu erstellen und anzupassen.


######################################################################
# Readingsgroup SMA Energy Meter Übersicht
######################################################################
define SMAEM_Uebersicht readingsGroup <%measure_power>,<01>,<>,<02>,<>,<03>,<>,<04>,<>,<05>,<>,<06>,<>,<07>,<>,<08>,<>,<09>,<>,<10>,<>,<11>,<>,<12>,<>,<13>,<>,<14>,<>,<15>,<>,<16>,<>,<17>,<>,<18>,<>,<19>,<>,<20>,<>,<21>,<>,<22>,<>,<23>,<>,<24>,<>,<25>,<>,<26>,<>,<27>,<>,<28>,<>,<29>,<>,<30>,<>,<31> Bezug:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Einspeisung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Tageserzeugung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Verguetung:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31 Kosten:.*-01,<>,.*-02,<>,.*-03,<>,.*-04,<>,.*-05,<>,.*-06,<>,.*-07,<>,.*-08,<>,.*-09,<>,.*-10,<>,.*-11,<>,.*-12,<>,.*-13,<>,.*-14,<>,.*-15,<>,.*-16,<>,.*-17,<>,.*-18,<>,.*-19,<>,.*-20,<>,.*-21,<>,.*-22,<>,.*-23,<>,.*-24,<>,.*-25,<>,.*-26,<>,.*-27,<>,.*-28,<>,.*-29,<>,.*-30,<>,.*-31
attr SMAEM_Uebersicht alias Tagesübersicht Einpeisung / Bezug / Ertrag
attr SMAEM_Uebersicht cellStyle { "c:0" => 'style="text-align:left;;color:green;;font-weight:normal"'}
attr SMAEM_Uebersicht group Energie Übersicht
attr SMAEM_Uebersicht mapping {Bezug => "Bezug (kWh)", Einspeisung => "Einspeisung (kWh)", Tageserzeugung => "Erzeugung (kWh)",\
Verguetung => "Ertrag (€)", Kosten => "Stromkosten (€)"}
attr SMAEM_Uebersicht nameStyle style="text-align:center;;color:black;;font-weight:bold"
attr SMAEM_Uebersicht room Energie
attr SMAEM_Uebersicht valueFormat { ($VALUE ne "-") ? "%.2f" : "-" }\

attr SMAEM_Uebersicht valueStyle style="text-align:center"
attr SMAEM_Uebersicht verbose 1


Die einzelnen Erläuterungen dazu findest du im Wiki unter http://www.fhemwiki.de/wiki/ReadingsGroup

Grüsse
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo zusammen,

die angehängte Version V2.9.9 enthält eine Korrektur für die Funktion "fetchrows". Nun werden auch Datensätze  die  Leerzeichen in der VALUE-Spalte enthalten vollständig selektiert (zum Beispiel schreibt das SYSMON-Modul solche Einträge).
Weiterhin habe ich die englische Commandref fertig ergänzt. Wenn nichts weiter auffallen solte werde ich das Modul in Kürze dem Repository hinzufügen.

(Die Version ist wieder im Eingangsthread zu finden).

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Tobias

Hi,
DbLog ist ein Blocking Modul, wie schon richtig bemerkt ;)
Grund ist das ich bisher kein Veranlasung sah das anders zu machen. DbLog ist zum Loggen da bzw zur Anzeige von SVG´s. Um die Chartfunktion perfomant zu haben gibt es diese 2 Indices.
Ich habe 1 DBLog Instanz als postgre Datenbank auf einem Cubietruck. Meine SVGs sind sehr schnell generiert, warum sollte man also das Modul komplett umkrempeln?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter