[gelöst] MQTT Ansatz für PV-Anlage Anker solix2mqtt

Begonnen von Clyde, 02 Februar 2025, 16:07:22

Vorheriges Thema - Nächstes Thema

Nuems

Gute Frage...
Eine zweite FHEM-Instanz gibt es nicht, als MQTT-Geräte sind/waren zwei Shelly 1 PM Gen3 sowie zwei Shelly-RGB-Birnen vorhanden, außerdem eben solix2mqtt und FHEM selbst. Ichhabe jetzt ein langes Wochenende und schaue mal.

Müller

Hallo,

könnte mir Jemand helfen meine SOlix in FHEM einzubinden?
Ich habe die SOftware von Github installiert und gestartet und bekomme kein device in FHEM angelegt
(autocreate und MQTT2_FHEM_Server auf "simple" sind eingestellt.

Danke
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Ingo298

#32
Habe heute mal meine Solix2 E1600 AC in Fhem eingebunden, da es noch keine template gibt habe ich mir händisch weitergeholfen.
Evtl. könnte man es noch eleganter Lösen aber dazu fehlt mir das wissen.

defmod Anker_Solix MQTT2_DEVICE solix2mqtt
attr Anker_Solix DbLogExclude .*
attr Anker_Solix event-on-change-reading .*
attr Anker_Solix group Solar
attr Anker_Solix icon tablet_bat_66
attr Anker_Solix jsonMap x_solarbank_info_solarbank_list_1_photovoltaic_power:solar_power x_statistics_1_total:energy_total x_solarbank_info_total_charging_power:batt_in x_solarbank_info_battery_discharge_power:batt_out x_solarbank_info_solarbank_list_1_battery_power:batt_level x_solarbank_info_micro_inverter_power:micro_inverter_power x_solarbank_info_solar_power_1:panel1_power x_solarbank_info_solar_power_2:panel2_power x_home_load_power:home_power x_grid_info_grid_to_home_power:grid_power
attr Anker_Solix readingList solix2mqtt:solix/site_homepage:.* x_site_homepage\
solix2mqtt:solix/site/Home/scenInfo:.* { json2nameValue($EVENT, 'x_', $JSONMAP) }
attr Anker_Solix room 02_0 Solar,MQTT2_DEVICE
attr Anker_Solix stateFormat Solar: solar_power Watt Batterie: batt_level %
attr Anker_Solix userReadings batt_in_Wh integral {ReadingsVal($name,"batt_in",0)/3600},\
batt_in_kWh {round (ReadingsVal($name,"batt_in_Wh",0)/1000,3)},\
batt_out_Wh integral {ReadingsVal($name,"batt_out",0)/3600},\
batt_out_kWh {round (ReadingsVal($name,"batt_out_Wh",0)/1000,3)},
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

Ingo298

Nach anfänglicher Euphorie nun die Ernüchterung,
am Anfang werden die Daten minütlich aktualisiert nach ca.5 Minuten nur noch im 5 Minuten Rythmus.
Wenn ich die App am Handy öffne werden die Daten wieder für ca. 5 Minuten minütlich aktualisiert.
Ist das bei euch auch so ?   
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

Klaus_R

Zitat von: Ingo298 am 06 Juni 2025, 08:38:24am Anfang werden die Daten minütlich aktualisiert nach ca.5 Minuten nur noch im 5 Minuten Rythmus.
Wenn ich die App am Handy öffne werden die Daten wieder für ca. 5 Minuten minütlich aktualisiert.
Ist das bei euch auch so ?   

Nein bei mir kommen die sogar alle 30 Sek. und das schon immer (ca. 6 Wochen)
Gruß Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

Ingo298

Zitat von: Klaus_R am 06 Juni 2025, 10:05:12
Zitat von: Ingo298 am 06 Juni 2025, 08:38:24am Anfang werden die Daten minütlich aktualisiert nach ca.5 Minuten nur noch im 5 Minuten Rythmus.
Wenn ich die App am Handy öffne werden die Daten wieder für ca. 5 Minuten minütlich aktualisiert.
Ist das bei euch auch so ?   

Nein bei mir kommen die sogar alle 30 Sek. und das schon immer (ca. 6 Wochen)
Gruß Klaus

Hast du auch ein Solix2 E1600 AC? Wie hast du sie in Fhem eingebunden ?
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

Nuems

Zitat von: Beta-User am 28 Mai 2025, 15:57:48
Zitat von: Nuems am 28 Mai 2025, 15:35:12Edit: Es lag wahrscheinlich daran, dass ich (um dem Verhalten eines Shellys nachvollziehen zu können) für MQTT2-Server das Attribut verbose=4 gesetzt hatte. Dass dann viel im Log landet, ist zu erwarten.
Soweit ist es logisch, aber: Warum macht der Server überhaupt ein "PUBLISH"? Ohne in den Code geschaut zu haben, würde ich mal annehmen, dass das nur dann der Fall ist, wenn irgendwas auch eine entsprechende subscription angemeldet hat, also gesendet wird, und nicht nur was empfangen. Also: Wer will "alles" wissen?
Hast du irgendwo ein 2. FHEM, das sich mit MQTT2_CLIENT verbindet? Dann ggf. dort die subscriptions einschränken.

Ich habe mir das noch einmal angesehen. Zum einen ist solix2mqtt ungeheuer gesprächig - das Log des zugehörigen FHEM-Devices ist seit Inbetriebnahme Ende Mai auf stolze 290 MB angewachsen, denn es kommen alle 30 Sekunden ca. 6kB. Mit einem Texteditor oder dem FHEM-GUI ist das Arbeiten mit solch großen Logs ein wenig sperrig.
Andere Subscriptions habe ich nicht gefunden, aber ich weiß nicht, welchen Einfluss die Anker-App hat. Da für Einstellungen bislang die App zuständig ist, kann ich darauf vorerst nicht verzichten.

Klaus_R

ZitatHast du auch ein Solix2 E1600 AC? Wie hast du sie in Fhem eingebunden ?
Solix2 E1600 Pro
Fhem erhält unmengen Daten von solix2mqtt.
In solix2mqtt.sh  steht bei mir:
#!/bin/sh
export S2M_USER=Mailadresse
export S2M_PASSWORD=xxxyyyy
export S2M_COUNTRY=DE
export S2M_MQTT_URI=mqtt://192.168.2.22:1883
export S2M_MQTT_TOPIC=solix
cd /home/pi/solix2mqtt/
npm run start
 

Die Datenflut habe ich einigermassen gebändigt. Ob es bessere Wege gibt??
readingsList besteht aus einer Zeile:
solix2mqtt:solix/site/PV_Sued/scenInfo:.* { json2nameValue($EVENT, '', $JSONMAP, '__') }

dann noch
jsonMap
solarbank_info_battery_discharge_power:__Akku_Entladen
grid_info_photovoltaic_to_grid_power:__Haus_zu_Netz
solarbank_info_solar_power_1:__Solar_Panel1
solarbank_info_solar_power_2:__Solar_Panel2
solarbank_info_solar_power_3:__Solar_Panel3
solarbank_info_solar_power_4:__Solar_Panel4
solarbank_info_solarbank_list_1_photovoltaic_power:__Solar_Ertrag
#solarbank_info_total_photovoltaic_power:__Solarertrag1
solarbank_info_to_home_load:__Haus_von_Solar
#solarbank_info_solarbank_list_1_charging_power:__Fluss_ins_Haus1
home_load_power:__Haus_Strombedarf
solarbank_info_solarbank_list_1_output_power:__Haus_von_Akku+Solar
#solarbank_info_total_output_power:__Fluss_ins_Haus4
solarbank_info_solarbank_list_1_battery_power:__Akku_Füllstand_Proz.
solarbank_info_total_battery_power:0
grid_info_grid_to_home_power:__Haus_von_Netz
#other_loads_power:__Haus_Strombedarf
statistics_1_total:__Zaehler_Ertrag_Gesamt
#statistics_2_total:__Einsparung_CO2_kg
#retain_load:__Akt_eingestellter_Selbstbehalt
solarbank_info_solarbank_list_1_bat_charge_power:__Akku_Laden
solarbank_info_total_charging_power:0
solarbank_info_micro_inverter_power:__solarbank_info_micro_inverter_powerWasIstDas
#statistics_3_total:__Einsparung_EUR

Ist sicher noch nicht ganz ausgereift. z.B. ist mir nicht klar was solarbank_info_micro_inverter_power ist. Werte unterscheiden sich von solarbank_info_solarbank_list_1_photovoltaic_power
Ausserdem werkelt im Zählerschrank ein Shelly3EM (war schon länger vorhanden)
Die Steuerung des Stromflusses funktioniert nach meiner Erfahrung recht gut und schnell!
Gruß Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

Ingo298

Solix2 E1600 Pro

Dann liegt es wohl an der AC Variante, die Daten gehen nur Live in die Cloud solange die APP geöffnet
und im Vordergrund ist, ansonsten nur alle 5 Min.
Das ist auch so wenn ich den Hauptaccount zur Anmeldung im Start-Scrpit nutze.

meine start.sh
#!/bin/sh
HERE=$(dirname $(realpath ${0}))
cd ${HERE}
export S2M_USER="E-Mail MitgliederAccount"
export S2M_PASSWORD="PW MitgliederAccount"
export S2M_COUNTRY=DE
export S2M_MQTT_URI=mqtt://192.168.2.3:1883
export S2M_MQTT_TOPIC=solix
npm run start


mein solix2mqtt Ordner liegt allerdings unter /opt/solix2mqtt

meine solix2mqtt.service
[Unit]
Description=MQTT data provider for Anker Solix devices
After=network-online.target

[Service]
Type=simple
User=fhem
ExecStart=/opt/solix2mqtt/start.sh

[Install]
WantedBy=multi-user.target


alles andere habe ich auch so bzw. bei den "jsonMap" und "readingsList" so ähnlich.
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

JoWiemann

Hallo,

ihr wisst schon, dass solix2mqtt von tomquist ein Standard Polling von 60 Sekunden hat?!

Auf der GitHub Seite werden die weiteren Konfigurations-Paramter aufgelistet. U.a.

S2M_POLL_INTERVAL

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Ingo298

#40
ihr wisst schon, dass solix2mqtt von tomquist ein Standard Polling von 60 Sekunden hat?!
Ja das weiß ich, Standard ist sogar mittlerweile 30sec. wenn aber die Solarbank (in meinem Fall die Solix2 E1600 AC) selbst nur alle
5 min. ohne geöffnete APP am Handy die Daten in der Cloud aktualisiert brauchst es auch keinen kürzeren Intervall.
Aktuell behelfe ich mir, indem ich in ein ausgedienten Handy die APP immer offen halte und somit
die Daten Live in der Cloud geladen werden. Nicht schön und auch nicht effizient aber vielleicht
gibt es mal eine andere Lösung dafür.
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

Ingo298

AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/charge_total:.* charge_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/charge_unit:.* charge_unit
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/discharge_total:.* discharge_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/discharge_unit:.* discharge_unit
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/charging_pre:.* charging_pre
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/electricity_pre:.* electricity_pre
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/others_pre:.* others_pre
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/statistics/total_energy:.* total_energy
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/statistics/total_co2_savings:.* total_co2_savings
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/statistics/total_money_savings:.* total_money_savings
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/battery_discharging_total:.* battery_discharging_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/solar_to_grid_total:.* solar_to_grid_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/grid_to_home_total:.* grid_to_home_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/ac_out_put_total:.* ac_out_put_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/home_usage_total:.* home_usage_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/solar_total:.* solar_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/trend_unit:.* trend_unit
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/battery_to_home_total:.* battery_to_home_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/smart_plug_info:.* smart_plug_info
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/local_time:.* local_time
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/grid_to_battery_total:.* grid_to_battery_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/grid_imported_total:.* grid_imported_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/solar_to_battery_total:.* solar_to_battery_total
AnkerSolix2_EW:ankersolix2/0/7d159c94-8d06-427b-94ad-c683a4cf3087/energyanalysis/day/solar_to_home_total:.* solar_to_home_total

wann bekommt man diese Daten, diese finde ich innerhalb von FHEM bzw. MQTT-Explorer nicht
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3