Skip to content

Repository files navigation

Fronius_manager

Een script waarmee een Fronius inverter gemoduleerd kan worden. Dit is bijvoorbeeld te gebruiken wanneer bij een dynamisch energiecontract de prijzen negatief zijn en het geld kost om electriciteit aan het net te leveren.

Dit script is opgezet om samen te werken met een E_manager script https://github.com/Pyroil/E_manager

Wat doet dit script

  • Leest setpoint van E_manager via een JSON-bestand.

  • Schrijft het nieuwe setpoint via TCP/modpoll naar het register van de omvormer.

  • Leest de waarden van de omvormer via een API request

  • Schrijft key-variabelen voor E_manager naar JSON-bestand

  • Schrijft productie variabelen naar JSON-bestand de JSON-bestanden worden gelezen en geschreven via script shared_store.py

  • Een log bestand op basis van logger_setup.py (in folder /logs)

  • De belangrijkse gebruikte parameters staan in config.py

Het script is geschreven om te draaien als een systemd-service

Achtergrond

Fronius Symio handleidingen: https://manuals.fronius.com/html/4204260191/nl.html#0_t_0000000140 https://www.fronius.com/~/downloads/Solar%20Energy/Operating%20Instructions/42,0426,0222,EN.pdf

Instelling Fronius inverter

Om setpoint aanpassingen mogelijk te maken dienen de instelling van de inverter juist te zijn ingesteld Modbus instelling (IP-adres aanpassen naar eigen IP-adres)

Modbus

Modbus de hoogste prioriteit geven in EVU-editor

EVU-editor

Verder dienen in het script de juiste registers te worden geselecteerd. Dit varieert per inverter en vereist enig onderzoek waar het register van Model 123 begint. Bij mijn Symio 10.0-3-M is dit als volgt:

Model 123 begint bij 40238

self.base = 40238 self.reg_conn = 40242 (geeft aan dat er verbinding is) self.reg_limit = 40243 (Dit is het daadwerkelijke limiet) self.reg_enable = 40247 (enable het schrijven van de limiet)

Gebruik modpoll om module 123 te vinden. De naam is zichtbaar, gevolgd door de lengte van de module pi@Rpi4: $ modpoll -m "tcp" -t 4 -r "40238" -c "26" -1 "" modpoll 3.16 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2025 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: MODBUS/TCP, FC3 Slave configuration...: address = 1, start reference = 40238, count = 26 Communication.........: 192.168.2.5, port 502, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, holding register table

-- Polling slave... [40238]: 123 # module naam [40239]: 24 # lengte module register [40240]: 0 [40241]: 0 [40242]: 1 # connected [40243]: 100 # limiet van de omvormer [40244]: 0 [40245]: 0 [40246]: -1 [40247]: 1 # Enable setpoint setting [40248]: 1000 [40249]: 0 [40250]: 0 [40251]: -1 [40252]: 0 [40253]: -32768 [40254]: 0 [40255]: -32768 [40256]: 0 [40257]: 0 [40258]: -1 [40259]: 2 [40260]: 0 [40261]: 0 [40262]: -3 [40263]: 0

Vereisten

  • modpoll 3.16
  • Python 3.11
  • Package: requests (via pip)
  • subprocess en threading zijn onderdeel van de Python-standaardbibliotheek (niet apart installeren)
  • python3-systemd (via apt install python3-systemd, niet via pip - vereist libsystemd-dev)

Installatie

git clone https://github.com/Pyroil/Fronius_manager.git

pip install requests --break-system-packages
sudo apt install python3-systemd

modpoll installeren of updaten

modpoll (FieldTalk-versie van modbusdriver.com) wordt niet via apt of pip beheerd, maar als losse binary gedistribueerd. Download de gewenste versie van https://www.modbusdriver.com/downloads.html en installeer als volgt (pas <versie> en de architectuur aan naar jouw situatie, bijv. linux-x86_64 of linux_arm-eabihf voor een Raspberry Pi):

cd /tmp
wget https://www.modbusdriver.com/downloads/modpoll/<versie>/modpoll-<versie>-linux-x86_64.tar.gz
tar xzf modpoll-<versie>-linux-x86_64.tar.gz
sudo cp modpoll-<versie>-linux-x86_64/bin/modpoll /usr/local/bin/
sudo chmod +x /usr/local/bin/modpoll
modpoll

Let op: er bestaat ook een gelijknamig maar volledig ander project modpoll op PyPI (Modbus-naar-MQTT tool). Dat is niet compatibel met de -m/-r/-1-syntax die dit script gebruikt — gebruik uitsluitend de FieldTalk-versie van modbusdriver.com.

Licentie

Dit project is gelicenseerd onder CC BY-NC-SA 4.0 - vrij te gebruiken en te delen, aanpassingen toegestaan, maar niet voor commerciële doeleinden en met behoud van dezelfde licentie voor afgeleide werken. Zie LICENSE voor de volledige tekst.

About

Use Fronius inverter to balance load when power prices are negative

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages