Marstek Venus / Duravolt PnP Thuisaccu Modbus koppeling

Pagina: 1 2 ... 9 Laatste
Acties:

Acties:
  • +30 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Om veel raadwerk bij vragen te voorkomen:

Het zou handig zijn dat iedereen zijn profiel bijwerkt met zijn setup!

Kies Profiel > Bewerken > Scrol dan helemaal naar beneden voor Signature.
Hoe completer/specifieker hoe beter!
Afbeeldingslocatie: https://tweakers.net/i/6Ay04SpHrORrDSFJp5KOWN1zg9o=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/cJTzb7mrqDk1JfZwK46S6bPV.jpg?f=user_large

Laatste wijziging: 17-5-2025
Aangepaste code van @Disksoft en @Arjen S , orgineel van @scruysberghs
- Led functie Wifi indicatie
- Een paar namen aangepast voor hopelijk snellere code
- Berekening Remaining
- HZ verwijderd
- Offgrid op niet actief
- Meer timers naar 5 minuten voor offloading Marstek processor
- Code omgezet naar Github
- Interval AC Power 10S
- Interval Battery Power 10S
- Extra configs aangepast voor 2/3 aparte Lilygo's (Ongetest)
- Extra configs aangepast voor 2/3 aparte Elwin (Ongetest)
- Documentatie Modbus en Pinout verplaatst.
- Venus Control en MarstekMonitor toegevoegd
- Bitmask voor error codes nu correct in HEX met dank aan pascallj
- Nieuwe layout modbus kabel
- Nieuwe 3D Behuizing Lilygo
- Beschrijving control settings
- Interval tussen commando's 30ms
- Tragere sensors die een melding (gele tekst) genereren benoemd met # Slow Sensor
- Github bijgewerkt

Dit topic is niet voor MQTT of andere koppelingen of andere discussies voor de Marstek Venus / Duravolt PnP, daarvoor kun je hier terecht: https://gathering.tweakers.net/forum/list_messages/2262054

Link naar Modbus Documentatie: https://duravolt.nl/wp-co...lug-in-Battery-Modbus.pdf
Tekening van de kabel met de Weipu SP17 connector: https://cdn.shopify.com/s...nterface.pdf?v=1735295327

LET OP! Nieuwe Layout Modbus Kabel voor het nieuwe kleinere V2 model dat sinds eind april 2025 wordt geleverd!
De Data GROUND van modbus sluit je niet aan!
Afbeeldingslocatie: https://tweakers.net/i/je4808cGpOYcnHeAymLgnwU2BUE=/800x/filters:strip_icc():strip_exif()/f/image/Q1jdUY8HTJxNQ5572gThIAXX.jpg?f=fotoalbum_large

Verlengkabel als je de bestaande connector niet wil afknippen:
Jst Xh2.54, Female, 10cm, 6 Pin
Afbeeldingslocatie: https://tweakers.net/i/0AkXivjghz6wCu0rcM4CVyfVW0c=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/S3mYduULR1VesoPxt4GqY0G0.jpg?f=user_large
Afbeeldingslocatie: https://tweakers.net/i/E8pEzO2xUsdwiQH8fJQTGaBmryk=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/IUiJUcG1HawV6mFYBhlVYQQM.jpg?f=user_large

Control mogelijkheden Lilygo / Elfin:
  • Marstek RS485 Control Mode
    Zet bediening via Modbus aan of uit. Is alleen van toepassing op:
    • Marstek Forcible Charge/Discharge
      Forceer actie: stoppen, laden of ontladen
    • Marstek Forcible Charge Power
      Als bovenstaande actie laden is, limiteer het tot dit ingestelde vermogen (tenzij 'Marstek Max. Charge Power' lager is)
    • Marstek Forcible Discharge Power
      Als bovenstaande actie ontladen is, limiteer het tot dit ingestelde vermogen (tenzij 'Marstek Max. Discharge Power' lager is)
    • Marstek Charge To SOC
      Breng de batterij (laad/ontlaad) eenmalig naar dit ingestelde percentage (met een min/max van de 'Cutoff' percentages) en ga daarna in Standby
  • Marstek User Work Mode
    Kies de modus die de batterij moet gebruiken (handmatig, NOM, AI)
  • Marstek Backup Function
  • Zet het back-upstopcontact aan/uit.
  • Marstek Charging Cutoff Capacity
    Stop laden altijd bij dit percentage
  • Marstek Discharging Cutoff Capacity
    Stop ontladen altijd bij dit percentage
  • Marstek Max. Charge Power
    Limiteer laadvermogen altijd tot dit ingestelde vermogen
  • Marstek Max. Discharge Power
    Limiteer ontlaadvermogen altijd tot dit ingestelde vermogen
Er zijn nu 4 opties:
  • - ESP Home via LilyGo T-Can484, dit is de modernere optie
  • - Elfin, dit was de eerste variant van de Modbus koppeling en deze is in het 2e deel uitgewerkt.
  • - MarstekMonitor door kaasmakert.
  • - Venus-Control door Edzelf
Gebruik de (poster) zoek functie om bepaalde personen te zoeken voor updates:
Afbeeldingslocatie: https://tweakers.net/i/wCmIadyFTe2EMfV9efiKFndqZSo=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/E9PGpvhho7mCO3MkBvWXwmnF.jpg?f=user_large


.

Modbus koppeling via Lilygo Can RS485:

1. Installeer ESP Home als je dit nog nooit gebruikt hebt.
2. Zorg dat in de ESP Home map ook de secrets.yaml staat met je Wifi gegevens.
3. Maak in ESPHome Builder een nieuw device lilygo-rs485 met als type ESP32
4. Negeer de melding over de encryption key dit doen we bij stap 6.
5. Kies Skip om de installatie over te slaan.
6. Selecteer Edit en kopieer het deel met de api en ota encryption key en plak deze tijdelijk in Kladblok/Notepad++
7. Kopieer vervang de volledige inhoud voor de inhoud uit Github en plaats daarna het deel van de api en ota encryption key weer terug.
Github: https://github.com/Superduper1969/MarstekVenus-LilygoRS485
8. Maak een map packages als submap van config.
9. Kopieer marstek_venus_battery_control.yaml uit Github en plaats deze in de map packages.
10. Maak een verwijzing naar het package in configuration.yaml
code:
1
2
homeassistant:
  packages: !include_dir_named packages

11. Herstart HA
12. Gebruik ESPHome Builder > Edit > Install om de Firmware te genereren en te plaatsen via de USB kabel.
13: Gebruik de plaatjes/kabel uit onderstaande handleiding van de Elfin om een direct te sluiten (Kabel Afknippen) of via een verloopstekkertje. LET OP NIEUWE LAYOUT!
De pinout + - en A en B staan duidelijk vermeld aan de onderkant van de printplaat van de Lilygo.
Dus alles goed doormeten!!
Afbeeldingslocatie: https://tweakers.net/i/VJSzA3OlRkSVQ53RXRg0djWJyWE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/qPoxQA6Q5xHhtobnB6xdHhNQ.jpg?f=user_large
Afbeeldingslocatie: https://tweakers.net/i/KlohxoYgb4zybQborPQsEXeaTaU=/x800/filters:strip_icc():strip_exif()/f/image/NDBH5C5XY4cG6WVVAgMAEdQe.jpg?f=fotoalbum_large

14: Gebruik de View knop in ESP Home Builder om direct naar de Webpagina van de Lilygo te gaan ter controle en troubleshooting.
Afbeeldingslocatie: https://tweakers.net/i/iYfcOunXeXmnQ0c94RJaj_LwhFY=/800x/filters:strip_icc():strip_exif()/f/image/XFLr2AbBUZKQHpAIHB3dEW8G.jpg?f=fotoalbum_large

15. 3D Behuizing
https://www.printables.co...cable-management-ho/files
Kun je zelf niet printen, stuur dan een PM naar @leejoow

.

Modbus koppeling via Elfin:

1: Benodigdheden
Elwin EW11 van €20 (Handleiding)
Afbeeldingslocatie: https://tweakers.net/i/DzCJUpdUnD6DLIptjcSPbyWvhgs=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/Ah7emgNWBcPpBcrV8Wy1vV19.jpg?f=user_large

2: Maak de kabel op de volgende manier:

De kleuren van het verloopkabeltje in het midden kan afhankelijk van je bestelling bij Ali of ergens anders variëren van kleur.
Je kan uiteraard ook de bestaande connector afknippen.
NB. De Elfin RS485 naar TCP wordt gevoed vanuit de RS485 er is geen extra power nodig.
LET OP! Bovenaan de post staat de nieuwe kabel layout voor het V2 model!
PinBetekenisPin Elfin EW11
1 RoodRS485 - A1
2 ZwartRS485 - B4
3 ZwartNiet gebruikt
4 Geen draad
5 Zwart+ 5V voeding2
6 ZwartGND3


LET OP! Bovenaan de post staat de nieuwe kabel layout voor het V2 model!
Afbeeldingslocatie: https://tweakers.net/i/HxQPVBgzaFSlPcM7S-LYZgotdPQ=/800x/filters:strip_icc():strip_exif()/f/image/4OWec9NjB4y9qqK5ucBPodmY.jpg?f=fotoalbum_large

Of met verloop:
LET OP! Bovenaan de post staat de nieuwe kabel layout voor het V2 model!
Afbeeldingslocatie: https://tweakers.net/i/ZhpZx8GPMKMK_y612Izrv-bgqKw=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/sWjSP9EKAM6M1uHgbOWTRLZG.jpg?f=user_large


3: Test of de kabel goed is
Afbeeldingslocatie: https://tweakers.net/i/VJSzA3OlRkSVQ53RXRg0djWJyWE=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/qPoxQA6Q5xHhtobnB6xdHhNQ.jpg?f=user_large

4: Sluit de kabel aan op de accu, de Elwin EW 11 zal starten en een Hotspot maken.
Koppel met een Laptop aan de hotspot en open IP:10.10.100.254 (mobieltje werkte bij mij de eerste keer niet)

5: Koppel de Elwin aan je Wifi via STA, let op als je dit fout doet in STA (Acces Point) modus moet je resetten.
Je kunt ook (tijdelijk) kiezen voor AP + STA maar dit geeft mindere prestaties.
PA is dus de Hotspot modus.
Optie 1: geef een vast IP adres buiten de scope van je IP
Optie 2: gebruik Dhcp en maak een reservering voor een vast IP voor je router

6: Configureer de Serial Port parameters in de Elwin
  • Baud Rate = 115200
  • Data Bit = 8
  • Stop Bit = 1
  • Parity = None
  • Buffer Size = 512
  • Gap Time = 50
  • Flow Control = Half Duplex
  • Cli = Disable
  • Protocol = Modbus
7: Configureer de Configuration Settings
  • Protocol = Tcp Server
  • Local Port = 502
  • Buffer Size = 512
  • Keep Alive(s) = 60
  • Timeout(s) = 300
  • Max Accept = 3
  • Security = Disable
  • Route = Uart
8: Kopieer uit Github: marstek_venus_battery_control.yaml
https://github.com/Superduper1969/MarstekVenus-ElfinEW11

Maak een map packages (zonder hoofdletter) en plaats de marstek_venus_battery_control.yaml erin.
Pas je configuration.yaml aan zodat packages geladen wordt.
Afbeeldingslocatie: https://tweakers.net/i/rcShAlU1wNWyUZEKMT8r7w2CfTU=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/5W70uDDV65Oq5mP545qfY6vL.jpg?f=user_large

Als je nog nooit met HA Studio Code Server hebt gewerkt bekijk je een Video op Youtube over dit onderwerp. (Als je NotePad++ gebruikt met de standaard instellingen dan gaat het mis doordat er TABS worden gebruikt i.p.v. spaties.)
Afbeeldingslocatie: https://tweakers.net/i/Zdx_1e-r6b7o8vFNN2vOw7Z1J8Q=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/nzKT3TrOG8JcWsukrxVe3duU.jpg?f=user_large

9: Controleer en herstart:
Afbeeldingslocatie: https://tweakers.net/i/x7bR5uVKN2tmh8r8p0nXomm0wvw=/800x/filters:strip_icc():strip_exif()/f/image/fErqVrTtqufSyufW04ZxL1hK.jpg?f=fotoalbum_large

10: Je hebt nu bij Integraties een Modbus met 26 entiteiten.
Afbeeldingslocatie: https://tweakers.net/i/qIyNCGN8gjORu8_2BCwUNbn_D2c=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/6brr1mg8NiMfMLyT1ukR8xNQ.jpg?f=user_large

11: Je kunt nu een nieuwe Weergave toevoegen en (een deel) van de entiteiten selecteren, deze beginnen met "My Battery"
Afbeeldingslocatie: https://tweakers.net/i/tzdL62rsI62Mhk5qLuOaUckV8zg=/800x/filters:strip_icc():strip_exif()/f/image/KNetwmVF40qlhltHAyC970qu.jpg?f=fotoalbum_large

12: En dit is dan het resultaat!
Afbeeldingslocatie: https://tweakers.net/i/39uT95oPGiegyN0kZHwfilU8b1U=/800x/filters:strip_icc():strip_exif()/f/image/EgIHrzhbU874QUeIOQdvf9Br.jpg?f=fotoalbum_large

13: Integratie in Energy Dashboard.
Zorg dat je minimaal 10 minuten laad en ontlaad om data te genereren.
Daarna kun je in het Energy Dashboard de Batterij toevoegen met de Nutsmeters.
Afbeeldingslocatie: https://tweakers.net/i/0wavQdYeQJOHCGS1oog-iMPDamk=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/X7Mmac7EXK5lOmI38izUxfMV.jpg?f=user_large
Afbeeldingslocatie: https://tweakers.net/i/-RpiBmfjEysJkMUveFN2Mq349UQ=/800x/filters:strip_icc():strip_exif()/f/image/WVjpuxhBQh4Iqk6JWpvl4Pmw.jpg?f=fotoalbum_large


Alle Modbus info is gebaseerd op deze documentatie: https://duravolt.nl/wp-content/uploads/Duravolt-Plug-in-Battery-Modbus.pdf
Met dank aan scruysberghs voor de aanvullingen van mij ontbrekende kennis.
Er zijn nog wat waarden verborgen met # deze kun je weer toevoegen als je daar behoefte aan hebt.
Ik had zelf geen behoefte aan de info en het maakte het wat minder stabiel leek het wel.

[ Voor 255% gewijzigd door superduper1969 op 17-05-2025 15:44 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Cool en thanx voor het uitgebreide verhaal. Dit geeft een mooie integratie in HomeAssistant. Ga ook maar eens de boel bestellen. Zit dan nog wel ff met die stap voor het maken van een kabel. Zo handig ben ik ook weer niet. :-)

aka pluim003


Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Mooi gedaan met de CRC byte swap in de proxy.
Blijft inderdaad nu nog het gedoe om waardes (of settings) te gaan schrijven vanuit Home Assistant.
Voor een waarde ga je met de huidige modbus integratie een input_number helper moeten maken in home assistant (kan ook via YAML zodat je die niet allemaal in de UI moet gaan bij elkaar klikken) en een automation om die in sync te houden met het modbus betreffende register.

Bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
modbus:
  - name: "modbus_hub"
    type: tcp
    host: 192.168.1.100
    port: 502
    sensors:
      - name: "modbus_register_value"
        unit_of_measurement: "units"
        address: 10
        input_type: holding


code:
1
2
3
4
5
6
7
input_number:
  modbus_control:
    name: Modbus Control
    min: 0
    max: 100
    step: 1
    mode: slider


Tip: "mode: box" kan ook, dan moet je een value intypen in de HA in plaats van een slider die op mobiel makkelijk per ongeluk verschuiven bij het scrollen met je duim.

code:
1
2
3
4
5
6
7
8
9
10
11
automation:
  - alias: "Sync Input Number to Modbus"
    trigger:
      - platform: state
        entity_id: input_number.modbus_control
    action:
      - service: modbus.write_register
        data:
          hub: "modbus_hub"
          address: 10
          value: "{{ states('input_number.modbus_control') | int }}"


code:
1
2
3
4
5
6
7
8
9
- alias: "Sync Modbus to Input Number"
    trigger:
      - platform: state
        entity_id: sensor.modbus_register_value
    action:
      - service: input_number.set_value
        data:
          entity_id: input_number.modbus_control
          value: "{{ states('sensor.modbus_register_value') | int }}"


Dat dit niet makkelijker kan is de reden dat ik zei dat de modbus integratie in HA niet doorontwikkeld is en de reden dat modbus2mqtt bestaat en de esphome modbus implementaties populairder is.

Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Nog een 2de HA tip. Een package (https://www.home-assistant.io/docs/configuration/packages/) aanmaken om alles van je batterij bij elkaar te zetten.
Op die manier kan je je modbus settings, inputs helpers, automations, templates, utility meters etc allemaal in 1 yaml file steken.

In je hoofd configuration.yaml van HA zet je dan :
code:
1
2
homeassistant:
  packages: !include_dir_named packages


Maak dan een package subfolder aan (/homeassistant/packages) en maakt daar bijvoorbeeld marstek_venus_battery.yaml aan waar je al je definities inzet. Op die manier kom je met 1 file al dicht bij een integratie.

Acties:
  • +1 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
@superduper1969 Super bedankt voor deze uitgebreide uitleg!
Het is mij ook gelukt om verbinding te maken met de batterij via de Waveshare RS232/485 TO WIFI POE ETH

Afbeeldingslocatie: https://tweakers.net/i/jNQaWPOVia7RUaBlbVA146s4HH4=/x800/filters:strip_icc():strip_exif()/f/image/QZuJ2l1PgE6EfOSVQiyHtBEi.jpg?f=fotoalbum_large

alleen ik krijg nu een foutmelding op de Modbus integratie die ik heb voor mn zonnepanelen omvormer van Growatt

code:
1
2
3
4
5
6
7
Setup failed for custom integration 'growatt_local': Unable to import component: cannot import name 'BYTE_ORDER' from 'pymodbus.framer.base' (/usr/local/lib/python3.13/site-packages/pymodbus/framer/base.py)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1015, in async_get_component
    comp = await self.hass.async_add_import_executor_job(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        self._get_component, True
        ^^^^^^^^^^^^^^^^^^^^^^^^^


Gebruiken ze hetzelfde component?

Die intergratie trouwens kan schrijven via Modbus, wellicht ter inspiratie handig?
https://github.com/Wouter...tant-Growatt-Local-Modbus

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • +2 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
matrover schreef op zondag 12 januari 2025 @ 14:17:
@superduper1969 Super bedankt voor deze uitgebreide uitleg!
Het is mij ook gelukt om verbinding te maken met de batterij via de Waveshare RS232/485 TO WIFI POE ETH

[Afbeelding]

alleen ik krijg nu een foutmelding op de Modbus integratie die ik heb voor mn zonnepanelen omvormer van Growatt

code:
1
2
3
4
5
6
7
Setup failed for custom integration 'growatt_local': Unable to import component: cannot import name 'BYTE_ORDER' from 'pymodbus.framer.base' (/usr/local/lib/python3.13/site-packages/pymodbus/framer/base.py)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1015, in async_get_component
    comp = await self.hass.async_add_import_executor_job(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        self._get_component, True
        ^^^^^^^^^^^^^^^^^^^^^^^^^


Gebruiken ze hetzelfde component?

Die intergratie trouwens kan schrijven via Modbus, wellicht ter inspiratie handig?
https://github.com/Wouter...tant-Growatt-Local-Modbus
Nou alsof het zo moest zijn, er was vanmiddag een update van de Growatt Modbus intergratie, hierna geen problemen meer _/-\o_

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Zit ff te kijken naar die kabels maar zie ik het nu goed dat je er gelijk 10 moet bestellen? Op 1 van de foto's in de reviews zie ik een ding met wat losse draden die je dan vermoed ik zelf in zo'n stekker kan frutten. Kan je daar wat meer licht over schijnen?
Alvast bedankt.

aka pluim003


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
DikkieDick schreef op maandag 13 januari 2025 @ 09:49:
[...]


Zit ff te kijken naar die kabels maar zie ik het nu goed dat je er gelijk 10 moet bestellen? Op 1 van de foto's in de reviews zie ik een ding met wat losse draden die je dan vermoed ik zelf in zo'n stekker kan frutten. Kan je daar wat meer licht over schijnen?
Alvast bedankt.
Je kan stekker van de bijgeleverde kabel inderdaad afknippen, weet wel dat dat alle draden zwart zijn en dat rood niet de + is dus dat je alles goed moet doormeten.
Als je dat niet wilt en je wil met connectors werken dan gaan die vaak inderdaad per 10.
Maar aangezien de Ali/Amazon prijs niet erg hoog is kun je er nog eens een aan de buurman geven...

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
superduper1969 schreef op maandag 13 januari 2025 @ 10:08:
[...]

Je kan stekker van de bijgeleverde kabel inderdaad afknippen, weet wel dat dat alle draden zwart zijn en dat rood niet de + is dus dat je alles goed moet doormeten.
Als je dat niet wilt en je wil met connectors werken dan gaan die vaak inderdaad per 10.
Maar aangezien de Ali/Amazon prijs niet erg hoog is kun je er nog eens een aan de buurman geven...
10 is idd niet zo'n probleem voor die pakweg 4 euro. Knippen van de oorspronkelijke kabel heb ik niet zoveel zin in. Het lijken overigens wel van die connectoren die je 'vroeger' op je moederbord had naar harde schijf enzo. :-)

Kan/wil je foto plaatsen hoe het er met aangepaste/eigengemaakte kabel uit ziet? Alvast bedankt.

aka pluim003


Acties:
  • +1 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
Hi @superduper1969 Heb jij ook deze rare sprongen in de HA statistieken?
Afbeeldingslocatie: https://tweakers.net/i/RAacC8h876bOWDGCLGRnTzDbABE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/mullYpqT1Oi5N1lzdiCO3DIc.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/n56jqfPvDaWc6riphuHnuZDmIAI=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/eHbCvIG6KPxn0vhV44hACytT.png?f=user_large

ook lijkt mijn "My Battery Charging in W" alleen negatieve waardes te geven, waardoor die niet wordt geteld door de "My Battery Daily Charge in kWh" is dat bij jou ook zo? (sorry ik snap niks van die Riemann sensors).
Afbeeldingslocatie: https://tweakers.net/i/CxRt8-FQFVkRwFjtNq4uBF2a4fs=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/tzXoSfJnZ1OfOrI1aIlZIOJk.png?f=user_large

[ Voor 11% gewijzigd door matrover op 13-01-2025 17:17 ]

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
matrover schreef op maandag 13 januari 2025 @ 17:16:
Hi @superduper1969 Heb jij ook deze rare sprongen in de HA statistieken?
[Afbeelding]

[Afbeelding]

ook lijkt mijn "My Battery Charging in W" alleen negatieve waardes te geven, waardoor die niet wordt geteld door de "My Battery Daily Charge in kWh" is dat bij jou ook zo? (sorry ik snap niks van die Riemann sensors).
[Afbeelding]
Ja ik heb ook rare sprongen, soms zie ik dat een sensor even niet beschikbaar is.
En Ja die negatieve teller hoort, maar bij mij moet ik ook even puzzelen.

Bij het puzzelen is het handig om even alle sensors in het dashboard te tonen.
"My Battery Charging in kWh" is goed maar staat nog niet correct in "My Battery Daily Charge in kWh"
Afbeeldingslocatie: https://tweakers.net/i/BQMEPjPUgyDki21lomNXGJHF7O0=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/nQIhlJbvQZ5SxWhLDIdwjnvr.jpg?f=user_large maar ik heb nu geen tijd.

[ Voor 15% gewijzigd door superduper1969 op 13-01-2025 17:35 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • +2 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Mijn batterij is ook aangekomen vandaag. Nog niet heel veel tijd gehad maar ik heb alvast wel de ganse config van @superduper1969 samen gezet in 1 package file : https://github.com/scruys...enus_battery_control.yaml

Dus de eerste modbus sensoren alsook de sensoren en utility meters voor het energiedashboard. Zal daar ook mijn verdere aanpassingen documenteren.

Zoek nu tijd om eens een waarde proberen aan te passen. Had jij daar al verder mee getest @superduper1969 ?

Als ik het goed lees moet je eerste dat 42000 register schrijven om control mode aan te zetten Afbeeldingslocatie: https://tweakers.net/i/exOfcibplEf-XApVB52TGZR21gM=/800x/filters:strip_exif()/f/image/FkrzkA4w9foMckmcFUGKklsh.png?f=fotoalbum_large en dan kan je gaan forcible chargen en dischargen.

Als dat lukt hebben we die P1 en andere meters niet meer nodig voor nul op de meter en andere slimme sturingen. Dan kan het allemaal gewoon vanuit HA :*)

Acties:
  • +2 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Startpost aangepast met verloop kabel en utility meter in yaml.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
scruysberghs schreef op maandag 13 januari 2025 @ 20:47:
Mijn batterij is ook aangekomen vandaag. Nog niet heel veel tijd gehad maar ik heb alvast wel de ganse config van @superduper1969 samen gezet in 1 package file : https://github.com/scruys...enus_battery_control.yaml

Dus de eerste modbus sensoren alsook de sensoren en utility meters voor het energiedashboard. Zal daar ook mijn verdere aanpassingen documenteren.

Zoek nu tijd om eens een waarde proberen aan te passen. Had jij daar al verder mee getest @superduper1969 ?

Als ik het goed lees moet je eerste dat 42000 register schrijven om control mode aan te zetten [Afbeelding] en dan kan je gaan forcible chargen en dischargen.

Als dat lukt hebben we die P1 en andere meters niet meer nodig voor nul op de meter en andere slimme sturingen. Dan kan het allemaal gewoon vanuit HA :*)
Je heb het goed gelezen, dat was ook mijn idee. helaas crashte mij HA terwijl ik aan het editen was dus nu eerst een backup terugzetten, kan ik gelijk jouw package proberen.
Crash had trouwens andere redenen, ben er nog niet uit van de oorzaak maar dat had ik al voordat ik de Accu had.
Op dit moment is er nog geen andere ModbusRTUover IP naar MQTT dus het blijft even zo.
Ik was van plan de selector/dropdowns te gebruiken voor modus switch.
https://www.youtube.com/watch?v=LxWUMvKzFkE

[ Voor 8% gewijzigd door superduper1969 op 13-01-2025 21:09 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Hed die control mode alvast kunnen aanzetten met een switch. (naar git gepushed)

En via de modbus write register action in de Developer tools mijn batterij kunnen opladen tot een ingestelde SOC:

code:
1
2
3
4
5
6
action: modbus.write_register
data:
  hub: MarstekVenus
  address: 42011
  slave: 1
  value: 30


Dat ging dan wel aan 2500W terwijl mijn batterij op 800W ingesteld stond. Gelukkig was die al 29% :)

Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Het lijkt erop dat laden en ontladen moet worden omgedraaid van + naar - om goed in energy dashboard te moeten komen.
En ook utility meters moeten negatief kunnen.
Dit ingesteld, nu afwachten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# ----------------
# TEMPLATE SENSORS
# ----------------

template:
  - sensor:
      - name: "My Battery Charging in W"
        state: >
          {% if states('sensor.my_battery_ac_power') | float < 0 %}
            {{ (states('sensor.my_battery_ac_power') | float) * -1 }}
          {% else %}
            0
          {% endif %}
      - name: "My Battery Discharging in W"
        state: >
          {% if states('sensor.my_battery_ac_power') | float > 0 %}
            {{ (states('sensor.my_battery_ac_power') | float) * -1 }}
          {% else %}
            0
          {% endif %}

# -------
# SENSORS
# -------

sensor:
  - platform: integration
    name: My Battery Discharging in KWh
    source: sensor.my_battery_discharging_in_w
    method: left
  - platform: integration
    name: My Battery Charging in KWh
    source: sensor.my_battery_charging_in_w
    method: left

# --------------
# UTILITY METERS
# --------------
utility_meter:
  daily_discharge:
    name: My Battery Daily Discharging in Kwh
    source: sensor.my_battery_discharging_in_kwh
    cycle: daily
    net_consumption: true
  weekly_discharge:
    name: My Battery Weekly Discharging in Kwh
    source: sensor.my_battery_discharging_in_kwh
    cycle: daily
    net_consumption: true
  monthly_discharge:
    name: My Battery Monthly Discharging in Kwh
    source: sensor.my_battery_discharging_in_kwh
    cycle: monthly
    net_consumption: true
  daily_charge:
    name: My Battery Daily Charging in Kwh
    source: sensor.my_battery_charging_in_kwh
    cycle: daily
    net_consumption: true
  weekly_charge:
    name: My Battery Weekly Charging in Kwh
    source: sensor.my_battery_charging_in_kwh
    cycle: weekly
    net_consumption: true
  monthly_charge:
    name: My Battery Monthly Charging in Kwh
    source: sensor.my_battery_charging_in_kwh
    cycle: monthly
    net_consumption: true

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • bvs
  • Registratie: December 2024
  • Laatst online: 16-05 08:34

bvs

superduper1969 schreef op maandag 13 januari 2025 @ 22:26:
code:
1
2
3
4
5
  weekly_discharge:
    name: My Battery Weekly Discharging in Kwh
    source: sensor.my_battery_discharging_in_kwh
    cycle: daily
    net_consumption: true
de reset cyclus staat op daily
copy/paste foutje :)

Acties:
  • +2 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Nog wat aanpassingen ingecheked, inclusief de changes van @superduper1969 en de typo's die @bvs opgemerkt had.

Heb eerst even gefocused op laden en ontladen vanuit HA.Lijkt wel ok te werken en best wel snel te reageren. Reactiesnelheid kan nog wel wat getweaked worden schat door de andere modbus updates via een automation te triggeren in plaats van elke x seconden zodat de power control settings voorang krijgen.
Afbeeldingslocatie: https://tweakers.net/i/yff6oMBjOhoPv3-HuvxWC-ui-Gc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/1terztmYqCLkOiEkC8iVxXvS.png?f=user_large

Het probleem van verkeerde uitlezingen moet ook nog wel onderzocht worden. Als je kijkt naar grafiek van SOC bijvoorbeeld zie ik dat regelmatig korte tijd naar 1000 springen. Afbeeldingslocatie: https://tweakers.net/i/lPNKDYeseRMMfhUDVDJ0cuEi52U=/800x/filters:strip_exif()/f/image/VJI4aMgS7rEnw8KK43MDt4kq.png?f=fotoalbum_large

Ik ga nu eerst eens een nul op meter automatisering maken met wat ik uitlees van mijn P1 dongle...

Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
scruysberghs schreef op dinsdag 14 januari 2025 @ 14:15:
Nog wat aanpassingen ingecheked, inclusief de changes van @superduper1969 en de typo's die @bvs opgemerkt had.

Heb eerst even gefocused op laden en ontladen vanuit HA.Lijkt wel ok te werken en best wel snel te reageren. Reactiesnelheid kan nog wel wat getweaked worden schat door de andere modbus updates via een automation te triggeren in plaats van elke x seconden zodat de power control settings voorang krijgen.
[Afbeelding]

Het probleem van verkeerde uitlezingen moet ook nog wel onderzocht worden. Als je kijkt naar grafiek van SOC bijvoorbeeld zie ik dat regelmatig korte tijd naar 1000 springen. [Afbeelding]

Ik ga nu eerst eens een nul op meter automatisering maken met wat ik uitlees van mijn P1 dongle...
Top,

Ik vermoed dat antwoord pakketjes verwisseld worden omdat message_wait_milliseconds: 50 te kort/lang is voor de constructie met de proxy ertussen.
Probeer een andere waarde zoals 0, 100, 200.
Ik had getest met 500ms maar dat is te veel, nu krijg ik waardes terug die voor andere velden bestemd waren.(maar wel stabiel!) Ook zou ik waardes niet snel veranderen met een interval van 300 seconden, of inderdaad die via een Automation uitlezen om een overload aan data te voorkomen, het blijft een workaround, hopelijk komt er een FW fix.
Dus eigenlijk alleen Wattage+ control op 10 of 15 seconden interval en de rest veel langer.

[ Voor 9% gewijzigd door superduper1969 op 14-01-2025 14:37 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Had inmiddels de batterij al in HomeAssistant via zo'n HomeWizard-socket maar dit is wel mooier en uitgebreider. Toch maar de spullen bestellen. :-)

aka pluim003


Acties:
  • +1 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
scruysberghs schreef op dinsdag 14 januari 2025 @ 14:15:
Nog wat aanpassingen ingecheked, inclusief de changes van @superduper1969 en de typo's die @bvs opgemerkt had.

Heb eerst even gefocused op laden en ontladen vanuit HA.Lijkt wel ok te werken en best wel snel te reageren. Reactiesnelheid kan nog wel wat getweaked worden schat door de andere modbus updates via een automation te triggeren in plaats van elke x seconden zodat de power control settings voorang krijgen.
[Afbeelding]

Het probleem van verkeerde uitlezingen moet ook nog wel onderzocht worden. Als je kijkt naar grafiek van SOC bijvoorbeeld zie ik dat regelmatig korte tijd naar 1000 springen. [Afbeelding]

Ik ga nu eerst eens een nul op meter automatisering maken met wat ik uitlees van mijn P1 dongle...
Super, ik heb een kleine pull request aangemaakt met unique_id bij alle sensoren, meters, etc.

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
kort getest met een grid to 0 automation. Krijg laadvermogen nu ongeveer elke 40 seconden geupdate. Is omdat ik wacht tot ik bevestiging krijg dat de batterij aan het doen is wat gevraagd voor het nieuwe commando afgevuurd wordt.
Heb die automation nog niet in de package file gezet, iedereen zijn solar en power van grid sensor zullen wel anders zijn.
Voor in te stellen batterij vermogen voor grid naar 0 gebruikte ik: power_naar_grid + bat_ontlaad_power - power_van_grid


Afbeeldingslocatie: https://tweakers.net/i/vV1Fi1SKWBmbPj75SRcgdHNlYS4=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/4AqAvuWXxNYGM9zpdr5f9uuC.png?f=user_large


Heb de modbus settings nu op :
delay: 1
message_wait_milliseconds: 30
timeout: 5

Dat lijkt het probleem met de vreemde modbus waardes wel opgelost te hebben. Mijn soc grafiek is sindsdien smooth. Helaas wel maar met elke 80 sec ongeveer een update (scan interval staat op 30 sec). De sensor.my_battery_battery_power update ergens tussen de 11 en de 30 seconden (scan interval op 10 sec).

Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Heb die * -1 voor Discharge weggehaald trouwens. Anders krijg je een negatieve waarde als je aan het ontladen bent.

code:
1
2
3
4
5
6
7
      - name: "My Battery Discharging in W"
        state: >
          {% if states('sensor.my_battery_ac_power') | float > 0 %}
            {{ (states('sensor.my_battery_ac_power') | float) * -1 }}
          {% else %}
            0
          {% endif %}

Acties:
  • 0 Henk 'm!

  • turntable67
  • Registratie: December 2012
  • Laatst online: 12-05 11:12
[quote]scruysberghs schreef op dinsdag 14 januari 2025 @ 14:15:
Het probleem van verkeerde uitlezingen moet ook nog wel onderzocht worden. Als je kijkt naar grafiek van SOC bijvoorbeeld zie ik dat regelmatig korte tijd naar 1000 springen. [Afbeelding]


Mijn SOC heb ik aangepast naar % en scale 1 en geeft goede waardes

- name: "accu1_Battery SOC"
unique_id: accu1_battery_soc
address: 32104
slave: 1
scan_interval: 60
input_type: holding
data_type: uint16
unit_of_measurement: "%"
state_class: measurement
scale: 1
offset: 0
precision: 0

Afbeeldingslocatie: https://tweakers.net/i/iTLkCv0rbggkynXp6_YEtEf1z6Q=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/3DUMIJ6HA1TdEtGNDiADzov4.png?f=user_large

[ Voor 23% gewijzigd door turntable67 op 14-01-2025 22:20 ]


Acties:
  • 0 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
turntable67 schreef op dinsdag 14 januari 2025 @ 22:17:
[quote]scruysberghs schreef op dinsdag 14 januari 2025 @ 14:15:
Het probleem van verkeerde uitlezingen moet ook nog wel onderzocht worden. Als je kijkt naar grafiek van SOC bijvoorbeeld zie ik dat regelmatig korte tijd naar 1000 springen. [Afbeelding]


Mijn SOC heb ik aangepast naar % en scale 1 en geeft goede waardes

- name: "accu1_Battery SOC"
unique_id: accu1_battery_soc
address: 32104
slave: 1
scan_interval: 60
input_type: holding
data_type: uint16
unit_of_measurement: "%"
state_class: measurement
scale: 1
offset: 0
precision: 0

[Afbeelding]
in het package dat we hier aan maken zijn staat de scale en unit hetzelfde. wel zie ik dat jou scan_interval dubbel zo hoog is, daar ga ik eens mee testen vandaag

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
@matrover met wat er nu in de package file staat is het bij mij ook stabiel
Heb de modbus settings nu op :
delay: 1
message_wait_milliseconds: 30
timeout: 5
Afbeeldingslocatie: https://tweakers.net/i/F7ec6QmkP26l9afyS13AvDVr5Us=/800x/filters:strip_exif()/f/image/7mmEQNzrpXj7wMVBRn0RoS3W.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
scruysberghs schreef op woensdag 15 januari 2025 @ 13:59:
@matrover met wat er nu in de package file staat is het bij mij ook stabiel


[...]


[Afbeelding]
Ik heb alleen nog problemen met de Utility meters uit het package waardoor ik de accu niet kan toevoegen aan Energy Dashboard.
Als ik ze via de helper functie aanmaak dan werken ze wel.
utility_meter:
daily_discharge:
name: My Battery Daily Discharging in Kwh
unique_id: my_battery_daily_discharging_in_kwh
source: sensor.my_battery_discharging_in_kwh
cycle: daily

Moet daar nog niet bij:
state_class: total_increasing
unit_of_measurement: kWh
device_class: energy

Bij mij lukt dat niet in yaml.

Mijn andere accu is een Anker Solix 1600 en daar werk ik met de daily waarden.

Afbeeldingslocatie: https://tweakers.net/i/su-7e6EtvcnvVjWJx-Rj7SpQIDY=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/NiFZe5GMPmIGeuYiYRdfQZkt.jpg?f=user_large

[ Voor 13% gewijzigd door superduper1969 op 15-01-2025 19:16 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Moet daar nog niet bij:
state_class: total_increasing
unit_of_measurement: kWh
device_class: energy
Had nog niet naar het energiedashboard gekeken eigenlijk. Deze
code:
1
2
3
unit_of_measurement: W
device_class: power
state_class: measurement


moeten eigenlijk bij de 2 template sensors komen en dan moet je in de integration die noh omvormer naar kwh. Anders krijg je daar Wh als eenheid.

Heb net een aanpassing hiervoor ingechecked.

Als zelf de file wil aanpassen kan je in git een fork van de repo maken, dan heb je je eigen copie om mee te werken. Je wijzigingen kan je na validatie dan doorpushen via een pull request.

Acties:
  • +2 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Om het aantal modbus read en write te beperken heb ik nog een poging ingechecked om opeenvolgende registers in 1 keer uit te lezen en die met templates te splitsen.
Specifiek voor dezeAfbeeldingslocatie: https://tweakers.net/i/S0NnT66mkOnci_oTPqJui3lls38=/800x/filters:strip_exif()/f/image/04wZtrPK5MYYcg3rAtpDCZqv.png?f=fotoalbum_large
Heb ik nu voor modbus

code:
1
2
3
4
5
6
7
8
        - name: "My Battery 44000 range"
          unique_id: my_battery_44000_range
          address: 44000 # Start address
          count: 4 # Number of registers to read
          input_type: holding
          scan_interval: 10 # Polling interval (optional)
          data_type: custom
          structure: ">4H" # Big-endian, 4 unsigned 16-bit integers


Die geeft dan 4 waarden met een , tussen terug die je kan splitsen in verschillende sensoren met deze templates
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        - name: "My Battery Charging Cutoff Capacity"
          unique_id: my_battery_charging_cutoff_capacity
          unit_of_measurement: "%"
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[0] | int(0) * 0.1 }}

        - name: "My Battery Discharging Cutoff Capacity"
          unique_id: my_battery_discharging_cutoff_capacity
          unit_of_measurement: "%"
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[1] | int(0) * 0.1 }}

        - name: "My Battery Max Charge Power"
          unique_id: my_battery_max_charge_power
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[2] | int(0) }}

        - name: "My Battery Max Discharge Power"
          unique_id: my_battery_max_discharge_power
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[3] | int(0) }}


Dat lijkt te werken, ook voor writes kan je dan meerde opeenvolgende registers in 1 keer gaan beschrijven zodat het totaal aantal modbus operaties dat je in de que zet beperkt wordt en dus alles sneller reageert.

Komt de snelheid van de grid naar 0 sturing wel ten goede.

Afbeeldingslocatie: https://tweakers.net/i/ATOGLiv_cWI6kJQuloFWbaODpKQ=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/cZg9AdUZm5vW1bvwV3i5ZLYn.png?f=user_large

Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Heb ook nog een script toegevoegd waarbij je power en soc kan meegeven. Kan je op deze manier oproepen vanuit de developer tools of vanuit een automatisering.
Afbeeldingslocatie: https://tweakers.net/i/-ZEqQTPQgBb7iXpelv48kMdXPvs=/800x/filters:strip_exif()/f/image/67ZAHGq1gjNorMUGyo9NXj5B.png?f=fotoalbum_large


Afbeeldingslocatie: https://tweakers.net/i/TDff0e8UC7RWF_4jYpx4b-ychb0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/plDYzhfDrfgCEjdJi6Qe23uk.png?f=user_large

Ik ga die gebruiken voor batterij aansturing vanuit EMHASS optimalisatie (dynamische prijzen, zon voorspelling etc).

Acties:
  • 0 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
scruysberghs schreef op donderdag 16 januari 2025 @ 13:28:
Om het aantal modbus read en write te beperken heb ik nog een poging ingechecked om opeenvolgende registers in 1 keer uit te lezen en die met templates te splitsen.
Specifiek voor deze[Afbeelding]
Heb ik nu voor modbus

code:
1
2
3
4
5
6
7
8
        - name: "My Battery 44000 range"
          unique_id: my_battery_44000_range
          address: 44000 # Start address
          count: 4 # Number of registers to read
          input_type: holding
          scan_interval: 10 # Polling interval (optional)
          data_type: custom
          structure: ">4H" # Big-endian, 4 unsigned 16-bit integers


Die geeft dan 4 waarden met een , tussen terug die je kan splitsen in verschillende sensoren met deze templates
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        - name: "My Battery Charging Cutoff Capacity"
          unique_id: my_battery_charging_cutoff_capacity
          unit_of_measurement: "%"
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[0] | int(0) * 0.1 }}

        - name: "My Battery Discharging Cutoff Capacity"
          unique_id: my_battery_discharging_cutoff_capacity
          unit_of_measurement: "%"
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[1] | int(0) * 0.1 }}

        - name: "My Battery Max Charge Power"
          unique_id: my_battery_max_charge_power
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[2] | int(0) }}

        - name: "My Battery Max Discharge Power"
          unique_id: my_battery_max_discharge_power
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {{ states('sensor.my_battery_44000_range').split(',')[3] | int(0) }}


Dat lijkt te werken, ook voor writes kan je dan meerde opeenvolgende registers in 1 keer gaan beschrijven zodat het totaal aantal modbus operaties dat je in de que zet beperkt wordt en dus alles sneller reageert.

Komt de snelheid van de grid naar 0 sturing wel ten goede.

[Afbeelding]
Knap werk @scruysberghs ! lijkt hier ook te werken.

ik krijg wel een paar errors en warnings in het log (weet niet of ze voor de update al waren):

Error1:
code:
1
2
3
4
5
6
7
8
9
10
11
Log details (ERROR)
Logger: homeassistant.components.modbus.modbus
Source: components/modbus/modbus.py:300
integration: Modbus (documentation, issues)
First occurred: 13:56:41 (5 occurrences)
Last logged: 14:08:14

Pymodbus: MarstekVenus: Error: device: 1 address: 32100 -> Exception Response(131, 3, None)
Pymodbus: MarstekVenus: Error: device: 1 address: 32104 -> Exception Response(131, 3, None)
Pymodbus: MarstekVenus: Error: device: 1 address: 35000 -> Exception Response(131, 3, None)
Pymodbus: MarstekVenus: Error: device: 1 address: 32101 -> Exception Response(131, 3, None)


Error2:
code:
1
2
3
4
5
6
7
Log details (ERROR)
Logger: pymodbus.logging
Source: components/modbus/modbus.py:374
First occurred: 13:56:41 (5 occurrences)
Last logged: 14:08:14

No response received after 3 retries, continue with next request


Warning1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Log details (WARNING)
Logger: homeassistant.components.sensor
Source: components/sensor/__init__.py:547
integration: Sensor (documentation, issues)
First occurred: 13:56:19 (6 occurrences)
Last logged: 13:56:19

Entity sensor.my_battery_total_discharging_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using state class 'measurement' which is impossible considering device class ('energy') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
Entity sensor.my_battery_daily_charging_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using state class 'measurement' which is impossible considering device class ('energy') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
Entity sensor.my_battery_daily_discharging_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using state class 'measurement' which is impossible considering device class ('energy') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
Entity sensor.my_battery_monthly_charging_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using state class 'measurement' which is impossible considering device class ('energy') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22
Entity sensor.my_battery_monthly_discharging_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using state class 'measurement' which is impossible considering device class ('energy') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22


Warning 2:
code:
1
2
3
4
5
6
7
8
Log details (WARNING)
Logger: homeassistant.components.sensor
Source: components/sensor/__init__.py:709
integration: Sensor (documentation, issues)
First occurred: 13:56:19 (1 occurrences)
Last logged: 13:56:19

Entity sensor.marstek_venus_battery_energy (<class 'homeassistant.components.modbus.sensor.ModbusRegisterSensor'>) is using native unit of measurement 'kWh' which is not a valid unit for the device class ('power') it is using; expected one of ['TW', 'kW', 'GW', 'W', 'MW']; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+modbus%22

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Top, heb je nog tijd voor een mode switch, want ik wil de NOM via de P1 laten doen en niet door HA.
Maar ik wel een automation maken om op het goedkoopste moment van de dag de accu vol te pompen in het wintersseizoen.
Dus op 43000
0: Manual
1: Anti Feed in
2: Trade Mode (is niet nodig)

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • +7 Henk 'm!

  • ice-T106
  • Registratie: Oktober 2001
  • Laatst online: 18:38
Ze mogen jullie vanuit Marstek wel een mooie korting geven vind ik. Deze HomeAssistant integratie maakt de accu voor mij en denk meer mensen opeens een veel betere optie.

11.635 Wp Solar edge. 7kW Lucht-water, 5kW Daikin Lucht-Lucht, lucht WTW, VW Passat GTE, Home Assistant


Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
superduper1969 schreef op donderdag 16 januari 2025 @ 14:34:
Top, heb je nog tijd voor een mode switch, want ik wil de NOM via de P1 laten doen en niet door HA.
Maar ik wel een automation maken om op het goedkoopste moment van de dag de accu vol te pompen in het wintersseizoen.
Dus op 43000
0: Manual
1: Anti Feed in
2: Trade Mode (is niet nodig)
Heb een input select toegevoegd en een automation die de input select in sync houdt met de modbus settings. Is allemaal geen rocket sciense maar wel a hell of a job om dat voor alle instelbare parameters zobij elkaar te copy pasten.

Afbeeldingslocatie: https://tweakers.net/i/POuHhMeG7JkHFo8j6vaHnAlhk_Q=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/oiXhA1M4Sve8kFah3TgyDHEI.png?f=user_large


Moest iemand zich geroepen voelen om door de pdf te gaan en voor al die instelbare waarden een inpt_number of een input_select te maken en de automation uit te breiden...


De componenten om deze switch mogelijk te maken zodat je die zowel in de marstek app als in home assistant kan wijzigen:

modbus sensor die de waarde uitleest van register 43000 van de batterij:

code:
1
2
3
4
5
6
          - name: "My Battery User Work Mode"
          unique_id: my_battery_user_work_mode_modbus
          address: 43000
          input_type: holding
          data_type: uint16
          scan_interval: 10



input_select is de home assistant entiteit die de status opslaat:
code:
1
2
3
4
5
6
7
8
  input_select:
    my_battery_user_work_mode_input_select:
      name: My Battery User Work Mode
      options:
        - "Manual"
        - "Anti-Feed"
        - "Trade Mode"
      initial: "Manual"


automation om de modbus sensor te syncen met de input_select als die wijzigt (aanpassing met de app bijvoorbeeld) en andersom wijzigien aan de input select in home assistant via modbus write register weer naar de batterij schrijft.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  - id: my_battery_sync_modbus_and_input_select
    alias: "My Battery Sync Modbus and Input Select"
    description: "sync modbus sensor with input select "
    mode: single
    triggers:
      - trigger: state
        entity_id:
          - sensor.my_battery_user_work_mode
        id: sensor_to_input_select
      - trigger: state
        entity_id:
          - input_select.my_battery_user_work_mode_input_select
        id: input_select_to_sensor
    conditions: []
    actions:
      - choose:
          - conditions:
              - condition: trigger
                id:
                  - sensor_to_input_select
            sequence:
              - action: input_select.select_option
                metadata: {}
                data:
                  option: >
                    {% if states('sensor.my_battery_user_work_mode') | int == 0 %}
                      Manual
                    {% elif states('sensor.my_battery_user_work_mode') | int == 1 %}
                      Anti-Feed
                    {% elif states('sensor.my_battery_user_work_mode') | int == 2 %}
                      Trade Mode
                    {% else %}
                      Manual
                    {% endif %}
                target:
                  entity_id: input_select.my_battery_user_work_mode_input_select
          - conditions:
              - condition: trigger
                id:
                  - input_select_to_sensor
            sequence:
              - action: modbus.write_register
                metadata: {}
                data:
                  hub: MarstekVenus
                  address: 43000
                  slave: 1
                  value: >
                    {% if is_state('input_select.my_battery_user_work_mode_input_select',
                    'Manual') %}
                      0
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Anti-Feed') %}
                      1
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Trade Mode') %}
                      2
                    {% else %}
                      0
                    {% endif %}



Die automation gebruikt nu trigger id's en zou dus eigenlijk uitgebreid kunnen worden om alle sync werk te doen zoder dat je geen aparte automations moet maken. Zie ook https://www.google.com/ur...Vaw2_LOVkJtiMaHZ-WM-YDK3o

Moest iemand zich dit weekend geroepen voelen om met de modbus register documentatie al die inputs_numbers en input_selects op deze manier toe te voegen in de yaml file :-)

Ik focus me even verder op het aansturen van de batterij met mijn dynamische prijzen.


Ow ja, heb ook de scale van die energie sensoren goed gezet (die verschillende kwh meters) die zaten er nog een factor 100 of 1000 naast.

Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
scruysberghs schreef op vrijdag 17 januari 2025 @ 17:27:
[...]


Heb een input select toegevoegd en een automation die de input select in sync houdt met de modbus settings. Is allemaal geen rocket sciense maar wel a hell of a job om dat voor alle instelbare parameters zobij elkaar te copy pasten.

[Afbeelding]


Moest iemand zich geroepen voelen om door de pdf te gaan en voor al die instelbare waarden een inpt_number of een input_select te maken en de automation uit te breiden...


De componenten om deze switch mogelijk te maken zodat je die zowel in de marstek app als in home assistant kan wijzigen:

modbus sensor die de waarde uitleest van register 43000 van de batterij:

code:
1
2
3
4
5
6
          - name: "My Battery User Work Mode"
          unique_id: my_battery_user_work_mode_modbus
          address: 43000
          input_type: holding
          data_type: uint16
          scan_interval: 10



input_select is de home assistant entiteit die de status opslaat:
code:
1
2
3
4
5
6
7
8
  input_select:
    my_battery_user_work_mode_input_select:
      name: My Battery User Work Mode
      options:
        - "Manual"
        - "Anti-Feed"
        - "Trade Mode"
      initial: "Manual"


automation om de modbus sensor te syncen met de input_select als die wijzigt (aanpassing met de app bijvoorbeeld) en andersom wijzigien aan de input select in home assistant via modbus write register weer naar de batterij schrijft.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  - id: my_battery_sync_modbus_and_input_select
    alias: "My Battery Sync Modbus and Input Select"
    description: "sync modbus sensor with input select "
    mode: single
    triggers:
      - trigger: state
        entity_id:
          - sensor.my_battery_user_work_mode
        id: sensor_to_input_select
      - trigger: state
        entity_id:
          - input_select.my_battery_user_work_mode_input_select
        id: input_select_to_sensor
    conditions: []
    actions:
      - choose:
          - conditions:
              - condition: trigger
                id:
                  - sensor_to_input_select
            sequence:
              - action: input_select.select_option
                metadata: {}
                data:
                  option: >
                    {% if states('sensor.my_battery_user_work_mode') | int == 0 %}
                      Manual
                    {% elif states('sensor.my_battery_user_work_mode') | int == 1 %}
                      Anti-Feed
                    {% elif states('sensor.my_battery_user_work_mode') | int == 2 %}
                      Trade Mode
                    {% else %}
                      Manual
                    {% endif %}
                target:
                  entity_id: input_select.my_battery_user_work_mode_input_select
          - conditions:
              - condition: trigger
                id:
                  - input_select_to_sensor
            sequence:
              - action: modbus.write_register
                metadata: {}
                data:
                  hub: MarstekVenus
                  address: 43000
                  slave: 1
                  value: >
                    {% if is_state('input_select.my_battery_user_work_mode_input_select',
                    'Manual') %}
                      0
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Anti-Feed') %}
                      1
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Trade Mode') %}
                      2
                    {% else %}
                      0
                    {% endif %}



Die automation gebruikt nu trigger id's en zou dus eigenlijk uitgebreid kunnen worden om alle sync werk te doen zoder dat je geen aparte automations moet maken. Zie ook https://www.google.com/ur...Vaw2_LOVkJtiMaHZ-WM-YDK3o

Moest iemand zich dit weekend geroepen voelen om met de modbus register documentatie al die inputs_numbers en input_selects op deze manier toe te voegen in de yaml file :-)

Ik focus me even verder op het aansturen van de batterij met mijn dynamische prijzen.


Ow ja, heb ook de scale van die energie sensoren goed gezet (die verschillende kwh meters) die zaten er nog een factor 100 of 1000 naast.
Helemaal Top, ik ben beter in andere puzzeltjes. Wie weet als we met de volgende FW update een Modbus Fix hebben of direct toegang tot MQTT, ik zag ook al een doc over MQTT via cloud maar dat lijkt me niet nodig/handig.

Ik heb nog wat spikes in sommige readouts en bijvoorbeeld bij een ontlading van 400W in het schema.
Ik zie dan bij 407W gemeten er af en toe een - voor komen dus 1 meting met -407W en direct daarna weer 407W.

Ik was nog met de timing aan het rommelen maar dat helpt niet, ik heb 25 en 35ms geprobeerd.
Ik heb wel alle waarden die ik uiteindelijk niet interessant vind uitgeschakeld.

Ik vond het vreemd dat de laadsessies als een negatieve waarde worden weergegeven in Energieverbruik maar dat blijkt zo te horen, mijn andere batterij heeft dit niet maar die wordt alleen gevoed door de zon.Afbeeldingslocatie: https://tweakers.net/i/uZ5ZGzzfWALq06rgjAoKB-76LLM=/800x/filters:strip_icc():strip_exif()/f/image/mfEHpp3GT5lUk9dx6ZDxsp0S.jpg?f=fotoalbum_large

Ik ga je code testen, super bedankt hiervoor.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
NOM via de P1 laten doen
Kan ik nog niet testen aangezien de p1 meter nog nageleverd gaat worden. Zou normaal nog iets sneller moeten kunnen reageren aangezien het hier de batterij is die de p1 meter uitleest en je dus niet moet wachten tot je commando door de modbus wachtrij is gegaan. Met die wachtrij zijn zeker nog optimalisaties te doen. Heb de sync frequentie van de minder belangrijke sensoren (energie, temperaturen, ...) alvast terug fel verhoogd zodat die niet in de weg zitten voor de stuur commando's.

Langs de andere kant vind ik wel stom om 2 p1 meters te moeten gebruiken, eentje voor HA en eentje voor de batterij, Gebruikt er iemand die Shelly optie all? Dat is de enige die ik kan kiezen in mijn app. Eventueel kunnen we ook wel 1 van die meters emuleren in ha, die kan ook sensoren via modbus of api exposen of hoe de batterij ook connectie maakt met de meter. Of wachten op de volgende firmware die ook sturing via mqtt gaat mogelijk maken. Dat gaat mogelijk ook wel wat sneller dan die huidige wifi naar serieel setup.

Acties:
  • 0 Henk 'm!

  • Arjanski
  • Registratie: Oktober 2022
  • Laatst online: 23-05 11:36
Interessant dit, ik wil ook een thuisaccu kopen maar ben het even kwijt in dit forum om welke thuisaccu(s) het nu precies gaat. Ik zit te twijfelen over de marstek 5kW. Duravolt schijnt dezelfde te zijn. Maar ik wil absoluut dat hij aan home assistant gekoppeld kan worden. Sorry als ik een domme vraag stel 😁

Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Arjanski schreef op zaterdag 18 januari 2025 @ 23:34:
Interessant dit, ik wil ook een thuisaccu kopen maar ben het even kwijt in dit forum om welke thuisaccu(s) het nu precies gaat. Ik zit te twijfelen over de marstek 5kW. Duravolt schijnt dezelfde te zijn. Maar ik wil absoluut dat hij aan home assistant gekoppeld kan worden. Sorry als ik een domme vraag stel 😁
Dat is hetzelfde vandaar de dubbele naam van dit topic. Zie de link in de startpost naar het algemene topic.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • Njord1
  • Registratie: December 2024
  • Laatst online: 22-05 20:00
Kan iemand onderstaand integreren in jullie mooie project? ik ben een complete Nitwit op HA en modbus gebied.
Aangezien Marstek dit niet ondersteund zou ik hier erg mee geholpen zijn.

ik heb 3x Venus 5.12, elk aangesloten op 1 fase. (3-fasensysteem in huis).
Deze zijn aangesloten op een Shelly Pro 3EM-3CT63 in de meterkast.
Ik wil graag instellen dat batterij 1 alleen naar fase 1 kijkt, batterij 2 alleen naar fase 2 kijkt en batterij 3 alleen naar fase 3 kijkt. Op dit moment kijken alle drie de batterijen naar het totaal van 3 fasen, hierdoor gaat de ene batterij ontladen, terwijl de andere(n) gaat opladen, met andere woorden, ze gaan elkaar tegen werken. Communicatie tussen de batterijen onderling zou ook wenselijk zijn.

Alvast bedankt, en keep up the good work.

3x Marstek 5.12Kw, 1 per fase, Shelly Pro 3EM, V151


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Njord1 schreef op zondag 19 januari 2025 @ 19:29:
Kan iemand onderstaand integreren in jullie mooie project? ik ben een complete Nitwit op HA en modbus gebied.
Aangezien Marstek dit niet ondersteund zou ik hier erg mee geholpen zijn.

ik heb 3x Venus 5.12, elk aangesloten op 1 fase. (3-fasensysteem in huis).
Deze zijn aangesloten op een Shelly Pro 3EM-3CT63 in de meterkast.
Ik wil graag instellen dat batterij 1 alleen naar fase 1 kijkt, batterij 2 alleen naar fase 2 kijkt en batterij 3 alleen naar fase 3 kijkt. Op dit moment kijken alle drie de batterijen naar het totaal van 3 fasen, hierdoor gaat de ene batterij ontladen, terwijl de andere(n) gaat opladen, met andere woorden, ze gaan elkaar tegen werken. Communicatie tussen de batterijen onderling zou ook wenselijk zijn.

Alvast bedankt, en keep up the good work.
alles kan met home assistant :-)
Met een p1 meter en de 3 batterijen gekoppeld kan je perfect een sturing gaan maken voor NOM per fase, of de 3 batterijen als 1 grote van 15,36kw en 7500W vermogen laten werken waarbij die bij laden en ontladen ook tracht steeds je fasen in balans te houden en te gaan peak shaven... wat je maar kan bedenken.
Maar reken wel op enkele dagen werk om dat bij elkaar schrijven en te testen. Met modbus vraagt het ook wel wat hardware om ze uit te lezen (zie first post hierboven), of een kabeltje tussen modbus aansluitingen van de 3 batterijen.
Ik verwacht binnenkort ook wel de mqtt optie actief te krijgen voor aansturing, dan kan je dit alles zonder bijkomende hardware of bekabeling.
Mijn persoonlijke incentive om er aan te werken is alvast niet zo groot momenteel aangezien ik hier een 1fase systeem en voorlopig maar 1 batterij hier in mijn huis heb. Maw, don't hold your breath en stroop zelf de mouwen op.

Ik focus me nu alvast even verder om de sturing met 1 batterij in combinatie met emhass perfect te krijgen, daar zit ondertussen ook al meer dan een mandag werk in en er zijn nu eenmaal maar een beperkt aantal uren in een dag.

Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Ook de CT003 P1 zal een verschil maken. De CT001 is waardeloos voor 1 fase dus waarschijnlijk 3 x zo waardeloos voor 3 fase.

Ik gebruik alleen nog klokschema. En modbus voor monitoring. En ook ik verwacht bij de volgende update MQTT en dan ga ik pas automatiseren.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
Werkt bij jullie de discharge sensor voor het energy dashboard?

Ik krijg deze foutmelding te zien (als ik het energy dashboard edit):

code:
1
2
The following entities have a negative state while a positive state is expected:
sensor.my_battery_discharging_in_kwh_dashboard_compatible (-1843.59)

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
matrover schreef op maandag 20 januari 2025 @ 17:34:
Werkt bij jullie de discharge sensor voor het energy dashboard?

Ik krijg deze foutmelding te zien (als ik het energy dashboard edit):

code:
1
2
The following entities have a negative state while a positive state is expected:
sensor.my_battery_discharging_in_kwh_dashboard_compatible (-1843.59)
Ik heb het net aangepast in de startpost.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • amvolleb
  • Registratie: Juli 2016
  • Laatst online: 22:13
@superduper1969 Om de fork van IP-Proxy te installeren is Home Assistant supervised nodig. Ik draai Home Assistant in docker dat Supervised niet ondersteunt. Weet jij of er een andere mogelijkheid is om de CRC byteswap te doen?

MTVenus V149 P1HW 5.19 + 40ZP SolarEdge (NO+ZW) + Panasonic 16kW T-CAP + Easee EV charger


Acties:
  • 0 Henk 'm!

  • Hieke
  • Registratie: September 2010
  • Laatst online: 16:49
scruysberghs schreef op vrijdag 17 januari 2025 @ 18:38:
[...]
Eventueel kunnen we ook wel 1 van die meters emuleren in ha, die kan ook sensoren via modbus of api exposen of hoe de batterij ook connectie maakt met de meter. Of wachten op de volgende firmware die ook sturing via mqtt gaat mogelijk maken. Dat gaat mogelijk ook wel wat sneller dan die huidige wifi naar serieel setup.
@scruysberghs
Ik las in ander topic hallorichard in "Hame / Marstek / Duravolt 5,12kWh plug en play thuisaccu" het bericht dat MQTT niet ondersteund gaat worden.. Maar mogelijk lees ik dat daar verkeerd? Geen reactie van andere forumleden, dus bericht leek te worden ondergesneeuwd. Maar ik beschouw dat als geen goed nieuws.

Mij is ook niet duidelijk of nu via Modbus de werking van wel actief gestuurd kan worden. Kun je daar toelichting op geven?

Panasonic K-series split 9 kW, gasloos sinds dec 23, EV, PV 9,6 kWp


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Hieke schreef op maandag 20 januari 2025 @ 19:32:
[...]


@scruysberghs
Ik las in ander topic hallorichard in "Hame / Marstek / Duravolt 5,12kWh plug en play thuisaccu" het bericht dat MQTT niet ondersteund gaat worden.. Maar mogelijk lees ik dat daar verkeerd? Geen reactie van andere forumleden, dus bericht leek te worden ondergesneeuwd. Maar ik beschouw dat als geen goed nieuws.

Mij is ook niet duidelijk of nu via Modbus de werking van wel actief gestuurd kan worden. Kun je daar toelichting op geven?
Via modbus kan je nu alles aansturen idd. Laden, ontladen (-2500 tot +2500), nul op meter sturing met alle vermogen meters die in home assistant koppelbaar zijn (p1, modbus meters, homewizard, modbus meters, ....). Is voorlopig gelimiteerd tot ongeveer 1 stuurcommando per 20 sec via de huidige home assistant modbus setup. Kan nog getweaked worden maar daar moet nog wat tijd in gestoken worden.
Als mqtt beschikbaar komt zou dat mogelijk wel sneller kunnen zonder last te hebben van de ;odbus wachtrij. In de webomgeving kan je mqtt al aanzetten, in de app ontbreekt voorlopig(?) de setting om een mqtt server in te stellen.

Acties:
  • 0 Henk 'm!

  • Hieke
  • Registratie: September 2010
  • Laatst online: 16:49
Ah, sturing door registers te veranderen is dus al echt mogelijk! Dat was me nog niet duidelijk. Maar dat biedt al heel veel mogelijkheden.
De app en webomgeving heb ik nog niet bekeken maar mogelijkheden die je schetst zijn veelbelovend. In toekomst dus 2 dezelfde exemplaren die elkaar niet tegenwerken moet dus mogelijk worden. Dan ben ik ook om.

Dank voor reactie en al je effort om dit mogelijk te maken.

Panasonic K-series split 9 kW, gasloos sinds dec 23, EV, PV 9,6 kWp


Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Ligt het aan mij maar het lijkt erop dat ik iets mis. Ik heb de Elfin en kabeltjes, maar volgens mij ontbreekt er ergens in de beschrijving het stekkertje dat op de RS485-poort moet van de Marstek. Of ik ben heel erg kippig. Ik dacht eerst dat het het ene kabeltje met stekkertje van de Elfin zou moeten zijn maar die past sowieso niet.

aka pluim003


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
DikkieDick schreef op donderdag 23 januari 2025 @ 13:03:
Ligt het aan mij maar het lijkt erop dat ik iets mis. Ik heb de Elfin en kabeltjes, maar volgens mij ontbreekt er ergens in de beschrijving het stekkertje dat op de RS485-poort moet van de Marstek. Of ik ben heel erg kippig. Ik dacht eerst dat het het ene kabeltje met stekkertje van de Elfin zou moeten zijn maar die past sowieso niet.
Heb je goed naar de Foto's gekeken. Of laat anders met foto's zien wat jij bedoelt. Met tekst kom ik hier niet uit.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • Werner85
  • Registratie: Augustus 2012
  • Laatst online: 23-05 08:49
DikkieDick schreef op donderdag 23 januari 2025 @ 13:03:
Ligt het aan mij maar het lijkt erop dat ik iets mis. Ik heb de Elfin en kabeltjes, maar volgens mij ontbreekt er ergens in de beschrijving het stekkertje dat op de RS485-poort moet van de Marstek. Of ik ben heel erg kippig. Ik dacht eerst dat het het ene kabeltje met stekkertje van de Elfin zou moeten zijn maar die past sowieso niet.
Ik ben er niet mee bezig, maar je hebt ook nog een kabel bij de baterij gekregen, misschien zoek je die?

Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Werner85 schreef op donderdag 23 januari 2025 @ 21:06:
[...]


Ik ben er niet mee bezig, maar je hebt ook nog een kabel bij de baterij gekregen, misschien zoek je die?
O aha. Thanx. Daar had ik niet aan gedacht. Stom. Ff erbij zoeken en dan maar eens aan de slag.

aka pluim003


Acties:
  • +1 Henk 'm!

  • amvolleb
  • Registratie: Juli 2016
  • Laatst online: 22:13
@superduper1969 na "lang verhaal met ombouw home assistant in docker naar virtual machine met HAOS op Synology " heb ik ook de modbus koppeling aan de praat.
Bedankt voor het werk om dit mogelijk te maken, mooi om de monitoring van de batterij in Home Assistant te hebben.

MTVenus V149 P1HW 5.19 + 40ZP SolarEdge (NO+ZW) + Panasonic 16kW T-CAP + Easee EV charger


Acties:
  • 0 Henk 'm!

  • prakka
  • Registratie: Oktober 2009
  • Laatst online: 22:58
Hoe sluit je precies de kabel aan op de accu, kan dit ingeplugd met het ali kabeltje of moeten deze kabel nog gesoldeerd worden aan de accu kabel. Deze stap is mij niet helemaal duidelijk.

Ps de accu heb ik nog niet dus ik heb de kabel nog niet gezien.

Acties:
  • +2 Henk 'm!

  • amvolleb
  • Registratie: Juli 2016
  • Laatst online: 22:13
prakka schreef op vrijdag 24 januari 2025 @ 09:25:
Hoe sluit je precies de kabel aan op de accu, kan dit ingeplugd met het ali kabeltje of moeten deze kabel nog gesoldeerd worden aan de accu kabel. Deze stap is mij niet helemaal duidelijk.

Ps de accu heb ik nog niet dus ik heb de kabel nog niet gezien.
Ik heb het aangesloten zoals in de startpost staat:
De "ali stekker" had de draadjes al in zijn stekker vast (deze stekker plug je in de stekker van de Marstek). De draden richting de EW11 kant kan je vastschroeven. Je hoeft dus niet te solderen.

MTVenus V149 P1HW 5.19 + 40ZP SolarEdge (NO+ZW) + Panasonic 16kW T-CAP + Easee EV charger


Acties:
  • 0 Henk 'm!

  • prakka
  • Registratie: Oktober 2009
  • Laatst online: 22:58
amvolleb schreef op vrijdag 24 januari 2025 @ 10:10:
[...]

Ik heb het aangesloten zoals in de startpost staat:
De "ali stekker" had de draadjes al in zijn stekker vast (deze stekker plug je in de stekker van de Marstek). De draden richting de EW11 kant kan je vastschroeven. Je hoeft dus niet te solderen.
Top bedankt, dan ga ik een setje bestellen.

Acties:
  • 0 Henk 'm!

  • DikkieDick
  • Registratie: Maart 2004
  • Laatst online: 19-05 18:48
Crap. Heb ik die kabeltjes besteld en ontvangen, staat er male en female, zitten er alleen maar males in. Dus daar hebben we weer niks aan. En ben bang dat als ik opnieuw bestel het weer mis gaat.

Zie nu op de ali-site dat je nog een keer ergens moet klikken voor keuze M, F/M en F. Nou ja, dan maar 10F nu. :-)

[ Voor 23% gewijzigd door DikkieDick op 24-01-2025 16:51 ]

aka pluim003


Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
DikkieDick schreef op vrijdag 24 januari 2025 @ 16:47:
Crap. Heb ik die kabeltjes besteld en ontvangen, staat er male en female, zitten er alleen maar males in. Dus daar hebben we weer niks aan. En ben bang dat als ik opnieuw bestel het weer mis gaat.

Zie nu op de ali-site dat je nog een keer ergens moet klikken voor keuze M, F/M en F. Nou ja, dan maar 10F nu. :-)
Plaatje bijgevoegd in startpost

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
Ik heb het even helemaal gemist denk ik, maar de CRC swap is niet meer nodig?

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • 0 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
matrover schreef op zaterdag 25 januari 2025 @ 11:56:
Ik heb het even helemaal gemist denk ik, maar de CRC swap is niet meer nodig?
Dat is inderdaad gefixed in 147!

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Even getest net. Nu de nieuwe firmware het modbus crc probleem heeft opgelost kan je ook met een usb dongle de registers uitlezen/schrijven (modbus serial rtu)

Afbeeldingslocatie: https://tweakers.net/i/_n8b9joRc73BOS_btEoDtOyYxbo=/800x/filters:strip_exif()/f/image/mpSpqbrh7GNGO9vvZgFN1JWC.png?f=fotoalbum_large

screenshot hierboven is met deze dongle en enkel de A en B aangesloten aan de batterij.

Dat gaat alvast wel lekker veel sneller dan via de modbus tcp vanuit home assistant over een proxy die crc bytes moet swappen. Zo kan je echt nul op meter of capacity control sturing gaan doen vanuit home assistant met reactietijden van 1 seconde.

Nu is een kabel van de batterij naar je Home Assistant niet voor iedereen even handig vermoed ik.
Geeft ook wel de mogelijkheid de modbus registers met een esphome device te lezen/schrijven en over het netwerk naar HA te sturen. Heb je ineens autodiscovery van alles sensoren in Home Assistant. Moest iemand zin hebben om hier aan mee te werken? Qua hardware kan dat eventueel gewoon mee op de ultra p1 dongle https://smart-stuff.nl/product/ultra-mini-dongle/ of om het even welke esp met UART to RS485 chip

Mooie step-by-step kan je hier lezen : https://doe-duurzaam.nl/a...-of-limiteren-met-modbus/ Gaat over omvormers maar kan je dus ook perfect met de marstek doen

Acties:
  • 0 Henk 'm!

  • Horla
  • Registratie: Augustus 2002
  • Laatst online: 17:28
@scruysberghs Interessant. Wil dat zeggen dat bv een LILYGO TTGO T-CAN485 ESP32 gewoon zou werken? Daar vind ik een esphome configuratie van. Behuizing printen en kan ik gewoon er naast leggen i.c.m. usb-c adapter. Mijn batterij zou begin februari geleverd worden. De nieuwe p1-meter zou dan mee geleverd moeten worden maar ik lees dat daar nog problemen mee zijn. Ik wil wel meewerken maar mijn esphome en HA kennis is beperkt tot handleidingen online volgen...

Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Horla schreef op zaterdag 25 januari 2025 @ 15:16:
@scruysberghs Interessant. Wil dat zeggen dat bv een LILYGO TTGO T-CAN485 ESP32 gewoon zou werken? Daar vind ik een esphome configuratie van. Behuizing printen en kan ik gewoon er naast leggen i.c.m. usb-c adapter. Mijn batterij zou begin februari geleverd worden. De nieuwe p1-meter zou dan mee geleverd moeten worden maar ik lees dat daar nog problemen mee zijn. Ik wil wel meewerken maar mijn esphome en HA kennis is beperkt tot handleidingen online volgen...
Yep. Had hier nog een LILYGO liggen en die er al eens aangehangen.
Heb je zelfs geen usb-c nodig, de 5v die mee op de modbus kabel zit kan je er gewoon op aansluiten.
Met een 3d printer kan je dan wel een cleane home assistant dongle voor de marstek maken.

Onderstaande esphome home yaml had ik al gedistileerd en er al eens op gezet maar nog niet verder kunnen testen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
esphome:
  name: esphome-web-745c70
  friendly_name: LILYGO RS485
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Configure uart that will be used
uart:
  - id: mod_bus
    rx_pin: GPIO22
    tx_pin: GPIO21
    baud_rate: 115200
    data_bits: 8
    stop_bits: 1
    parity: NONE

modbus:
  - uart_id: mod_bus
    id: modbus1
    send_wait_time: 200ms

modbus_controller:
  - id: marstek_venus
    address: 0x1
    modbus_id: modbus1
    command_throttle: 1000ms
    update_interval: 5s

#modbus registers
# range 31000-
# text_sensor:
#    - name: "Marstek device name"
#      icon: "mdi:information"
#      platform: modbus_controller
#      modbus_controller_id: marstek_venus
#      register_type: holding
#      address: 31000
#      register_count: 1
#      response_size: 20
#      skip_updates: 100

#binary_sensor:
  #huawei example , kan gebruikt worden  voor alarm codes, fault word en grid standards 
  # Range 32000 - 32019 (1/2)
  # Register 32000
  # - name: "Huawei inverter state standby"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x001
  # - name: "Huawei inverter state grid-connected"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x002
  # - name: "Huawei inverter state grid-connected normally"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x004
  # - name: "Huawei inverter state grid connection with derating due to power rationing"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x008

sensor:
  - name: "Battery State of Charge"
    platform: modbus_controller
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32104  # Register address for Battery SOC
    value_type: U_WORD  # Unsigned 16-bit value
    unit_of_measurement: "%"
    accuracy_decimals: 1
    filters:
      - multiply: 0.1  # Scale the value by 0.1 as indicated in the documentation

  # - name: "Marstek total charging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33000
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01
  # - name: "Marstek total discharging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33002
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01

# select:
#   - platform: modbus_controller
#     name: "Marstek forcible charge/discharge"
#     modbus_controller_id: marstek_venus
#     address: 42010
#     value_type: U_WORD
#     optionsmap:
#       "Stop": 0
#       "Charge": 1
#       "Discharge": 2

Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
En er is beeld. Alvast 1 sensor 1x per seconde.


Afbeeldingslocatie: https://tweakers.net/i/l5B9PX3ve2UPTsHjCcuM-16G3fk=/800x/filters:strip_exif()/f/image/4fzXY2rzkMZS9yCnDiK3nGte.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/6tcB8RqXo28bJnizxQTfkzJ_xQs=/800x/filters:strip_exif()/f/image/ln53WCrTVvhisXICnzcEuuie.png?f=fotoalbum_large

Als het morgen weer slecht weer is, morgen meer :)

Acties:
  • +2 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Startpost verwijst nu ook naar de ESP variant.

[ Voor 83% gewijzigd door superduper1969 op 26-01-2025 07:18 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
scruysberghs schreef op zaterdag 25 januari 2025 @ 18:10:
[...]


Yep. Had hier nog een LILYGO liggen en die er al eens aangehangen.
Heb je zelfs geen usb-c nodig, de 5v die mee op de modbus kabel zit kan je er gewoon op aansluiten.
Met een 3d printer kan je dan wel een cleane home assistant dongle voor de marstek maken.

Onderstaande esphome home yaml had ik al gedistileerd en er al eens op gezet maar nog niet verder kunnen testen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
esphome:
  name: esphome-web-745c70
  friendly_name: LILYGO RS485
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Configure uart that will be used
uart:
  - id: mod_bus
    rx_pin: GPIO22
    tx_pin: GPIO21
    baud_rate: 115200
    data_bits: 8
    stop_bits: 1
    parity: NONE

modbus:
  - uart_id: mod_bus
    id: modbus1
    send_wait_time: 200ms

modbus_controller:
  - id: marstek_venus
    address: 0x1
    modbus_id: modbus1
    command_throttle: 1000ms
    update_interval: 5s

#modbus registers
# range 31000-
# text_sensor:
#    - name: "Marstek device name"
#      icon: "mdi:information"
#      platform: modbus_controller
#      modbus_controller_id: marstek_venus
#      register_type: holding
#      address: 31000
#      register_count: 1
#      response_size: 20
#      skip_updates: 100

#binary_sensor:
  #huawei example , kan gebruikt worden  voor alarm codes, fault word en grid standards 
  # Range 32000 - 32019 (1/2)
  # Register 32000
  # - name: "Huawei inverter state standby"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x001
  # - name: "Huawei inverter state grid-connected"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x002
  # - name: "Huawei inverter state grid-connected normally"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x004
  # - name: "Huawei inverter state grid connection with derating due to power rationing"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x008

sensor:
  - name: "Battery State of Charge"
    platform: modbus_controller
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32104  # Register address for Battery SOC
    value_type: U_WORD  # Unsigned 16-bit value
    unit_of_measurement: "%"
    accuracy_decimals: 1
    filters:
      - multiply: 0.1  # Scale the value by 0.1 as indicated in the documentation

  # - name: "Marstek total charging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33000
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01
  # - name: "Marstek total discharging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33002
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01

# select:
#   - platform: modbus_controller
#     name: "Marstek forcible charge/discharge"
#     modbus_controller_id: marstek_venus
#     address: 42010
#     value_type: U_WORD
#     optionsmap:
#       "Stop": 0
#       "Charge": 1
#       "Discharge": 2
Zou dat zowel lezen als ook wijzigen van attributen zijn via de esphome oplossing?

Acties:
  • +2 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
hallorichard schreef op zondag 26 januari 2025 @ 13:07:
[...]

Zou dat zowel lezen als ook wijzigen van attributen zijn via de esphome oplossing?
Jawel, updates kunnen ook. Als je de comments weghaalt in de yaml file die ik poste krijg je dit
Afbeeldingslocatie: https://tweakers.net/i/DXKPPlPHBwr0I2Hj9S_pO1MXMyQ=/x800/filters:strip_exif()/f/image/TGIbI4tHjaplLggVR57AHMgP.png?f=fotoalbum_large

Wie mee wil testen, hier is info over het bordje dat ik nu gebruik https://github.com/Xinyuan-LilyGO/T-CAN485

Zal nog wat registers toevoegen straks en de yaml file mee in de GitHub repo zetten.

Acties:
  • +3 Henk 'm!

  • MagMeister
  • Registratie: Januari 2025
  • Laatst online: 05-04 19:39
Hier draait het ook op ESPHome, op een Wemos S3 Mini met de MAX485 aan de UART.

Afbeeldingslocatie: https://tweakers.net/i/ETnYYtTKi4R7XC7MBsyg4R4fJPk=/800x/filters:strip_icc():strip_exif()/f/image/0xwAHFU8WdXzTJiGyNLSIBrB.jpg?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Heb mijn esphome yaml file alvast mee in de repo gezet:
https://github.com/scruysberghs/ha-marstek-venus

ook de pdf met de modbus registers kan je daar vinden

Alles onder de uart definitie kan je normaal gewoon gebruiken op je wemos S3 Mini. Tx en Rx pin zullen de enige settings die je daar moet aanpassen schat ik.

Acties:
  • 0 Henk 'm!

  • MagMeister
  • Registratie: Januari 2025
  • Laatst online: 05-04 19:39
scruysberghs schreef op zondag 26 januari 2025 @ 17:16:
Alles onder de uart definitie kan je normaal gewoon gebruiken op je wemos S3 Mini. Tx en Rx pin zullen de enige settings die je daar moet aanpassen schat ik.
Inderdaad (y)
Voor de MAX485 module wel nog een flow_control_pin te gebruiken.

De controle lijkt het wel niet te doen. Mijn batterij schiet niet in gang met discharge te selecteren. Maar er moet misschien nog ergens een vermogen vastlegd worden in een bepaald register?

En "BI" is ook niet de naam die ik gegeven heb :D

Afbeeldingslocatie: https://tweakers.net/i/TDQB9uJvZB33CuziSfdXWPkGdqw=/800x/filters:strip_exif()/f/image/PEEhmnM3r2BSJJIthryUS7af.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
MagMeister schreef op zondag 26 januari 2025 @ 19:21:
[...]


Inderdaad (y)
Voor de MAX485 module wel nog een flow_control_pin te gebruiken.

De controle lijkt het wel niet te doen. Mijn batterij schiet niet in gang met discharge te selecteren. Maar er moet misschien nog ergens een vermogen vastlegd worden in een bepaald register?

En "BI" is ook niet de naam die ik gegeven heb :D

[Afbeelding]
Kun je jouw deel van de yaml file m.b.t de max486 configuratie delen?

Acties:
  • 0 Henk 'm!

  • MagMeister
  • Registratie: Januari 2025
  • Laatst online: 05-04 19:39
Bij deze :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uart:
  id: mod_bus
  rx_pin: GPIO43
  tx_pin: GPIO44
  baud_rate: 115200
  data_bits: 8
  stop_bits: 1
  parity: NONE

modbus:
  - uart_id: mod_bus
    id: modbus1
    flow_control_pin: GPIO11
    send_wait_time: 200ms

modbus_controller:
  - id: marstek_venus
    address: 0x1
    modbus_id: modbus1
    command_throttle: 200ms
    update_interval: 1s

Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
De controle lijkt het wel niet te doen. Mijn batterij schiet niet in gang met discharge te selecteren. Maar er moet misschien nog ergens een vermogen vastlegd worden in een bepaald register?
Not so fast :-)
Om aan te sturen ga je registers 42010 - 42021 nodig hebben en voor het aansturen dan echt werkt moet je eerst register 42000, RS485 control mode aanzetten.
Heb net een poging om die switch toe te voegen (en nog wat extra sensoren en icons) ingechecked maar werkt vermoedelijk nog niet en niet zo veel tijd vandaag.
esphome documentatie hier https://esphome.io/components/switch/modbus_controller

Als je wil zoeken waarom de switch het niet doet best logging wat hoger zetten op de esp :
# Enable logging
logger:
level: VERY_VERBOSE

Acties:
  • +4 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
Enkele controls kunnen toevoegen en testen.
Afbeeldingslocatie: https://tweakers.net/i/-Jn7Fu9IbrbX1pP5w3bWd8n5d50=/800x/filters:strip_exif()/f/image/NPb4ghPsWlI14BJqUn17ZEAa.png?f=fotoalbum_large

Je heb dus 2 mogelijkheden om je batterij te te laden en ontladen.
- Forcible charge/discharge gaat loden/ontladen met vermogens die ingestel staan als Marstek forcible (di)scharge power.
- Charge to soc : hier stel je een gewenst batterij percentage in en de batterij gaat (ont)laden met de vermogens ingesteld in max (dis)charge power. Niet veel kunnen testen maar lijkt op't eerste zicht wel te doen wat het moet.

In Home Assistant kan je dat wat logscher bij elkaar zetten en dan ziet het er zo uit:
Afbeeldingslocatie: https://tweakers.net/i/VZ3g4Afjmvx5Ec71yBCMozA1u28=/x800/filters:strip_exif()/f/image/flxoQz7YHP8ymXwJSa2nx6vn.png?f=fotoalbum_large

dashboard.yaml voor de section in Lovelace dat je hiervoor nodig hebt ook mee in de repo gezet.

Acties:
  • 0 Henk 'm!

  • prakka
  • Registratie: Oktober 2009
  • Laatst online: 22:58
scruysberghs schreef op maandag 27 januari 2025 @ 11:55:
Enkele controls kunnen toevoegen en testen.
[Afbeelding]

Je heb dus 2 mogelijkheden om je batterij te te laden en ontladen.
- Forcible charge/discharge gaat loden/ontladen met vermogens die ingestel staan als Marstek forcible (di)scharge power.
- Charge to soc : hier stel je een gewenst batterij percentage in en de batterij gaat (ont)laden met de vermogens ingesteld in max (dis)charge power. Niet veel kunnen testen maar lijkt op't eerste zicht wel te doen wat het moet.

In Home Assistant kan je dat wat logscher bij elkaar zetten en dan ziet het er zo uit:
[Afbeelding]

dashboard.yaml voor de section in Lovelace dat je hiervoor nodig hebt ook mee in de repo gezet.
Top werk, ik heb een accu in bestelling staan en ook een Lilygo. Als alles binnen is ga ik het ook testen. Bedankt voor je werk.

Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
En net op tijd nu de zon eens schijnt in Belgie om mijn om anders veroren teruglever Wh's automatisch in de batterij te steken

Afbeeldingslocatie: https://tweakers.net/i/LfOvDog7_-ZwrV9-06bAGzW4h54=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/bRhirLFMP1IkbgvvHShasTuF.png?f=user_large

Die beloofde p1 meter hoeft al niet meer ;-)

Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
wat is nu de betere optie

LilyGo T-Can484 of de elfin
er word in TS gesproken over dat de lily een modernere varaint is?

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • +1 Henk 'm!

  • prakka
  • Registratie: Oktober 2009
  • Laatst online: 22:58
Maxwp schreef op maandag 27 januari 2025 @ 17:25:
wat is nu de betere optie

LilyGo T-Can484 of de elfin
er word in TS gesproken over dat de lily een modernere varaint is?
Ik heb de Lily gekozen, en de lopende bestelling elfin geannuleerd. Volgens mij is de Lily beter en makkelijker. Esphome als je je inleest, werkt echt heel handig en makkelijk via home assistant.

Acties:
  • 0 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
-

[ Voor 100% gewijzigd door hallorichard op 27-01-2025 20:47 ]


Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
prakka schreef op maandag 27 januari 2025 @ 17:56:
[...]


Ik heb de Lily gekozen, en de lopende bestelling elfin geannuleerd. Volgens mij is de Lily beter en makkelijker. Esphome als je je inleest, werkt echt heel handig en makkelijk via home assistant.
en de problemen die er nu lijken te tzijn met de p1 van marstek en of HW of shellt heb je met deze rs485 integratie niet
dan kan je via home assistant gewoon zeggen wanneer hi jmoet laden en ontladen op basis van wat HA via p1 zelf binnen krijgt
plus je kan ook de temp van de cellen uitlezen? netjes

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • +1 Henk 'm!

  • prakka
  • Registratie: Oktober 2009
  • Laatst online: 22:58
Maxwp schreef op maandag 27 januari 2025 @ 19:57:
[...]

en de problemen die er nu lijken te tzijn met de p1 van marstek en of HW of shellt heb je met deze rs485 integratie niet
dan kan je via home assistant gewoon zeggen wanneer hi jmoet laden en ontladen op basis van wat HA via p1 zelf binnen krijgt
plus je kan ook de temp van de cellen uitlezen? netjes
Ik heb het nog niet binnen dus ik kan die vraag nog niet beantwoorden. Momenteel is aliexpress niet zo snel met opsturen.

Acties:
  • 0 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
scruysberghs schreef op zaterdag 25 januari 2025 @ 18:10:
[...]


Yep. Had hier nog een LILYGO liggen en die er al eens aangehangen.
Heb je zelfs geen usb-c nodig, de 5v die mee op de modbus kabel zit kan je er gewoon op aansluiten.
Met een 3d printer kan je dan wel een cleane home assistant dongle voor de marstek maken.

Onderstaande esphome home yaml had ik al gedistileerd en er al eens op gezet maar nog niet verder kunnen testen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
esphome:
  name: esphome-web-745c70
  friendly_name: LILYGO RS485
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Configure uart that will be used
uart:
  - id: mod_bus
    rx_pin: GPIO22
    tx_pin: GPIO21
    baud_rate: 115200
    data_bits: 8
    stop_bits: 1
    parity: NONE

modbus:
  - uart_id: mod_bus
    id: modbus1
    send_wait_time: 200ms

modbus_controller:
  - id: marstek_venus
    address: 0x1
    modbus_id: modbus1
    command_throttle: 1000ms
    update_interval: 5s

#modbus registers
# range 31000-
# text_sensor:
#    - name: "Marstek device name"
#      icon: "mdi:information"
#      platform: modbus_controller
#      modbus_controller_id: marstek_venus
#      register_type: holding
#      address: 31000
#      register_count: 1
#      response_size: 20
#      skip_updates: 100

#binary_sensor:
  #huawei example , kan gebruikt worden  voor alarm codes, fault word en grid standards 
  # Range 32000 - 32019 (1/2)
  # Register 32000
  # - name: "Huawei inverter state standby"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x001
  # - name: "Huawei inverter state grid-connected"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x002
  # - name: "Huawei inverter state grid-connected normally"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x004
  # - name: "Huawei inverter state grid connection with derating due to power rationing"
  #   icon: "mdi:information"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 32000
  #   bitmask: 0x008

sensor:
  - name: "Battery State of Charge"
    platform: modbus_controller
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32104  # Register address for Battery SOC
    value_type: U_WORD  # Unsigned 16-bit value
    unit_of_measurement: "%"
    accuracy_decimals: 1
    filters:
      - multiply: 0.1  # Scale the value by 0.1 as indicated in the documentation

  # - name: "Marstek total charging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33000
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01
  # - name: "Marstek total discharging energy"
  #   platform: modbus_controller
  #   modbus_controller_id: marstek_venus
  #   register_type: holding
  #   address: 33002
  #   value_type: U_DWORD
  #   unit_of_measurement: "kWh"
  #   device_class: energy
  #   state_class: total_increasing
  #   accuracy_decimals: 2
  #   filters:
  #     - multiply: 0.01

# select:
#   - platform: modbus_controller
#     name: "Marstek forcible charge/discharge"
#     modbus_controller_id: marstek_venus
#     address: 42010
#     value_type: U_WORD
#     optionsmap:
#       "Stop": 0
#       "Charge": 1
#       "Discharge": 2
Ik heb ook alvast deze esp printplaat besteld.
Zou je de aansluitingen vanaf de stekker naar de printplaat kunnen delen (kan het een foto van de stekker en de printplaat). Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
ou je de aansluitingen vanaf de stekker naar de printplaat kunnen delen (kan het een foto van de stekker en de printplaat). Alvast bedankt.
Ik heb ondertussen de witte fiche van de meegeleverde kabel geknipt en de 4 draadjes rechtstreeks aan de LilyGo geschroefd. Als je wil post ik wel een foto maar met de foto's van @superduper1969 in de eerste post van dit topic kom je er normaal wel uit. Je hebt aan de Lilygo ,A en B voor modbus en + en - 5V voor voeding nodig en die labels staan gewoon geprint op de Lilygo.

Acties:
  • 0 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
scruysberghs schreef op dinsdag 28 januari 2025 @ 12:17:
[...]


Ik heb ondertussen de witte fiche van de meegeleverde kabel geknipt en de 4 draadjes rechtstreeks aan de LilyGo geschroefd. Als je wil post ik wel een foto maar met de foto's van @superduper1969 in de eerste post van dit topic kom je er normaal wel uit. Je hebt aan de Lilygo ,A en B voor modbus en + en - 5V voor voeding nodig en die labels staan gewoon geprint op de Lilygo.
Maar maakt in de aansluiting voor a en b niet uit welke meest link en welke meest rechts (volgens mij zag ik de middelste leeg)?

Deze zelfde vraag voor + en -?

Acties:
  • 0 Henk 'm!

  • matrover
  • Registratie: December 2010
  • Laatst online: 20:51
Iemand het modbus aansturen van de AI mode al kunnen fixen?

Marstek Venus 5,12kwh V149 CT003 V110


Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
matrover schreef op dinsdag 28 januari 2025 @ 14:58:
Iemand het modbus aansturen van de AI mode al kunnen fixen?
Volgens mij hoef je alleen de tekstjes aan te passen, de codes zullen het zelfde zijn.
trade-mode wordt AI.

Afbeeldingslocatie: https://tweakers.net/i/jakYVGAeUMtJQM5PEFP-kuXDBxA=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/0d0uSKaDjLUla2Z9uYpx9XMG.jpg?f=user_large

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
[/quote]
Iemand het modbus aansturen van de AI mode al kunnen fixen?
[quote]

Als je in de app nu AI-optimalisatie kiest geeft de modbus "anti-feed" weer, dus eigenlijk vermoed ik dat ze nog hetzelfde modbus register 43000 gebruiken maar dat labels aangepast moeten worden.
Afbeeldingslocatie: https://tweakers.net/i/8PCLRmqE-MUYaFUE4UO-Pm7RzQ8=/800x/filters:strip_exif()/f/image/pYbQlYdGuKt0iKRlrkZVaVdg.png?f=fotoalbum_large
Ikzelf gebruik die setting niet meer, ik stuur gewoon helemaal aan vanuit HA dus dat moet iemand maar eens uitzoeken.
Maar maakt in de aansluiting voor a en b niet uit welke meest link en welke meest rechts (volgens mij zag ik de middelste leeg)?

Deze zelfde vraag voor + en -?
Ja + aan + , - aan - A aan A en B aan B :-)


Afbeeldingslocatie: https://tweakers.net/i/x5bYRMBoOqefYQcod0MGSYGJ_Kc=/x800/filters:strip_exif()/f/image/bsB9LqsewNVaOeZvj36EKzvE.png?f=fotoalbum_large
Afbeeldingslocatie: https://tweakers.net/i/GgPWkJGh7m5Dmxfn3VW7MHbbFqU=/x800/filters:strip_exif()/f/image/QsDg4uqKqZdrn34Ob7LVWMTH.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
scruysberghs schreef op maandag 27 januari 2025 @ 11:55:
Enkele controls kunnen toevoegen en testen.
[Afbeelding]

Je heb dus 2 mogelijkheden om je batterij te te laden en ontladen.
- Forcible charge/discharge gaat loden/ontladen met vermogens die ingestel staan als Marstek forcible (di)scharge power.
- Charge to soc : hier stel je een gewenst batterij percentage in en de batterij gaat (ont)laden met de vermogens ingesteld in max (dis)charge power. Niet veel kunnen testen maar lijkt op't eerste zicht wel te doen wat het moet.

In Home Assistant kan je dat wat logscher bij elkaar zetten en dan ziet het er zo uit:
[Afbeelding]

dashboard.yaml voor de section in Lovelace dat je hiervoor nodig hebt ook mee in de repo gezet.
Wow zie nu pas dat Je hier ook de dod kan instellen dus msx 90 en min 20 om de levens duur flink te verlengen
Wat ik ik mis zijn de temperatuur sensoren ?

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • +1 Henk 'm!

  • hallorichard
  • Registratie: September 2016
  • Laatst online: 16:01
Maxwp schreef op donderdag 30 januari 2025 @ 02:08:
[...]

Wow zie nu pas dat Je hier ook de dod kan instellen dus msx 90 en min 20 om de levens duur flink te verlengen
Wat ik ik mis zijn de temperatuur sensoren ?
En misschien het aantal cycles?

Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
hallorichard schreef op donderdag 30 januari 2025 @ 07:32:
[...]

En misschien het aantal cycles?
Er zijn 3 uitleesbare temperaturen, zie de doc uit de startpost, als mijn Ali pakketje binnen is kan ik verder testen.
Cycles is een waarde die niet op de lijst staat.
Maar je hebt een totaal aantal kWH ooit geladen door 5 deelt kun je de Cycles berekenen.

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
superduper1969 schreef op donderdag 30 januari 2025 @ 13:11:
[...]

Er zijn 3 uitleesbare temperaturen, zie de doc uit de startpost, als mijn Ali pakketje binnen is kan ik verder testen.
Cycles is een waarde die niet op de lijst staat.
Maar je hebt een totaal aantal kWH ooit geladen door 5 deelt kun je de Cycles berekenen.
dank ja inmiddels zelf al gevonden
maar wat is MOS2 en MOS1 en dan nog de internal?
is internal de omvormer en de MOS2 en 1 ergens in de accu cellen?

dit board is ook te bestellen bij https://www.tinytronics.nl zag ik net
iets duurder maar en snel geleverd
voor die paar euro heb ik hem liever wat sneller hier

[ Voor 13% gewijzigd door Maxwp op 30-01-2025 14:35 ]

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • +1 Henk 'm!

  • superduper1969
  • Registratie: December 2005
  • Laatst online: 21:29
Maxwp schreef op donderdag 30 januari 2025 @ 14:34:
[...]
dank ja inmiddels zelf al gevonden
maar wat is MOS2 en MOS1 en dan nog de internal?
is internal de omvormer en de MOS2 en 1 ergens in de accu cellen?

dit board is ook te bestellen bij https://www.tinytronics.nl zag ik net
iets duurder maar en snel geleverd
voor die paar euro heb ik hem liever wat sneller hier
Ik denk zelf dat MOS1 en MOS 2 de omvormers zijn en Internal de Accu.
Ik vermoed MOS = Mosfet = Vermogenselectronica

Internal is altijd net een paar graden warmer dan Mos1&2.
En tinytronics is maar een paar euro duurder dus dat had ik eerder moeten weten.

[ Voor 6% gewijzigd door superduper1969 op 30-01-2025 20:09 ]

MTVenus V151 CT003 V110 Lilygo Modbus HA integration+ Anker E1600 + 16ZP Enphase + 2ZP Anker + Quatt


Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
superduper1969 schreef op donderdag 30 januari 2025 @ 20:07:
[...]

Ik denk zelf dat MOS1 en MOS 2 de omvormers zijn en Internal de Accu.
Ik vermoed MOS = Mosfet = Vermogenselectronica

Internal is altijd net een paar graden warmer dan Mos1&2.
En tinytronics is maar een paar euro duurder dus dat had ik eerder moeten weten.
als intern warmer is zou uik niet verwachten dat dit de accus zijn
gezien de omvormer echt warmte maakt de hele tijd
zou het betekenen dat er een 800 watt en nog 1700 watt omvormer in zitten?
ze spreken van hoge effiecntie vanwegen hun kleine 800watt vermogen maar als er een 2500 omvormer in zit die op 800 watt moet werken lijkt me dat niet

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • 0 Henk 'm!

  • limwand
  • Registratie: December 2014
  • Laatst online: 19-05 23:50
superduper1969 schreef op zaterdag 11 januari 2025 @ 18:06:
In dit start topic:
  • status tot nu
  • stappen plan
  • Bijgewerkt voor V147
Dit topic is niet voor MQTT of andere koppelingen of andere discussies voor de Marstek Venus / Duravolt PnP, daarvoor kun je hier terecht: https://gathering.tweakers.net/forum/list_messages/2262054

Ik zal proberen dit starttopic bij te werken met eventuele ontwikkelingen.

Er zijn nu 2 opties:Modbus koppeling via Elfin:1: Benodigdheden
Elwin EW11 van €20 (Handleiding)
[Afbeelding]

Jst Xh2.54, Female, 10cm, 6 Pin
[Afbeelding]
[Afbeelding]

2: Maak de kabel op de volgende manier:

De kleuren van het verloopkabeltje in het midden kan afhankelijk van je bestelling bij Ali of ergens anders variëren van kleur.
Je kan uiteraard ook de bestaande connector afknippen, let dan wel op hoe de nummering liep want er zijn vier zwarte aders.
NB. De Elfin RS485 naar TCP wordt gevoed vanuit de RS485 er is geen extra power nodig.

PinBetekenisPin Elfin EW11
1 RoodRS485 - A1
2 ZwartRS485 - B4
3 ZwartNiet gebruikt
4 Geen draad
5 Zwart+ 5V voeding2
6 ZwartGND3


[Afbeelding]
Of met verloop:
[Afbeelding]


3: Test of de kabel goed is
[Afbeelding]

4: Sluit de kabel aan op de accu, de Elwin EW 11 zal starten en een Hotspot maken.
Koppel met een Laptop aan de hotspot en open IP:10.10.100.254 (mobieltje werkte bij mij de eerste keer niet)

5: Koppel de Elwin aan je Wifi via STA, let op als je dit fout doet in STA (Acces Point) modus moet je resetten.
Je kunt ook (tijdelijk) kiezen voor AP + STA maar dit geeft mindere prestaties.
PA is dus de Hotspot modus.
Optie 1: geef een vast IP adres buiten de scope van je IP
Optie 2: gebruik Dhcp en maak een reservering voor een vast IP voor je router

6: Configureer de Serial Port parameters in de Elwin
  • Baud Rate = 115200
  • Data Bit = 8
  • Stop Bit = 1
  • Parity = None
  • Buffer Size = 512
  • Gap Time = 50
  • Flow Control = Half Duplex
  • Cli = Disable
  • Protocol = Modbus
7: Configureer de Configuration Settings
  • Protocol = Tcp Server
  • Local Port = 502
  • Buffer Size = 512
  • Keep Alive(s) = 60
  • Timeout(s) = 300
  • Max Accept = 3
  • Security = Disable
  • Route = Uart
8: Maak met HA Studio Code Server een marstek_venus_battery_control.yaml met de onderstaande inhoud.
Maak een map packages (zonder hoofdletter) en plaats de marstek_venus_battery_control.yaml erin.
Pas je configuration.yaml aan zodat packages geladen wordt.
[Afbeelding]

Als je nog nooit met HA Studio Code Server hebt gewerkt bekijk je een Video op Youtube over dit onderwerp. (Als je NotePad++ gebruikt met de standaard instellingen dan gaat het mis doordat er TABS worden gebruikt i.p.v. spaties.)
[Afbeelding]

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
# ------
# MODBUS
# ------
  
  modbus:
    - name: MarstekVenus
      type: tcp
      host: 192.168.0.5
      port: 502
      delay: 1
      message_wait_milliseconds: 35
      timeout: 5
  
      sensors:
        - name: "My Battery Battery Voltage"
          unique_id: my_battery_battery_voltage
          address: 32100
          slave: 1
          scan_interval: 10
          input_type: holding
          data_type: uint16
          unit_of_measurement: V
          device_class: voltage
          state_class: measurement
          scale: 0.01
          offset: 0
          precision: 1
  
        - name: "My Battery Battery Current"
          unique_id: my_battery_battery_current
          address: 32101
          slave: 1
          scan_interval: 10
          input_type: holding
          data_type: int16
          unit_of_measurement: A
          device_class: current
          state_class: measurement
          scale: 0.01
          offset: 0
          precision: 1
  
        - name: "My Battery Battery Power"
          unique_id: my_battery_battery_power
          address: 32102
          slave: 1
          scan_interval: 10
          input_type: holding
          data_type: int32
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery Battery SOC"
          unique_id: my_battery_battery_soc
          address: 32104
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: uint16
          unit_of_measurement: "%"
          state_class: measurement
          scale: 1
          offset: 0
          precision: 0
  
        #- name: "My Battery Battery Energy"
        #  unique_id: my_battery_battery_energy
        #  address: 32105
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint16
        #  unit_of_measurement: kWh
        #  device_class: power
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        - name: "My Battery AC Voltage"
          unique_id: my_battery_ac_voltage
          address: 32200
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: uint16
          unit_of_measurement: V
          device_class: voltage
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery AC Current"
          unique_id: my_battery_ac_current
          address: 32201
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: A
          device_class: current
          state_class: measurement
          scale: 0.01
          offset: 0
          precision: 1
  
        - name: "My Battery AC Power"
          unique_id: my_battery_ac_power
          address: 32202
          slave: 1
          scan_interval: 10
          input_type: holding
          data_type: int32
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          scale: 1
          offset: 0
          precision: 0
  
        #    - name: "My Battery AC Frequency"
        #      unique_id: my_battery_ac_frequency
        #      address: 32204
        #      slave: 1
        #      scan_interval: 30
        #      input_type: holding
        #      data_type: uint16
        #      unit_of_measurement: Hz
        #      device_class: frequency
        #      state_class: measurement
        #      scale: 0.01
        #      offset: 0
        #      precision: 2
  
        - name: "My Battery AC Offgrid Voltage"
          unique_id: my_battery_ac_offgrid_voltage
          address: 32300
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: uint16
          unit_of_measurement: V
          device_class: voltage
          state_class: measurement
          scale: 0.01
          offset: 0
          precision: 1
  
        - name: "My Battery AC Offgrid Current"
          unique_id: my_battery_ac_offgrid_current
          address: 32301
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: A
          device_class: current
          state_class: measurement
          scale: 0.01
          offset: 0
          precision: 1
  
        - name: "My Battery AC Offgrid Power"
          unique_id: my_battery_ac_offgrid_power
          address: 32302
          slave: 1
          scan_interval: 10
          input_type: holding
          data_type: int32
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          scale: 1
          offset: 0
          precision: 0
  
        #- name: "My Battery Total Charging Energy"
        #  unique_id: my_battery_total_charging_energy
        #  address: 33000
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        #- name: "My Battery Total Discharging Energy"
        #  unique_id: my_battery_total_discharging_energy
        #  address: 33002
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        #- name: "My Battery Daily Charging Energy"
        #  unique_id: my_battery_daily_charging_energy
        #  address: 33004
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        #- name: "My Battery Daily Discharging Energy"
        #  unique_id: my_battery_daily_discharging_energy
        #  address: 33006
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        #- name: "My Battery Monthly Charging Energy"
        #  unique_id: my_battery_monthly_charging_energy
        #  address: 33008
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        #- name: "My Battery Monthly Discharging Energy"
        #  unique_id: my_battery_monthly_discharging_energy
        #  address: 33010
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint32
        #  unit_of_measurement: kWh
        #  device_class: energy
        #  state_class: measurement
        #  scale: 1
        #  offset: 0
        #  precision: 0
  
        - name: "My Battery Internal Temperature"
          unique_id: my_battery_internal_temperature
          address: 35000
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: °C
          device_class: temperature
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery Internal MOS1 Temperature"
          unique_id: my_battery_internal_mos1_temperature
          address: 35001
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: °C
          device_class: temperature
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery Internal MOS2 Temperature"
          unique_id: my_battery_internal_mos2_temperature
          address: 35002
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: °C
          device_class: temperature
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery Max Cell Temperature"
          unique_id: my_battery_max_cell_temperature
          address: 35010
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: °C
          device_class: temperature
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery Min Cell Temperature"
          unique_id: my_battery_min_cell_temperature
          address: 35011
          slave: 1
          scan_interval: 30
          input_type: holding
          data_type: int16
          unit_of_measurement: °C
          device_class: temperature
          state_class: measurement
          scale: 0.1
          offset: 0
          precision: 1
  
        - name: "My Battery Inverter State"
          unique_id: my_battery_inverter_state
          address: 35100
          slave: 1
          scan_interval: 5
          input_type: holding
          data_type: uint16
          unit_of_measurement: ""
          state_class: measurement
  
        #- name: "My Battery Battery Charge Voltage Limit"
        #  unique_id: my_battery_battery_charge_voltage_limit
        #  address: 35110
        #  slave: 1
        #  scan_interval: 30
        #  input_type: holding
        #  data_type: uint16
        #  unit_of_measurement: V
        #  device_class: voltage
        #  state_class: measurement
        #  scale: 0.1
        #  offset: 0
        #  precision: 1
  
        #- name: "My Battery Battery Charge Current Limit"
        #  unique_id: my_battery_battery_charge_current_limit
        #  address: 35111
        #  slave: 1
        #  scan_interval: 5
        #  input_type: holding
        #  data_type: uint16
        #  unit_of_measurement: A
        #  device_class: current
        #  state_class: measurement
        #  scale: 0.1
        #  offset: 0
        #  precision: 1
  
        #- name: "My Battery Battery Discharge Current Limit"
        #  unique_id: my_battery_battery_discharge_current_limit
        #  address: 35112
        #  slave: 1
        #  scan_interval: 5
        #  input_type: holding
        #  data_type: uint16
        #  unit_of_measurement: A
        #  device_class: current
        #  state_class: measurement
        #  scale: 0.1
        #  offset: 0
        #  precision: 1
  
        - name: "My Battery RS485 Control Mode"
          unique_id: my_battery_rs485_control_mode
          address: 42000
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: ""
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery Force Charge/Discharge Mode"
          unique_id: my_battery_force_charge_discharge_mode
          address: 42010
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: ""
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery Charge to SOC"
          unique_id: my_battery_charge_to_soc
          address: 42011
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: "%"
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery Forcible Charge Power"
          unique_id: my_battery_forcible_charge_power
          address: 42020
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: W
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery Forcible Discharge Power"
          unique_id: my_battery_forcible_discharge_power
          address: 42021
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: W
          scale: 1
          offset: 0
          precision: 0
  
        - name: "My Battery User Work Mode"
          unique_id: my_battery_user_work_mode
          address: 43000
          slave: 1
          input_type: holding
          data_type: uint16
          unit_of_measurement: ""
          scale: 1
          offset: 0
          precision: 0

      # switches:
      #   - name: "My Battery Enable RS485 Control Mode"
      #     unique_id: my_battery_enable_rs485_control_mode
      #     address: 42000
      #     slave: 1
      #     command_on: 21930 # 0x55AA in decimal
      #     command_off: 21947 # 0x55BB in decimal
      #     write_type: holding
  
      #   - name: "My Battery Force Charge Mode"
      #     unique_id: my_battery_force_charge_mode
      #     address: 42010
      #     slave: 1
      #     command_on: 1 # Charge mode
      #     command_off: 0 # Stop mode
      #     write_type: holding
  
      #   - name: "My Battery Force Discharge Mode"
      #     unique_id: my_battery_force_discharge_mode
      #     address: 42010
      #     slave: 1
      #     command_on: 2 # Discharge mode
      #     command_off: 0 # Stop mode
      #     write_type: holding
  
# ------------
# INPUT NUMBER
# ------------
  input_number:
    my_battery_discharging_charging_power:
      name: "My Battery (dis)charging power"
      min: -2500
      max: 2500
      step: 50
      unit_of_measurement: W
      mode: slider
  
  # # charge power
  # action: modbus.write_register
  # data:
  #   hub: MarstekVenus
  #   address: 42020
  #   slave: 1
  #   value: 200
  
  # # discharge power
  # action: modbus.write_register
  # data:
  #   hub: MarstekVenus
  #   address: 42021
  #   slave: 1
  #   value: 200
  
  # # force discharge
  # action: modbus.write_register
  # data:
  #   hub: MarstekVenus
  #   address: 42010
  #   slave: 1
  #   value: 2
  
  # # force charge
  # action: modbus.write_register
  # data:
  #   hub: MarstekVenus
  #   address: 42010
  #   slave: 1
  #   value: 1
  
  # # stop forcible discharge
  # action: modbus.write_register
  # data:
  #   hub: MarstekVenus
  #   address: 42010
  #   slave: 1
  #   value: 0

# ------------
# INPUT SELECT
# ------------
  
  input_select:
    my_battery_user_work_mode_input_select:
      name: My Battery User Work Mode
      options:
        - "Manual"
        - "Anti-Feed"
        - "Trade Mode"
      initial: "Manual"
  
# -------
# SCRIPTS
# -------
  script:
    my_battery_set_forcible_charge:
      sequence:
        - choose:
            - conditions:
                - condition: numeric_state
                  entity_id: input_number.my_battery_discharging_charging_power
                  above: -1
                  below: 1
              sequence:
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42010
                    slave: 1
                    value: 0
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42020
                    slave: 1
                    value: 0
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42021
                    slave: 1
                    value: 0
            - conditions:
                - condition: numeric_state
                  entity_id: input_number.my_battery_discharging_charging_power
                  above: -2501
                  below: -10
              sequence:
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42021
                    slave: 1
                    value: "{{states('input_number.my_battery_discharging_charging_power')|int|abs}}"
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42010
                    slave: 1
                    value: 2
            - conditions:
                - condition: numeric_state
                  entity_id: input_number.my_battery_discharging_charging_power
                  above: 10
                  below: 2501
              sequence:
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42020
                    slave: 1
                    value: "{{states('input_number.my_battery_discharging_charging_power')|int|abs}}"
                - action: modbus.write_register
                  data:
                    hub: MarstekVenus
                    address: 42010
                    slave: 1
                    value: 1
      alias: My Battery Set Forcible Charge
      description: ""
      icon: mdi:battery-charging-40
  
# -----------
# AUTOMATIONS
# -----------
  automation:
  - id: my_battery_sync_modbus_and_input_select
    alias: "My Battery Sync Modbus and Input Select"
    description: "sync modbus sensor with input select "
    mode: single
    triggers:
      - trigger: state
        entity_id:
          - sensor.my_battery_user_work_mode
        id: sensor_to_input_select
      - trigger: state
        entity_id:
          - input_select.my_battery_user_work_mode_input_select
        id: input_select_to_sensor
    conditions: []
    actions:
      - choose:
          - conditions:
              - condition: trigger
                id:
                  - sensor_to_input_select
            sequence:
              - action: input_select.select_option
                metadata: {}
                data:
                  option: >
                    {% if states('sensor.my_battery_user_work_mode') | int == 0 %}
                      Manual
                    {% elif states('sensor.my_battery_user_work_mode') | int == 1 %}
                      Anti-Feed
                    {% elif states('sensor.my_battery_user_work_mode') | int == 2 %}
                      Trade Mode
                    {% else %}
                      Manual
                    {% endif %}
                target:
                  entity_id: input_select.my_battery_user_work_mode_input_select
          - conditions:
              - condition: trigger
                id:
                  - input_select_to_sensor
            sequence:
              - action: modbus.write_register
                metadata: {}
                data:
                  hub: MarstekVenus
                  address: 43000
                  slave: 1
                  value: >
                    {% if is_state('input_select.my_battery_user_work_mode_input_select',
                    'Manual') %}
                      0
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Anti-Feed') %}
                      1
                    {% elif is_state('input_select.my_battery_user_work_mode_input_select',
                    'Trade Mode') %}
                      2
                    {% else %}
                      0
                    {% endif %}
# ----------------
# TEMPLATE SENSORS
# ----------------
  
  template:
    - sensor:
        - name: "My Battery Charging in W"
          unique_id: my_battery_charging_in_w
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {% if states('sensor.my_battery_ac_power') | float < 0 %}
              {{ (states('sensor.my_battery_ac_power') | float) *-1 }}
            {% else %}
              0
            {% endif %}
          
        - name: "My Battery Discharging in W"
          unique_id: my_battery_discharging_in_w
          unit_of_measurement: W
          device_class: power
          state_class: measurement
          state: >
            {% if states('sensor.my_battery_ac_power') | float > 0 %}
              {{ (states('sensor.my_battery_ac_power') | float) }}
            {% else %}
              0
            {% endif %}

  
        - name: "My Battery Force Charge/Discharge Mode Status"
          unique_id: my_battery_force_charge_discharge_mode_status
          state: >
            {% set mode = states('sensor.my_battery_force_charge_discharge_mode') | int %}
            {% if mode == 0 %}
              Stop
            {% elif mode == 1 %}
              Charge
            {% elif mode == 2 %}
              Discharge
            {% else %}
              Unknown
            {% endif %}
  
        - name: "My Battery RS485 Control Mode Status"
          unique_id: my_battery_rs485_control_mode_status
          state: >
            {% set mode = states('sensor.my_battery_rs485_control_mode') | int %}
            {% if mode == 21930 %}
              Enabled
            {% elif mode == 21947 %}
              Disabled
            {% else %}
              Unknown
            {% endif %}

#---------
# SWITCHES
#---------
  switch:
    - platform: template
      switches:
        my_battery_rs485_control_mode_switch:
          friendly_name: "My Battery RS485 Control Mode Switch"
          unique_id: my_battery_rs485_control_mode_switch
          value_template: >
            {% set mode = states('sensor.my_battery_rs485_control_mode') | int %}
            {{ mode == 21930 }}  # True (ON) when Enabled (21930), False (OFF) otherwise
          turn_on:
            action: modbus.write_register
            data:
              hub: MarstekVenus
              unit: 1
              address: 42000
              value: 21930 # Write 0x55AA to enable RS485 control mode
          turn_off:
            action: modbus.write_register
            data:
              hub: MarstekVenus
              unit: 1
              address: 42000
              value: 21947 # Write 0x55BB to disable RS485 control mode
  
# -------
# SENSORS
# -------
  
  sensor:
    - platform: integration
      name: My Battery Discharging in kWh
      unique_id: my_battery_discharging_in_kwh
      source: sensor.my_battery_discharging_in_w
      round: 2
      unit_prefix: k
      unit_time: h
      method: left
    - platform: integration
      name: My Battery Charging in kWh
      unique_id: my_battery_charging_in_kwh
      source: sensor.my_battery_charging_in_w
      round: 2
      unit_prefix: k
      unit_time: h
      method: left

# --------------
# UTILITY METERS
# --------------

  utility_meter:
    daily_discharge:
      name: My Battery Daily Discharging in kWh
      unique_id: my_battery_daily_discharging_in_kwh
      source: sensor.my_battery_discharging_in_kwh
      cycle: daily


    daily_charge:
      name: My Battery Daily Charging in kWh
      unique_id: my_battery_daily_charging_in_kwh
      source: sensor.my_battery_charging_in_kwh
      cycle: daily


9: Controleer en herstart:
[Afbeelding]

10: Je hebt nu bij Integraties een Modbus met 26 entiteiten.
[Afbeelding]

11: Je kunt nu een nieuwe Weergave toevoegen en (een deel) van de entiteiten selecteren, deze beginnen met "My Battery"
[Afbeelding]

16: En dit is dan het resultaat!
[Afbeelding]

18: Integratie in Energy Dashboard.
Zorg dat je minimaal 10 minuten laad en ontlaad om data te genereren.
Daarna kun je in het Energy Dashboard de Batterij toevoegen met de Nutsmeters.
[Afbeelding]
[Afbeelding]

Alle Modbus info is gebaseerd op deze documentatie: https://duravolt.nl/wp-content/uploads/Duravolt-Plug-in-Battery-Modbus.pdf
Met dank aan scruysberghs voor de aanvullingen van mij ontbrekende kennis.
Er zijn nog wat waarden verborgen met # deze kun je weer toevoegen als je daar behoefte aan hebt.
Ik had zelf geen behoefte aan de info en het maakte het wat minder stabiel leek het wel.
Vandaag alles binnen en mee begonnen. Bedankt heb al wat automations gebouwd als test aan de hand van ub index morgen en de energie prijzen 😄

Acties:
  • 0 Henk 'm!

  • Horla
  • Registratie: Augustus 2002
  • Laatst online: 17:28
Maxwp schreef op donderdag 30 januari 2025 @ 02:08:
[...]

Wow zie nu pas dat Je hier ook de dod kan instellen dus msx 90 en min 20 om de levens duur flink te verlengen
Wat ik ik mis zijn de temperatuur sensoren ?
Hou er rekening mee dat het een LFP batterij is. Verschillende partijen (bv een Tesla) raden aan toch elke week eens naar 100% te laden. Ik durf is deze kwestie dus niet zeggen dat tussen de 20-80% blijven (wat ik dus wel doe met de batterij van mijn pedelec) beter is dan gewoon naar 100% laden.

Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
scruysberghs schreef op maandag 27 januari 2025 @ 11:55:
Enkele controls kunnen toevoegen en testen.
[Afbeelding]

Je heb dus 2 mogelijkheden om je batterij te te laden en ontladen.
- Forcible charge/discharge gaat loden/ontladen met vermogens die ingestel staan als Marstek forcible (di)scharge power.
- Charge to soc : hier stel je een gewenst batterij percentage in en de batterij gaat (ont)laden met de vermogens ingesteld in max (dis)charge power. Niet veel kunnen testen maar lijkt op't eerste zicht wel te doen wat het moet.

In Home Assistant kan je dat wat logscher bij elkaar zetten en dan ziet het er zo uit:
[Afbeelding]

dashboard.yaml voor de section in Lovelace dat je hiervoor nodig hebt ook mee in de repo gezet.
heb de board binnen en gelijk esphome erop gezet met jou eerst versie yaml
maar de logs komen binnen de compiling etc alles wekr hij is per wifi dus ook binnen HA te zien maar de webpagine doet het niet meer?
is dat normal met de eerste versie dat er wat mis is?

hoeveel van de " " tekst moet ik aanpassen of kan ik gewoon alles kopie pasten?

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
scruysberghs schreef op dinsdag 28 januari 2025 @ 15:44:
[/quote]
Iemand het modbus aansturen van de AI mode al kunnen fixen?
[quote]

Als je in de app nu AI-optimalisatie kiest geeft de modbus "anti-feed" weer, dus eigenlijk vermoed ik dat ze nog hetzelfde modbus register 43000 gebruiken maar dat labels aangepast moeten worden.
[Afbeelding]
Ikzelf gebruik die setting niet meer, ik stuur gewoon helemaal aan vanuit HA dus dat moet iemand maar eens uitzoeken.


[...]


Ja + aan + , - aan - A aan A en B aan B :-)


[Afbeelding]
[Afbeelding]
zie niet wat A is bij de marsrtek
maar zoals ik het zie Rood aan A zwart aan B ( zwart is die naast de rode? ) maar dan moet je denk ik maar meten welke de plus en min is? staat verder niks op.
kun je vertellen zodat er niet hoeft te worden gemeten welke de plus en min is aan de kabel van de marstek
bijvoorbeeld de eerst zwarts is plsu en de 2e min ?

edit
de eerste zwarte is MIN de 2e is PLUS
de rode aan de andere kant moet op A en direct eraanvast de zwarte op B :)

[ Voor 8% gewijzigd door Maxwp op 31-01-2025 21:37 ]

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
ik heb hem aangesloten maar zie bij de logs van esphome op dit device

--

9][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=32104 count=1
[21:51:29][D][modbus_controller:039]: Modbus command to device=1 register=0x7D68 no response received - removed from send queue

--

edit
inmiddels de laatse yaml van de github eropt gezet

de naam aangepast verder niks veranderd
nu krijg ik het zelfde maar dan meerere keren
22:23:28 [D] [modbus_controller:039]

Modbus command to device=1 register=0x7DCA no response received - removed from send queue

22:23:29 [D] [modbus_controller:039]

Modbus command to device=1 register=0x7E2E no response received - removed from send queue

22:23:30 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA41A no response received - removed from send queue

22:23:31 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA424 no response received - removed from send queue

22:23:33 [D] [modbus_controller:039]

Modbus command to device=1 register=0xABE0 no response received - removed from send queue

22:23:34 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA0F0 no response received - removed from send queue

22:23:35 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA410 no response received - removed from send queue

22:23:36 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA7F8 no response received - removed from send queue

22:23:37 [D] [modbus_controller:039]

Modbus command to device=1 register=0x7DCA no response received - removed from send queue

22:23:38 [D] [modbus_controller:039]

Modbus command to device=1 register=0x7E2E no response received - removed from send queue

22:23:39 [D] [modbus_controller:039]

Modbus command to device=1 register=0xA41A no response received - removed from send queue

22:23:39 [W] [modbus_controller:185]

Duplicate modbus command found: type=0x3 address=42020 count=2

22:23:39 [W] [modbus_controller:185]

Duplicate modbus command found: type=0x3 address=44000 count=4

22:23:40 [D] [modbus_controller:039]

edit heb wel de laatse firmware draaien geen idee of daar iets is veranderd?
firmware 147
zou het de firmware zijn? de HA b2500 emulatie werkt met 146 ook beter en met 147 valt deze af en toe weg lees ik

edit
heb alles doorgemeten
de pin op de stekker van marstek en doorgemeten of deze binnen komen bij de rs485 stekker.
ook dus of alles 1 op 1 is.
rx en tx al eens omgedraait
de tijd van uitlezen van 1 second naar hogere waarde gezet en dan vallen wel de duplicate meldingen weg maar verder nog steeds niks

edit
werkelijik alles al geprobeerd
vraag me af of ik niet de pech heb van een defecte lily board.
ik heb wel niet de aliexpress dus vraag me af of daar wat anders is qua baud of adressen ergens?


edit
moet ik voor deze HA met de lily ook dit doen?
--
Maak met HA Studio Code Server een marstek_venus_battery_control.yaml met de onderstaande inhoud.
Maak een map packages (zonder hoofdletter) en plaats de marstek_venus_battery_control.yaml erin.
Pas je configuration.yaml aan zodat packages geladen wordt.
--

edit
mm zo te zien niet want dat is meer de verwijzing naar binnen in HA
het gaat met de communicatie al mis volgens mij.

[ Voor 93% gewijzigd door Maxwp op 01-02-2025 01:56 ]

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • +1 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
@Maxwp heb je ooit naar dat prentje in de eerste post van @superduper1969 gekeken? Daar staat toch duidelijk welke aansluiting A, B + en ground/- is van de meegeleverde kabel.

Krijg je helemaal niets van waarden binnen?
Uitlezen lukt altijd als je kabeltjes goed zitten maar het schrijven van de resgisters (laadvermogen etc) kan pas nadat je de "Marstek RS485 Control Mode Select" op enable zet.

Die marstek_venus_battery_control.yaml file was enkel bij de eerste poging als we Home Assistant modbus registers lieten uitlezen/schrijven.

Ja heb zeker firmwae 147 nodig om de Lilygo of andere esp of modbus dongels te kunnen gebruiken, In de firmware versies daarvoor zat er een fout in de modbus setup van de batterij (CRC byte swap)

Acties:
  • 0 Henk 'm!

  • Maxwp
  • Registratie: Juni 2011
  • Laatst online: 00:32
scruysberghs schreef op zaterdag 1 februari 2025 @ 11:28:
@Maxwp heb je ooit naar dat prentje in de eerste post van @superduper1969 gekeken? Daar staat toch duidelijk welke aansluiting A, B + en ground/- is van de meegeleverde kabel.

Krijg je helemaal niets van waarden binnen?
Uitlezen lukt altijd als je kabeltjes goed zitten maar het schrijven van de resgisters (laadvermogen etc) kan pas nadat je de "Marstek RS485 Control Mode Select" op enable zet.

Die marstek_venus_battery_control.yaml file was enkel bij de eerste poging als we Home Assistant modus registers lieten uitlezen/schrijven.

Ja heb zeker firmwae 147 nodig om de Lilygo of andere esp of modbus dongels te kunnen gebruiken, In de firmware versies daarvoor zat er een fout in de modbus setup van de batterij (CRC byte swap)
dan moet ik snel vragen om de firmware downgrade niet te laten plaats vinden wat ik nu wel heb gevraagd haha
dus 146 gaat zelfs helemaal niet werken? ok.

nee krijg 0 waardus alleen die meldingen zoals je leest
heb alles doorgemeten dus de stekker op de marstek de pinnen of die overeenkomen en dat er verbinding is tot an de schroeven aan de plug van dde lily.

dus ik zou zeggen dat de kabeltjes goed zitten
trouwens toen ik hem eveen aan de pc hing en dus niet de modbus anagesloten kreeg ik gewoon de zelfde meldingen ( dus die dublicate etc )
weet niet of dat normaal is als hij dus niet aan dde marstek zit dat hij deze meldingen ook heeft
zou ik een afwijkende lily hebben?

je wilt niet eens kijken wat de esp logs zeggen als jij hem ook los hebt van de marstek
krijg je dan ook die meldingen zo ja moet ik nog eens kijken naar de verbinding dan of zo?

edit
dit is mijn log

---
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
INFO ESPHome 2024.12.4
INFO Reading configuration /config/esphome/esphome-web-b3566c.yaml...
INFO Starting log output from xxxxxx using esphome API
INFO Successfully connected to esphome-web-b3566c @ xx in 0.016s
INFO Successful handshake with esphome-web-b3566c @ xx in 0.018s
[12:15:53][I][app:100]: ESPHome version 2024.12.4 compiled on Feb  1 2025, 04:16:14
[12:15:53][C][wifi:600]: WiFi:
[12:15:53][C][wifi:428]:   Local MAC: xx
[12:15:53][C][wifi:433]:   SSID: [redacted]
[12:15:53][C][wifi:436]:   IP Address: xxxxxxx
[12:15:53][C][wifi:439]:   BSSID: [redacted]
[12:15:53][C][wifi:441]:   Hostname: 'esphome-web-b3566c'
[12:15:53][C][wifi:443]:   Signal strength: -74 dB ▂▄▆█
[12:15:53][C][wifi:447]:   Channel: x
[12:15:53][C][wifi:448]:   Subnet: xx
[12:15:53][C][wifi:449]:   Gateway: xx
[12:15:53][C][wifi:450]:   DNS1: xx
[12:15:53][C][wifi:451]:   DNS2: xx
[12:15:53][C][logger:185]: Logger:
[12:15:53][C][logger:186]:   Level: DEBUG
[12:15:53][C][logger:188]:   Log Baud Rate: 115200
[12:15:53][C][logger:189]:   Hardware UART: UART0
[12:15:53][D][modbus_controller:039]: Modbus command to device=1 register=0xA410 no response received - removed from send queue
[12:15:53][C][uart.idf:159]: UART Bus 1:
[12:15:53][C][uart.idf:160]:   TX Pin: GPIO22
[12:15:53][C][uart.idf:161]:   RX Pin: GPIO21
[12:15:53][C][uart.idf:163]:   RX Buffer Size: 256
[12:15:53][C][uart.idf:165]:   Baud Rate: 115200 baud
[12:15:53][C][uart.idf:166]:   Data Bits: 8
[12:15:53][C][uart.idf:167]:   Parity: NONE
[12:15:53][C][uart.idf:168]:   Stop bits: 1
[12:15:53][C][modbus:165]: Modbus:
[12:15:53][C][modbus:167]:   Send Wait Time: 200 ms
[12:15:53][C][modbus:168]:   CRC Disabled: NO
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek forcible charge power'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:tune-variant'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: 'W'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek forcible discharge power'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:tune-variant'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: 'W'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek charge to SOC'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:battery-charging-medium'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: '%'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek charging cutoff capacity'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:battery-90'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: '%'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek discharging cutoff capacity'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:battery-10'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: '%'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek max charge power'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:tune-variant'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: 'W'
[12:15:53][C][modbus.number:083]: modbus.numberModbus Number 'Marstek max discharge power'
[12:15:53][C][modbus.number:083]: modbus.number  Icon: 'mdi:tune-variant'
[12:15:53][C][modbus.number:083]: modbus.number  Unit of Measurement: 'W'
[12:15:53][C][modbus_controller:349]: ModbusController:
[12:15:53][C][modbus_controller:350]:   Address: 0x01
[12:15:53][C][modbus_controller:351]:   Max Command Retries: 4
[12:15:53][C][modbus_controller:352]:   Offline Skip Updates: 0
[12:15:53][C][modbus_controller.text_sensor:012]: Modbus Controller Text Sensor 'Marstek device name'
[12:15:53][C][modbus_controller.text_sensor:012]:   Icon: 'mdi:information'
[12:15:53][C][modbus_controller.binary_sensor:009]: Modbus Controller Binary Sensor 'Marstek Battery Protection Active'
[12:15:53][C][modbus_controller.binary_sensor:009]: Modbus Controller Binary Sensor 'Marstek Battery Overvoltage Warning'
[12:15:53][C][modbus_controller.binary_sensor:009]: Modbus Controller Binary Sensor 'Battery Undervoltage Warning'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek Battery State of Charge'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: ''
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: '%'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 1
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-70'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek total charging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-up'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek total discharging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-down'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek daily charging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-up'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek daily discharging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-down'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek monthly charging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-up'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek monthy discharging energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'energy'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'total_increasing'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'kWh'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 2
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-arrow-down'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek AC power'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'power'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'measurement'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'W'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:battery-charging'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensorModbus Controller Sensor 'Marstek offgrid power'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Device Class: 'power'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  State Class: 'measurement'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Unit of Measurement: 'W'
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Accuracy Decimals: 0
[12:15:53][C][modbus_controller.sensor:010]: modbus_controller.sensor  Icon: 'mdi:power-plug-battery'
[12:15:53][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'Marstek forcible charge/discharge'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.select  Icon: 'mdi:swap-horizontal'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'Marstek backup function'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.select  Icon: 'mdi:power-socket-fr'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'Marstek user work mode'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.select  Icon: 'mdi:auto-mode'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'Marstek RS485 Control Mode Select'
[12:15:54][C][modbus_controller.select:009]: modbus_controller.select  Icon: 'mdi:swap-horizontal'
[12:15:54][C][web_server:153]: Web Server:
[12:15:54][C][web_server:154]:   Address: esphome-web-b3566c.local:80
[12:15:54][C][mdns:116]: mDNS:
[12:15:54][C][mdns:117]:   Hostname: esphome-web-b3566c
[12:15:54][C][esphome.ota:073]: Over-The-Air updates:
[12:15:54][C][esphome.ota:074]:   Address: esphome-web-b3566c.local:3232
[12:15:54][C][esphome.ota:075]:   Version: 2
[12:15:54][C][safe_mode:018]: Safe Mode:
[12:15:54][C][safe_mode:019]:   Boot considered successful after 60 seconds
[12:15:54][C][safe_mode:021]:   Invoke after 10 boot attempts
[12:15:54][C][safe_mode:022]:   Remain in safe mode for 300 seconds
[12:15:54][C][api:140]: API Server:
[12:15:54][C][api:141]:   Address: esphome-web-b3566c.local:6053
[12:15:54][C][api:145]:   Using noise encryption: NO
[12:15:54][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:15:54][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=42020 count=2
[12:15:55][D][modbus_controller:039]: Modbus command to device=1 register=0xA424 no response received - removed from send queue
[12:15:56][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:15:57][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:15:58][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:15:59][D][modbus_controller:039]: Modbus command to device=1 register=0xABE0 no response received - removed from send queue
[12:16:00][D][modbus_controller:039]: Modbus command to device=1 register=0xA0F0 no response received - removed from send queue
[12:16:01][D][modbus_controller:039]: Modbus command to device=1 register=0xA410 no response received - removed from send queue
[12:16:02][D][modbus_controller:039]: Modbus command to device=1 register=0xA7F8 no response received - removed from send queue
[12:16:03][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:04][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:16:05][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:16:06][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=42020 count=2
[12:16:06][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=44000 count=4
[12:16:06][D][modbus_controller:039]: Modbus command to device=1 register=0xA424 no response received - removed from send queue
[12:16:08][D][modbus_controller:039]: Modbus command to device=1 register=0xABE0 no response received - removed from send queue
[12:16:09][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:10][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:16:11][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:16:12][D][modbus_controller:039]: Modbus command to device=1 register=0x7918 no response received - removed from send queue
[12:16:13][D][modbus_controller:039]: Modbus command to device=1 register=0x7D68 no response received - removed from send queue
[12:16:14][D][modbus_controller:039]: Modbus command to device=1 register=0x80E8 no response received - removed from send queue
[12:16:15][D][modbus_controller:039]: Modbus command to device=1 register=0xA0F0 no response received - removed from send queue
[12:16:16][D][modbus_controller:039]: Modbus command to device=1 register=0xA410 no response received - removed from send queue
[12:16:17][D][modbus_controller:039]: Modbus command to device=1 register=0xA7F8 no response received - removed from send queue
[12:16:18][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:18][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=32302 count=2
[12:16:18][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=42010 count=2
[12:16:18][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=42020 count=2
[12:16:18][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=44000 count=4
[12:16:19][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:16:20][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:16:21][D][modbus_controller:039]: Modbus command to device=1 register=0xA424 no response received - removed from send queue
[12:16:22][D][modbus_controller:039]: Modbus command to device=1 register=0xABE0 no response received - removed from send queue
[12:16:23][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:24][D][modbus_controller:039]: Modbus command to device=1 register=0xA0F0 no response received - removed from send queue
[12:16:25][D][modbus_controller:039]: Modbus command to device=1 register=0xA410 no response received - removed from send queue
[12:16:26][D][modbus_controller:039]: Modbus command to device=1 register=0xA7F8 no response received - removed from send queue
[12:16:27][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:28][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:16:30][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:16:30][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=42020 count=2
[12:16:30][W][modbus_controller:185]: Duplicate modbus command found: type=0x3 address=44000 count=4
[12:16:31][D][modbus_controller:039]: Modbus command to device=1 register=0xA424 no response received - removed from send queue
[12:16:32][D][modbus_controller:039]: Modbus command to device=1 register=0xABE0 no response received - removed from send queue
[12:16:33][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:34][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue
[12:16:35][D][modbus_controller:039]: Modbus command to device=1 register=0xA41A no response received - removed from send queue
[12:16:36][D][modbus_controller:039]: Modbus command to device=1 register=0xA0F0 no response received - removed from send queue
[12:16:36][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[12:16:36][D][esp32.preferences:114]: Saving 1 preferences to flash...
[12:16:36][D][esp32.preferences:142]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[12:16:37][D][modbus_controller:039]: Modbus command to device=1 register=0xA410 no response received - removed from send queue
[12:16:38][D][modbus_controller:039]: Modbus command to device=1 register=0xA7F8 no response received - removed from send queue
[12:16:39][D][modbus_controller:039]: Modbus command to device=1 register=0x7DCA no response received - removed from send queue
[12:16:40][D][modbus_controller:039]: Modbus command to device=1 register=0x7E2E no response received - removed from send queue



en dit de esp file

--
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
esphome:
  name: esphome-web-b3566c
  friendly_name: LILYGO RS485
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:
 ssid: xxx
 password: xxxx
 fast_connect: true # Optional. Required if connecting to a hidden SSID



web_server:
  port: 80

# Configure uart that will be used
uart:
  - id: mod_bus
    rx_pin: GPIO21
    tx_pin: GPIO22
    baud_rate: 115200
    data_bits: 8
    stop_bits: 1
    parity: NONE

modbus:
  - uart_id: mod_bus
    id: modbus1
    send_wait_time: 200ms

modbus_controller:
  - id: marstek_venus
    address: 0x1
    modbus_id: modbus1
    command_throttle: 200ms
    update_interval: 1s

#modbus registers
# range 31000-
text_sensor:
  - name: "Marstek device name"
    icon: "mdi:information"
    platform: modbus_controller
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 31000
    register_count: 1
    response_size: 20
    skip_updates: 30  #skip updates bepaalt hoe veel update_intervalss dit geskipts wordt. Dus als update_interval van modbus_controller 1s is dit 30s

binary_sensor:
  - platform: modbus_controller
    name: "Marstek Battery Protection Active"
    icon: "mdi:information"
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 44001
    bitmask: 0x01
    skip_updates: 30
  - platform: modbus_controller
    name: "Marstek Battery Overvoltage Warning"
    icon: "mdi:information"
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 44002
    bitmask: 0x02
    skip_updates: 30
  - platform: modbus_controller
    name: "Battery Undervoltage Warning"
    icon: "mdi:information"
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 44003
    bitmask: 0x04
    skip_updates: 30


#for reference
        # U_WORD: unsigned 16 bit integer from 1 register = 16bit
        # S_WORD: signed 16 bit integer from 1 register = 16bit
        # U_DWORD: unsigned 32 bit integer from 2 registers = 32bit
        # S_DWORD: signed 32 bit integer from 2 registers = 32bit
        # U_DWORD_R: unsigned 32 bit integer from 2 registers low word first
        # S_DWORD_R: signed 32 bit integer from 2 registers low word first
        # U_QWORD: unsigned 64 bit integer from 4 registers = 64bit
        # S_QWORD: signed 64 bit integer from 4 registers = 64bit
        # U_QWORD_R: unsigned 64 bit integer from 4 registers low word first
        # S_QWORD_R: signed 64 bit integer from 4 registers low word first
        # FP32: 32 bit IEEE 754 floating point from 2 registers
        # FP32_R: 32 bit IEEE 754 floating point - same as FP32 but low word first


sensor:
  - name: "Marstek Battery State of Charge"
    icon: mdi:battery-70
    platform: modbus_controller
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32104  # Register address for Battery SOC
    value_type: U_WORD  # Unsigned 16-bit value =u16 in marstek pdf
    unit_of_measurement: "%"
    accuracy_decimals: 1
    skip_updates: 30
  - name: "Marstek total charging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-up
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33000
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 300
    filters:
      - multiply: 0.01
  - name: "Marstek total discharging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-down
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33002
    value_type: U_DWORD  #=U32 in marstek pdf
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 300
    filters:
      - multiply: 0.01
  - name: "Marstek daily charging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-up
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33004
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 30
    filters:
      - multiply: 0.01
  - name: "Marstek daily discharging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-down
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33006
    value_type: U_DWORD  #=U32 in marstek pdf
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 300
    filters:
      - multiply: 0.01
  - name: "Marstek monthly charging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-up
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33008
    value_type: U_DWORD
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 300
    filters:
      - multiply: 0.01
  - name: "Marstek monthy discharging energy"
    platform: modbus_controller
    icon: mdi:battery-arrow-down
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 33010
    value_type: U_DWORD  #=U32 in marstek pdf
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 2
    skip_updates: 300
    filters:
      - multiply: 0.01
  - name: "Marstek AC power"
    platform: modbus_controller
    icon: mdi:battery-charging
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32202
    value_type: S_DWORD  #=s32 in marstek pdf
    unit_of_measurement: "W"
    device_class: power
    state_class: measurement
    accuracy_decimals: 0
    skip_updates: 5
    filters:
      - multiply: 1
  - name: "Marstek offgrid power"
    platform: modbus_controller
    icon: mdi:power-plug-battery
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 32302
    value_type: S_DWORD  #=s32 in marstek pdf
    unit_of_measurement: "W"
    device_class: power
    state_class: measurement
    accuracy_decimals: 0
    skip_updates: 5
    filters:
      - multiply: 1
  


select:
  - platform: modbus_controller
    name: "Marstek forcible charge/discharge"
    icon: mdi:swap-horizontal
    modbus_controller_id: marstek_venus
    address: 42010
    value_type: U_WORD
    optionsmap:
      "Stop": 0
      "Charge": 1
      "Discharge": 2
    skip_updates: 10
  - platform: modbus_controller
    name: "Marstek backup function"
    icon: mdi:power-socket-fr
    modbus_controller_id: marstek_venus
    address: 41200
    value_type: U_WORD
    optionsmap:
      "enable": 0
      "disable": 1
    skip_updates: 10
  - platform: modbus_controller
    name: "Marstek user work mode"
    icon: mdi:auto-mode
    modbus_controller_id: marstek_venus
    address: 43000
    value_type: U_WORD
    optionsmap:
      "manual": 0
      "anti-feed": 1
      "trade-mode": 2
    skip_updates: 10
  - platform: modbus_controller
    name: "Marstek RS485 Control Mode Select"
    icon: mdi:swap-horizontal
    modbus_controller_id: marstek_venus
    address: 42000
    value_type: U_WORD
    optionsmap:
      "Enable": 21930
      "Disable": 21947
    skip_updates: 10
    
#enable: 21930 # 0x55AA in decimal
#disable: 21947 # 0x55BB in decimal

number:
  - platform: modbus_controller
    name: "Marstek forcible charge power"
    icon: mdi:tune-variant
    modbus_controller_id: marstek_venus
    mode: box
    register_type: holding
    address: 42020
    value_type: U_WORD
    unit_of_measurement: "W"
    min_value: 0
    max_value: 2500
    step: 1
    skip_updates: 5
    # write_lambda: |-
    #   // Convert the value to an integer explicitly
    #   return uint16_t(x);
  - platform: modbus_controller
    name: "Marstek forcible discharge power"
    icon: mdi:tune-variant
    modbus_controller_id: marstek_venus
    mode: box
    register_type: holding
    address: 42021
    value_type: U_WORD
    unit_of_measurement: "W"
    min_value: 0
    max_value: 2500
    step: 1
    skip_updates: 5
    # write_lambda: |-
    #   // Convert the value to an integer explicitly
    #   return uint16_t(x);
  - platform: modbus_controller
    name: "Marstek charge to SOC"
    icon: mdi:battery-charging-medium
    modbus_controller_id: marstek_venus
    mode: box
    register_type: holding
    address: 42011
    value_type: U_WORD
    unit_of_measurement: "%"
    min_value: 12
    max_value: 100
    step: 1
    skip_updates: 5
#we should try to read/write 44000-44003 in one go https://esphome.io/components/modbus_controller.html#optimizing-modbus-communications
  - name: "Marstek charging cutoff capacity"
    platform: modbus_controller
    icon: mdi:battery-90
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 44000 #line to add : register_count: 4  # Read all 4 registers at once
    value_type: U_WORD  #=u16 in marstek pdf
    unit_of_measurement: "%"
    skip_updates: 20
    min_value: 80
    max_value: 100
    multiply: 10

  - name: "Marstek discharging cutoff capacity"
    platform: modbus_controller
    icon: mdi:battery-10
    modbus_controller_id: marstek_venus
    register_type: holding
    address: 44001
    value_type: U_WORD  #=u16 in marstek pdf
    unit_of_measurement: "%"
    skip_updates: 20
    min_value: 12
    max_value: 30
    multiply: 10

  - platform: modbus_controller
    name: "Marstek max charge power"
    icon: mdi:tune-variant
    modbus_controller_id: marstek_venus
    mode: box
    register_type: holding
    address: 44002
    value_type: U_WORD
    unit_of_measurement: "W"
    min_value: 0
    max_value: 2500
    step: 1
    skip_updates: 5

  - platform: modbus_controller
    name: "Marstek max discharge power"
    icon: mdi:tune-variant
    modbus_controller_id: marstek_venus
    mode: box
    register_type: holding
    address: 44003
    value_type: U_WORD
    unit_of_measurement: "W"
    min_value: 0
    max_value: 2500
    step: 1
    skip_updates: 5



#### krijg die switch niet werkend, heb er een select van gemaakt. esphome bekijkt een switch steeds als een coil en niet als holding register
#### al getest met de decimals (21930 # 0x55AA in decimal) en verschillende bitmasks zoals hier waar ze gewwon 0 of 1 willen schrijven naar een holding register met een switch
#### switch zou wel een betere oplosing zijn https://github.com/esphome/issues/issues/5888
# switch:
#   - platform: modbus_controller
#     name: "Marstek RS485 Control Mode"
#     icon: mdi:transfer
#     modbus_controller_id: marstek_venus
#     register_type: holding
#     address: 42000
#     write_lambda: |-
#       if (x) {
#         // Enable RS485 control mode (0x55AA)
#         payload.push_back(0x55AA);  // Add the full 16-bit word
#       } else {
#         // Disable RS485 control mode (0x55BB)
#         payload.push_back(0x55BB);  // Add the full 16-bit word
#       }
#       return true;  // Indicate success

[ Voor 132% gewijzigd door Maxwp op 01-02-2025 12:33 ]

.nl / Thuisaccu 5.12kwh ( Venus E V151, CT003( net niet ) met V114 of shelly gaat wel , digitale meter ESMR5 ) / Hoymiles solar en nu marstek nr2 gen 2? per april 2025


Acties:
  • 0 Henk 'm!

  • scruysberghs
  • Registratie: September 2020
  • Laatst online: 21-05 11:58
ziet je Lilygo er hetzelfde als op de foto's die ik je stuurde? Anders moet je misschien op zoek enaar een schema van het bordje dat je hebt om te kijken of de rx en tx pin kloppen.

Als je modbus wil gebruiken niet terug naar firmware 146.

Je zou nog eens kunnen proberen de data ground (dus de nu niet gebruikte middenste kabel van de batterij) mee aan de Lilygo te hangen, aan de middenste van de 3 rs485 aansluitingen. Normaal niet nodig als je de 5v voeding gebruikt die van de batterij komt en de ground dus normaal al wel ok zal zijn maar je weet maar nooit.

Als je een modbus RTU usb dongle hebt kan je ook met een modbus scan tooltje op je laptop aan slag om te kijken of je connectie goed zit.

edit:
volgens je log is er geen werkende verbinding. Je zegt zelf dat je dezelfde meldingen hebt als de kabel niet aangesloten is.

Dus:
- ofwel verbinding slecht.
- een lily go met andere pins voor rx en tx https://lilygo.cc/cdn/sho...pg?v=1669097271&width=600 (maar dat lijkt me onwaarsch.)

[ Voor 18% gewijzigd door scruysberghs op 01-02-2025 13:57 ]

Pagina: 1 2 ... 9 Laatste