Wie kann ich die MQTT-Daten in der Influx DB ablegen

Überwachung der Solaranlage per eMail oder Pushover und Steuerung von Geräten mit Smart Home Zentralen. PV-Monitoring und Geräten mit Tasmota Firmware
msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

Hallo,

ersteinmal ein riesiges Kompliment an dieses Forum hier. Dieser Support und Anleitungen - Wahnsinn.

Ich bin seit einigen Tagen Besitzer einer Batteriespeicheranlage.

Auf der Such nach einem Ersatz der sehr mäßigen Software "Watchpower" bin ich auf diese Seite gestoßen und habe schnell gemerkt, dass ich meinen Raspi endlich mal für etwas Sinvolles einsetzten kann.

Ich habe jetzt das Grafana-Board auf dem Raspi und es sieht schon alles sehr gut aus. Ich habe auch schon einige Buttons hinzugefügt. Z.B. "#PBCVXX_X # Set battery re-charge voltage". Das funktioniert auch. Ich kann das direkt am Gerät oder im Mqtt-Protokoll überprüfen. Nur kann ich das nicht in Grafana anzeigen. Der Grund ist ja wohl der, dass die MQTT-Daten nicht alle in die Influx DB gespeichert werden.

So jetzt endlich meine Frage. Wie kann ich die MQTT-Daten in der Influx DB ablegen? Also neue Tabelle anlgen und Daten speichern?

LG
PIP MPP 5048

Benutzeravatar
Ulrich
Administrator
Beiträge: 1685
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von Ulrich »

Die MQTT Daten sollten alle in die Influx gespeichert werden. Hast Du dich an die Beschreibung gehalten?
download/MQTT%20Informationen%20zur%20Solaranzeige.pdf

Hier findest du auch noch nützliche Inforamtionen:

viewtopic.php?f=13&t=353&p=1902&hilit=MQTT#p1902
--------------------------------------
Ulrich [Admin]

msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

Hallo Ulrich,

ich glaube ich verstehe da was falsch. Also ich kann im Grafana per HTML den Wert "Re-charing-voltage" setzen:

<a href="http://solaranzeige.local/befehl.steuer ... l=PBCV49_0" target="frame" ><button style="background: #cccccc; color: black; width: 95%; margin: 1px;">Setze 49 V untere Grenze</button></a>

Im Broker kann ich das dann auch sehen:
broker.PNG
broker.PNG (3.47 KiB) 2497 mal betrachtet
Diesen Wert möchte ich in Grafana anzeigen. Das geht nur in dem ich aus einer DB auslese, richtig? In der DB sehe ich folgende Tabellen:
influx.PNG
influx.PNG (3 KiB) 2497 mal betrachtet
In keiner dieser Tabellen steht mein Wert. Ich hätte auch erwartet, dass da eine neue Tabelle erscheint.

Was habe ich bisher gemacht. Ich hatte lt. Installationanleitung die user.config.php entsprechend ausgefüllt. Ging ja alles damit, bis auf das auslesen.

Nach deinem Hinweis habe ich mir nocheinmal die MQTT-Anleitung angeschaut. Habe gesehen, dass man ein 1.user.config.php anlegen muß. Habe das gemacht, die alte config umbenannt und die neue 1.user.config.php entsprechend der originalen config angepasst. Zusätzlich habe ich noch
"solaranzeige/anzeige/1/#"; hinzugefügt

siehe hier:
mqtt_topic.PNG
mqtt_topic.PNG (6.11 KiB) 2497 mal betrachtet
Leider ging danach nichts mehr. Vom MQtt gab es keine Rückmeldung mehr. Habe jetz wieder die originale user.config.php aktiviert mit dem zusätzlichen Eintrag "solaranzeige/anzeige/1/#"

Jetzt funktioniert wieder alles wie vorher.

Wo ist mein Fehler?
PIP MPP 5048

Benutzeravatar
Ulrich
Administrator
Beiträge: 1685
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von Ulrich »

Bitte lese einmal den Unterschied zwischen einer einzel Geräte Version und einer Multi-Regler-Version nach.
So wie ich heraus lese, hast du eine Einzel-Geräte Version.

Dann sollte in der lokalen Influx Datenbank (normalerweise Datenbank "solaranzeige") ein Measurement "MQTT" auftauchen und dort sollten die Daten zu finden sein.

Falls das nicht der Fall ist, setze bitte einmal den Tracelevel auf 10 in der Datei mqtt_prozess.php. Dann kann man in der LOG Datei /var/www/log/solaranzeige.log höchstwahrscheinlich etwas sehen.
--------------------------------------
Ulrich [Admin]

msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

Ich bin in der Anleitung ein wenig durcheinander gekommen:
download/MQTT%20Informationen%20zur%20Solaranzeige.pdf

Mir war auch bewusst, dass ich keinen Multi-Regler habe

Auf Seite 3 steht "Daten empfangen bis Version 4.4.6

Da ich Version 4.6.4. habe dachte ich ich muß Konfigurieren was ab Seite 6 beschrieben ist (ab Version 4.5). Ist das nicht so?
Außerdem steht auf Seite 3 etwas von einer Datei: mqtt.config.neu.php, welche ich nicht habe.

Hier mal die Fehlermeldung:
kein_Laderegler_ausgewaehlt.PNG
kein_Laderegler_ausgewaehlt.PNG (11.27 KiB) 2475 mal betrachtet
Ich hoffe du kannst wa damit anfangen.

In der user.config.php habe ich einen Regler ausgewählt:
regler.PNG
regler.PNG (12.14 KiB) 2475 mal betrachtet
PIP MPP 5048

Benutzeravatar
Ulrich
Administrator
Beiträge: 1685
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Kontaktdaten:

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von Ulrich »

Kann es sein, dass du eine 1.user.config.php im Unterverzeichnis /var/www/html/ hast, die aber leer oder ungültig ist?

An dem Vorhandensein dieser Datei erkennt das Programm, dass es sich um eine Multi-Regler-Version handelt. Wenn die Datei vorhanden ist, muss die gesamte Konfiguration danach aufgebaut sein. Bei einer einzel-Geräte-Version darf die Datei nicht vorhanden sein.
--------------------------------------
Ulrich [Admin]

msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

Die Datei war da mal so drin. Vielleicht kommt da auch die Fehlermeldung her. Denn sei 06.06.17:31 habe ich keine Fehlermeldung mehr.
PIP MPP 5048

msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

Das größte Problem war eigentlich zu verstehen, wer hier sendet und empfängt, wann was abgespeichert wird und wo. Ich kann mir vorstellen, das ich nicht der Einzige bin dem das so geht. Deshalb werde ich einfach mal meine Einstellungen hier posten. Vielleicht hilft es ja jemanden. Ich habe einen Wechselrichter von Steca PLI 5000-48 konfiguriert. Das Prinzip sollte aber auch für alle anderen Geräte das Gleiche sein.

Hier erstmal das Relevante aus der user.config.php
user_config_php.PNG
hier meine Befehle.ini
Befehle_ini.PNG
Befehle_ini.PNG (8.17 KiB) 2341 mal betrachtet
Die Befehle PBDV, PBCV, POP, PPCP habe ich unter "Node-Red" konfiguriert und getestet. Funktioniert wunderbar.
hier mal ein kleiner Screenshot:
Node_red.PNG
Ich habe die Konfiguration in eine Json-Datei exportiert, welche man sich mich Node-Red anschauen kann. Gibt es bestimmt noch andere Programme die das können. Eine Anleitung zur Installation von Node-Red unter Windows habe ich hier gefunden:

https://wiki.instar.de/Erweitert/OpenHA ... r_Windows/

LG
Dateianhänge
Node_Red_MQTT_Befehle.json
(8.98 KiB) 101-mal heruntergeladen
PIP MPP 5048

kxn
Beiträge: 26
Registriert: Mo 19. Aug 2019, 16:22

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von kxn »

Super was du da gemacht hast.
Endlich mal was nach meinem Geschmack.

Ich bin gerade dabei das einzubauen.
Könntest du die Volt zahlen erklären, mein system ist ein 24V system.
Du hast es ziemlich gut erklärt, super.
Aber könntest du die Begriffe PCB usw. noch erklären mit diesen ganzen Abkürzungen habe ich schon weig zu kämpfen.

Und sorry noch etwas. In Iobroker wo der Mqtt Server ist bekomme ich diesen Datenmüll:
Zwischenablage01.jpg

msc
Beiträge: 34
Registriert: Fr 5. Jun 2020, 14:38

Re: Wie kann ich die MQTT-Daten in der Influx DB ablegen

Beitrag von msc »

PCP usw. habe ich hier im Forum gefunden. Da sind die Begriffe ja ganz gut erklärt.

Code: Alles auswählen

#Axpert Commands and examples
#Q1		# Undocumented command: LocalInverterStatus (seconds from absorb), ParaExistInfo (seconds from end of Float), SccOkFlag, AllowSccOnFlag, ChargeAverageCurrent, SCC PWM Temperature, Inverter Temperature, Battery Temperature, Transformer Temperature, GPDAT, FanLockStatus, FanPWMDuty, FanPWM, SCCChargePowerWatts, ParaWarning, SYNFreq, InverterChargeStatus
#QPI            # Device protocol ID inquiry
#QID            # The device serial number inquiry
#QVFW           # Main CPU Firmware version inquiry
#QVFW2          # Another CPU Firmware version inquiry
#QFLAG          # Device flag status inquiry
#QPIGS          # Device general status parameters inquiry
                # GridVoltage, GridFrequency, OutputVoltage, OutputFrequency, OutputApparentPower, OutputActivePower, OutputLoadPercent, BusVoltage, BatteryVoltage, BatteryChargingCurrent, BatteryCapacity, InverterHeatSinkTemperature, PV-InputCurrentForBattery, PV-InputVoltage, BatteryVoltageFromSCC, BatteryDischargeCurrent, DeviceStatus,
#QMOD           # Device mode inquiry P: PowerOnMode, S: StandbyMode, L: LineMode, B: BatteryMode, F: FaultMode, H: PowerSavingMode
#QPIWS          # Device warning status inquiry: Reserved, InverterFault, BusOver, BusUnder, BusSoftFail, LineFail, OPVShort, InverterVoltageTooLow, InverterVoltageTooHIGH, OverTemperature, FanLocked, BatteryVoltageHigh, BatteryLowAlarm, Reserved, ButteryUnderShutdown, Reserved, OverLoad, EEPROMFault, InverterSoftFail, SelfTestFail, OPDCVoltageOver, BatOpen, CurrentSensorFail, BatteryShort, PowerLimit, PVVoltageHigh, MPPTOverloadFault, MPPTOverloadWarning, BatteryTooLowToCharge, Reserved, Reserved
#QDI            # The default setting value information
#QMCHGCR        # Enquiry selectable value about max charging current
#QMUCHGCR       # Enquiry selectable value about max utility charging current
#QBOOT          # Enquiry DSP has bootstrap or not
#QOPM           # Enquiry output mode
#QPIRI          # Device rating information inquiry - nefunguje
#QPGS0          # Parallel information inquiry
                # TheParallelNumber, SerialNumber, WorkMode, FaultCode, GridVoltage, GridFrequency, OutputVoltage, OutputFrequency, OutputAparentPower, OutputActivePower, LoadPercentage, BatteryVoltage, BatteryChargingCurrent, BatteryCapacity, PV-InputVoltage, TotalChargingCurrent, Total-AC-OutputApparentPower, Total-AC-OutputActivePower, Total-AC-OutputPercentage, InverterStatus, OutputMode, ChargerSourcePriority, MaxChargeCurrent, MaxChargerRange, Max-AC-ChargerCurrent, PV-InputCurrentForBattery, BatteryDischargeCurrent
#QBV		# Compensated Voltage, SoC
#PEXXX          # Setting some status enable
#PDXXX          # Setting some status disable
#PF             # Setting control parameter to default value
#FXX            # Setting device output rating frequency
#POP02          # set to SBU
#POP01          # set to Solar First
#POP00          # Set to UTILITY
#PBCVXX_X       # Set battery re-charge voltage
#PBDVXX_X       # Set battery re-discharge voltage
#PCP00          # Setting device charger priority: Utility First
#PCP01          # Setting device charger priority: Solar First
#PCP02          # Setting device charger priority: Solar and Utility
#PGRXX          # Setting device grid working range
#PBTXX          # Setting battery type
#PSDVXX_X       # Setting battery cut-off voltage
#PCVVXX_X       # Setting battery C.V. charging voltage
#PBFTXX_X       # Setting battery float charging voltage
#PPVOCKCX       # Setting PV OK condition
#PSPBX          # Setting solar power balance
#MCHGC0XX       # Setting max charging Current          M XX
#MUCHGC002      # Setting utility max charging current  0 02
#MUCHGC010      # Setting utility max charging current  0 10
#MUCHGC020      # Setting utility max charging current  0 20
#MUCHGC030      # Setting utility max charging current  0 30
#POPMMX         # Set output mode       M 0:single, 1: parrallel, 2: PH1, 3: PH2, 4: PH3

#notworking
#PPCP000        # Setting parallel device charger priority: UtilityFirst - notworking
#PPCP001        # Setting parallel device charger priority: SolarFirst - notworking
#PPCP002        # Setting parallel device charger priority: OnlySolarCharging - notworking
#notworking, ganz unten, stimmt nicht. Bei mir funktionieren die Befehle PPCP000, PPCP001, PPCP002. PCP003 gibt es auch noch.

Etwas schwierig war nur herauszufinden welcher Befehl den nun wirklich welche Einstellung am Gerät verändert. Da ist die Beschreibung manchmal nicht ganz eindeutig. Das habe ich dann durch probieren herausgefunden. Die Befehle die ich in dem Node-Red Json-File benutze habe ich ja durch die Kommentare erklärt und verweise ja noch sogar auf die Programm-Nummern im Steca-Manual.

Bzgl- deines Datenmülls. Da kann ich dir nicht weiterhelfen. Was mir aber noch aufgefallen ist, ist das ich die Nutzdaten in Node-Red als String und nicht als Zahl eingeben muß. Vielleicht hängt das damit zusammen.
PIP MPP 5048

Antworten