[App][Pro] SlimLaden voor Marstek - inclusief local API

Mondelinge toelichting: Klik hier

SlimLaadplan - Uitgebreide Handleiding

SlimLaadplan is een geavanceerde Homey app die je batterijsysteem (Marstek Venus of Sessy(beta)) automatisch optimaliseert op basis van dynamische energieprijzen, zonnepaneel voorspellingen en je eigen verbruikspatronen. De app gebruikt intelligente algoritmes om winst te maximaliseren en energiekosten te minimaliseren.

Devices

1. Battery Action Device (Hoofddevice)

  • Het centrale planningsdevice
  • Configureert je batterij-instellingen
  • Stuurt MQTT commando’s (voor Marstek) of via (rest) API

2. Energy Prices Device

  • Haalt dynamische energieprijzen op
  • Ondersteunt nu ook Tibber middels een API-key
  • Automatische updates

3. Energy Usage Device

  • Leert van je werkelijke verbruikspatronen
  • Past verbruiksfracties automatisch aan
  • Verbetert nauwkeurigheid over tijd

4. Solar Forecast Device

  • Zonnepaneel productie voorspelling (Solcast of Open Meteo)
  • Integreert met planning algoritmes

Basis Setup

Voeg alle devices toe
Doorloop de setup via http:[ipadres-homey]/diagnostics.html


Strategieën

Dynamic Strategie (Standaard)

Principe: Maximaliseer winst door slim te laden op goedkoopste momenten en ontladen op duurste momenten.

Hoe het werkt:

  • **Zoekt koppels laden en ontladen, met een minimaal prijsverschil en gaat anders over op alleen laden of NOM

Net Zero Strategie

Kenmerken:

  • Functioneert alleen bij “Alleen laden”
  • Batterij is vol: en verdeelt vervolgens de kwh’s over de duurste kwartieren (wanneer er onvoldoende kwh’s zijn om ieder kwartier te voorzien van stroom)

Verbruik Instellingen:

  • Home Consumption (W): Standaard huisverbruik per uur
  • Gebruik Energy Usage Device: Voor adaptief leren (aanbevolen)

Adaptief Leren

Energy Usage Device (Nieuw!)

Het Energy Usage Device leert van je werkelijke verbruikspatronen en verbetert de nauwkeurigheid van voorspellingen.

Hoe het werkt:

  1. Data Verzameling:
device.logActualUsage(hour, actualWh, predictedWh)
  1. Leer Algoritme:
  • Vergelijkt voorspeld vs werkelijk verbruik
  • Houdt rekening met seizoenen (per maand)
  • Onderscheidt weekdagen vs weekends
  • Learning rate: 10% aanpassing per update
  1. Automatische Updates:
  • Dagelijks om 02:00 worden fracties bijgewerkt
  • Minimum 7 dagen data nodig voor eerste update
  • Fracties worden genormaliseerd (totaal = 100%)

Verbruiksfracties:
Standaard fracties (voorbeelden):

  • 00:00: 2.77% (nacht)
  • 07:00: 5.68% (ochtendspits)
  • 13:00: 4.33% (middag)
  • 17:00: 5.64% (avondspits)
  • 23:00: 3.31% (avond)

Flow Cards voor Leren:

  • Force Learning Update: Handmatig fracties bijwerken
  • Show Learning Stats: Toon statistieken
  • Log Actual Usage: Handmatig verbruik loggen

Learning Statistieken:

  • Totaal aantal samples
  • Dagen aan data
  • Gemiddelde fout per uur
  • Nauwkeurigheidsverbeteringen

MQTT Integratie

Marstek Venus Setup

  1. ESPHome Configuratie (Marstek.yaml):
mqtt:
  broker: "192.168.x.x"  # IP van je Homey
  port: 1883
  username: "je_username"
  password: "je_password"
  topic_prefix: "marstek"
  discovery: false
  1. Multi-Batterij Topics:
  • Batterij 1: marstek
  • Batterij 2: marsteka
  • Batterij 3: marstekb

Automatische MQTT Commando’s:

Bij Actie Wijziging (elk uur):

  • System detecteert huidige geplande actie
  • Stuurt automatisch juiste (MQTT) commando’s

Connection Health:

  • Automatische verbinding monitoring
  • Retry logica bij connectie problemen
  • Logging van alle activiteit

Flows en Automatisering

Beschikbare Flow Cards:

Triggers:

  • Current Action Changed: Wanneer batterij actie wijzigt
  • Plan Created: Nieuw laadplan aangemaakt
  • Learning Updated: Verbruiksfracties bijgewerkt

Conditions:

  • Price Below Threshold: Prijs onder drempel
  • Current Action Is: Huidige actie controle
  • Battery SOC Range: Batterijniveau controle

Actions:

  • Create Charging Plan: Handmatig plan maken
  • Show Timeline: Toon planning op tijdlijn
  • Force Learning Update: Trigger adaptief leren
  • Log Actual Usage: Verbruik data invoeren

Tabel Weergave:

Uur | Actie    | Prijs   | Vermogen
----|----------|---------|----------
13  | LADEN    | €0.10   | 2400W
14  | LADEN    | €0.11   | 5W
17  | ONTLADEN | €0.20   | 800W
18  | ONTLADEN | €0.18   | 400W

Geavanceerde Functies

Graaddag Correctie:

  • Automatische temperatuur compensatie
  • Hoger verbruik bij koud weer
  • Integratie met weersvoorspelling

Troubleshooting

Voorkomende Problemen:

1. MQTT Verbinding Mislukt:

  • Symptomen: Geen automatische acties, “MQTT connection failed” in logs
  • Oplossing:
    • Controleer IP-adres Homey in Marstek.yaml
    • Verificeer username/password
    • Check firewall instellingen
    • Test verbinding met MQTT explorer

2. Planning Wordt Niet Uitgevoerd:

  • Symptomen: Timeline toont NOM voor alle uren
  • Oplossing:
    • Controleer Energy Prices Device
    • Verificeer minimum profit instellingen
    • Check of automatische planning is ingeschakeld
    • Kijk naar batterij SOC waarden

3. Verbruik Voorspelling Onnauwkeurig:

  • Symptomen: Grote afwijkingen tussen plan en werkelijkheid
  • Oplossing:
    • Voeg Energy Usage Device toe
    • Log handmatig verbruiksdata
    • Wacht op adaptief leren (minimaal 7 dagen)
    • Controleer “home consumption” instellingen

4. Batterij Reageert Niet:

  • Symptomen: MQTT commando’s verzonden maar batterij doet niets
  • Oplossing:
    • Controleer ESPHome logs
    • Verificeer Modbus communicatie
    • Check batterij control mode instellingen
    • Test handmatige commando’s

Logging en Diagnostiek:

Belangrijke Log Berichten:

[MQTT] ✅ Command sent: marstek/select/... → enable
[Dynamic][Smart] Charging powers: 2400W, 5W for hours 13, 14
[Learning] ✅ Updated fractions - 10 days of data, 240 samples
[Timeline] Plan updated: €2.45 profit expected

Debug Informatie:

  • Enable “Additional logging” in device settings
  • Check Homey system logs
  • Monitor MQTT broker logs
  • Gebruik ESPHome web interface

Ondersteuning

Community:

  • Homey Community Forum: Voor vragen en tips

Versie Historie:

v4.0 (Huidig):

  • :white_check_mark: Intelligente vermogensmodulatie
  • :white_check_mark: Adaptief leren van verbruikspatronen
  • :white_check_mark: MQTT vermogenscommando’s
  • :white_check_mark: 95-100% SOC laadbeperking
  • :white_check_mark: Multi-batterij ondersteuning
  • :white_check_mark: Performance optimalisaties

Toekomstige Functies:

  • Weather-based consumption prediction
  • Machine learning verbruikspatronen
  • Advanced flow conditions

https://homey.app/en-nl/app/com.energyprices.app/SmartLoading-for-Marstek/test/

Deze handleiding is gemaakt voor SlimLaadplan v4.0. Voor de meest recente informatie, check de app settings en community forums.

Let op: Deze app is bedoeld voor gebruikers met een dynamisch energiecontract en thuisbatterij.

Voor vragen, feedback of ondersteuning, bezoek de Homey Community of de supportpagina van de ontwikkelaar.

1 Like

Later meer

Hé Roedi, fantastisch om te zien dat je dit hebt ontwikkeld voor de homey! Nu heb ik 2 marsteks en een homey, echter helaas helemaal niet bekend met de lilygo / mqtt platform, is er ergens een filmpje of tutorial wat ik zou moeten kopen en doen om deze app te testen? Zou het onwijs tof vinden en jouw gecreeerde modus lijkt mij veel efficiënter dan die van de marstek zelf

1 Like

Hier heb je al wat leeswerk en kijkwerk

1 Like

Helemaal juist. Over Mqtt hoef je op zich niet veel van af te weten. Je moet alleen een stukje toevoegen aan je yaml-file en credentials ingeven in mijn app. Zover ik begrepen heb is mqtt de enige manier waarmee je de marstek kan bedienen vanuit de Homey.

Let op je hebt 2 Lilygo’s nodig.

Ja thnx! Had me er al in verdiept om het modbus esphome verhaal te doen maar ben eventjes in de war in het verschil lilygo en modbus esphome en de mqtt variant :joy:. Hoef niet perce HA te hebben als ik hem in de homey krijg . Zal eens 2 LilyGo T-CAN485 bestellen met die kabeltjes en zien hoe ver ik kom :+1:

Ah ja was in de war door het mqtt verhaal, had er eerlijk gezegd nog nooit van gehoord

Om het ingewikkeld te maken :grinning_face:: de Homey praat met de Lilygo via mijn app, via MQTT. De Lilygo is weer aangesloten op de Modbus aansluiting op de Marstek. Vandaar ook bijna dezelfde yaml-file.

Haha heb de lilygo boardjes besteld incl kabeltjes en als ze binnen zijn zal ik eens gaan prutsen :see_no_evil_monkey:.

1 Like

Heb je nieuwe app weer geïnstalleerd. Ik ga hem nu gebruiken om te laten laden en ontladen.
Alleen doe ik dat nu nog met mijn eigen mqtt flows.
Zou het een optie zijn dat als je 1 batterij kiest, de prefix marstek is, bij 2 batterijen marsteka en marstekb, en bij 3 batterijen marsteka, marstekb en marstekc?
Dan zou ik alleen de app nog maar nodig hebben :slightly_smiling_face:

Nou. Ik moet eerst maar eens zorgen dat de app stabiel wordt. Op dit moment werkt hij niet zoals ik wil. Ik ben heel erg druk geweest met nul op de meter. Maar hier en daar valt dan weer wat om. Niet handig zo. Ik ga eerste tijd eens goed kijken om meer geautomatiseerde tests te maken. Daarna huidige functionaliteit uitbreiden en vervolgens kijken naar hoe dit optimaal werkt met meerdere batterijen.

de app is behoorlijk i ingewikkeld geworden.

vraagje: is een interne mqtt broker wel noodzakelijk? Ik ga deze er waarschijnlijk weer uithalen.

Nee, je kunt bv. de MQTT Broker app op Homey installeren, of een MQTT broker van Home Assistant gebruiken. Er is nl. maar 1 broker per MQTT netwerk nodig.

Ja. Haha dat wist ik. Ik wilde het makkelijk maken door de mqtt broker ook in de app te hebben. Dan is hij geheel zelf voorzienend. Maar dankjewel voor dé reactie.

Ah okee. Dan begreep ik je vraag niet (goed)?

Even een tip: Als je de broker in je app geïntegreerd laat, laat je de app tijdens de installatie checken of de standaard poort niet in gebruik is? Dit voor diegenen die al een broker hebben draaien.

De MQTT app van Emile bijvoorbeeld kiest zelf een alternatieve poort als de standaard poort al in gebruik is (en de code is opensource)

Klopt. Daar was ik al eens tegenaan gelopen. Zodra de app een andere broker vindt, gaat hij zelf uit.

Wel even een nieuwe versie erop gezet: SlimLaden voor Marstek | Homey

1 Like

Ik heb het nu zo gemaakt: je kan per batterij zelf een topic invullen per batterij. Marstek marsteka marstekx. Als je niets invult….stuurt hij ook geen bericht op dat topic, dus stuurt die batterij ook niet aan. LET OP: Je moet nu even goed uitkijken hoe je de app de SOC laat meten, de topics vult en het aantal batterijen. Die zijn nu vrij in te vullen….maar moeten volgens mij in sync zijn.

Ik zie de 3 velden voor de prefix :slightly_smiling_face: .
Voor het uitlezen van de Soc pakt hij bij mij de marsteka batterij. Heeft dat invloed op de aansturing?
Ik zou altijd de broker die geïnstalleerd is in Homey gebruiken. Ik gebruik deze: MQTT Broker App voor Homey | Homey
Bijkomend voordeel is dat ik dan ook de bepaalde waardes in variabelen kan opslaan en daarna de grafieken kan bekijken:

Als straks alle batterijen opgeladen zijn zal ik mijn flows uitschakelen en alles via de app laten lopen.
Ben benieuwd :slightly_smiling_face:

Ah leuk. Ik ben ook benieuwd.

In de app zit een automation die zelf opzoek gaat naar de batterij, maar dat is een voorstel en kan je handmatig aanpassen. Met meerdere batterijen moet je een batterij-device maken die de soc bepaald voor alle drie de batterijen samen. (Ga nog kijken om dat te verwerken in de app)

In strategie ‘nul op de meter’ kijkt hij elk uur hoeveel zonopbrengst er voorspeld wordt en hoeveel verbruik en probeert de kwh’s in de batterij zo goed mogelijk te verdelen over de uren waarbij stroom uit de batterij nodig is. Duurste uren eerst. >>> hij moet dus wel weten hoeveel er in de batterijen zit.

Bij strategie ‘dynamisch’ gebruikt hij de soc ook om zoveel mogelijk op het duurste of goedkoopste uur te ontladen of laden. Dit regelt hij door het vermogen aan te passen.

Btw. Je kunt mijn app natuurlijk ook gewoon gebruiken om te bepalen wat hij moet doen per uur. En vervolgens de status wisseling gebruiken in een flow. (Dan gebruik je niet mijn mqtt aansturing; Hier zijn flowkaarten voor) LET WEL: de app doet dat (nog?) niet per batterij verschillend.

Ik heb een flow om te testen of ik de besturing kan gebruiken. Maar daar zie ik iedere keer NOM tussendoor komen…
Kun je zien waarom?