Over mij

Past een thuisbatterij in jouw huis?

In dit artikel som ik de verschillende ESS installaties op die wij de afgelopen maanden hebben gebouwd en opgeleverd. Het geeft de diversiteit aan van oplossingen die wij samen met de klant ontwikkelen, bouwen en beheren. Elke situatie is anders en dus is elke oplossing anders.

De eerste installatie omvat 3 Multiplus 3000 systemen die samen met een 15kWh batterij in een kleine kelder onder de woning zijn geplaatst. Het 10-jaar oude zonnesysteem is uitgebreid met extra panelen en voorzien van SolarEdge optimizers voor de oude en nieuwe panelen. De SolarEdge omvormer is geheel geïntegreerd in het ESS. De meterkast is in tweeën gedeeld: een deel parallel met het ESS en een deel in serie ivm backup bij stroomuitval.

Voor een andere installatie heeft de eigenaar gekozen voor een zelfgebouwde nieuwe buitenkast waarin de installatie is geplaatst. In de kast hangen 3 stuks Multiplus 3000 en staat de batterij opgesteld. Temperatuur sensoren bewaken de temperatuur en kunnen het laadproces beïnvloeden als het te koud wordt. De hele woning is in serie met het ESS geplaatst zodat bij stroomuitval alles toch blijft werken. Een SolarEdge omvormer is ook hier in het systeem geïntegreerd. De verticale zonnepanelen zijn enkele jaren geleden door Hetslimmehuis gemonteerd.

In een nieuw gebouwde schuur wilde deze bewoner het dak geheel met zonnepanelen bedekken en daarna de zelfopgewekte stroom efficient via een batterij kunnen benutten. De installatie bestaat uit 3 multiplus 3000 omvormers en een MPPT lader voor de zonnepanelen. De batterij is een 15kWH exemplaar.

Hierboven is een installatie weergegeven die in een kantoorgeving is geplaatst. Het kantoor is nog in aanbouw en de installatie zal straks in een fraaie kast worden geplaatst zodat bezoekers de installatie kunnen bekijken. Samen met deze klant is een ontwerp gemaakt voor zonnepanelen op het plattedak van het kantoor. Deze PV installatie bestaande uit 4 strings van elke 8 panelen is zelf geplaatst terwijl het elektrische gedeelte door Hetslimmehuis is geïnstalleerd en via een MPPT lader direct op de batterij is aangesloten. De batterij is nu nog een 15kWh exemplaar maar zal in de loop van 2023 worden verdubbeld in capaciteit. Tijdens de afbouw van het kantoor is er nog geen aansluiting op het grid mogelijk. Toch is de elektrische installatie nu al in werking en draait geheel op zonnestroom via de batterijen.

De installatie hierboven is eveneens een 3 fase installatie (3 stuks 3kVA) maar nu gebouwd in een buitenkast die op het balkon van de woning staat. De batterij staat aan de binnenzijde, net als het bedieningsdisplay. Twee bestaande GroWatt PV omvormers zijn met speciale CT klemmen op het systeem aangesloten zodat de opbrengst van de zonnepanelen gemeten kan worden in het ESS.

De installatie hierboven is geplaatst in een tussenruimte die een zeer oude boerderij verbind met een woonhuis. De bewoner heeft al vele verbouwklussen uitgevoerd en besloot tot een grondige renovatie van de elektrische installatie. Samen met de elektricien hebben wij een meterkast ontworpen en verschillende onderverdelers verbonden waar een laadpaal, een SolarEdge omvormer en andere verbruikers zijn gekoppeld. Het ESS heeft daarnaast ook nog een MPPT lader voor een 2e PV veld dat op de grond is gebouwd. De Victron omvormers zijn van het 5kVA type en er zijn 2 batterijen, totaal 30kWh aangesloten.

Een andere klant had al ervaring met een Victron ESS. Hij heeft 2 jaar gedraaid met een enkel fase omvormer samen met een zoutwaterbatterij. Maar deze deed niet meer wat hij ervan verwachtte en hij heeft ons gevraagd het systeem te vervangen door een volledig 3 fasen systeem bestaande uit 3 stuks Multiplus 5000 en een batterij van 30kWh. Voor deze installatie hebben wij twee bestaande SolarEdge omvormers geïntegreerd in het ESS. Het systeem staat opgesteld in een kelder onder de woning.

Terwijl je in de ene kelder sta hoogte hebt, is een andere kelder slechts bereikbaar op de knieën. Voor ons geen probleem en gelukkig bleek de eigenaar bereid om zelf alle kabels al te trekken zodat wij deze alleen nog hoefden aan te sluiten. De eigenaar besloot om tegelijkertijd de oude SMA omvormer te vervangen door een MPPT lader die direct op de batterijen is aangesloten. Efficiënter kan het niet. Inmiddels is deze eigenaar al bezig om zelf software te ontwikkelen om de besturing van het ESS volledig zelf uit te voeren. En daar helpen wij graag bij. Het systeem bestaat uit 3 stuks Multiplus 3000 met een 15kWH batterij.

Dat het niet altijd groot hoeft te zijn toont de installatie hierboven. Hoewel de volledig elektrische installatie 3 fasen is, is het ESS in een enkel fase uitvoering geleverd. Het ESS staat opgesteld in een schuur naast een oude onderverdeler. Wel is er een extra kabel gelegd naar de hoofdwoning zodat de belangrijkste verbruikers toch kunnen profiteren van een backup. De batterij is een 12kWh exemplaar. Overigens is er rekening gehouden met eventuele uitbreiding naar een 2e of 3e fase als dat in de toekomst wenselijk is.

Ook de volgende installatie hierboven toont een enkele omvormer, nu weggewerkt in een schuin hoekje achter een vriezer en wasmachine. Hier is er sprake van een Tiny House op een park waar de stroomaansluiting zeer twijfelachtig is. Het ESS is samen met een SolarEdge omvormer en een warmtepomp geïntegreerd zodat er efficiënt verwarmd kan worden zonder bang te zijn dat het elektriciteitsnetwerk van het park uitvalt. Met metingen is aangetoond dat op koude dagen de spanning van het grid kan zaken tot onder de 200 Volt. Het ESS met een 12kWH batterij vangt dat nu prima op. Ook het overschot aan zonnestroom zorgde er in de zomer wel eens voor dat de SolarEdge omvormer een standje lager moest werken. Ook dat probleem wordt nu opgelost met de batterij set.

Heb je ook een geschikte plek en zoek je een thuisbatterij? Of wil je eerst nog eens overleggen? Kom maar op!“

Sluipverbruik? Weg ermee!

Elektrische apparaten die de hele dag aan het stroomnet zitten maar eigenlijk niets doen. Of gewoon teveel stroom verbruiken omdat het apparaat oud en versleten is. Het leidt tot veel verspilling en ik heb daar veel onderzoek naar gedaan. En de gegevens die ik heb verzameld deel ik graag met je. Ik heb dat ondersteund met een filmpje op Youtube.

Het elektrische verbruik waar ik op doel noemen we sluipverbruik. Neem de televisie in je woonkamer. Terwijl deze uitstaat verbruikt deze toch energie als hij standby staat. Je ziet bijvoorbeeld het rode controle lampje dan branden. Dat verbruik gaat 24 uur per dag door en dat 365 dagen per jaar. Voor een moderne televisie is dat misschien maar een paar Watt, laten we zeggen 5 Watt. Per jaar is dat dan 44 kWh aan verbruikte energie. En met een prijs van € 0,50 hebben we het dan dus over 22 euro in een jaar. Nu zal jij zeggen: ja maar dat sluipverbruik van die televisie is toch helemaal niets? Nee, dat ene apparaat is misschien niet zoveel. Maar kijk eens goed rond in je huis en tel het dan maar eens op. Dan zul je zien dat het wel heel erg veel is. En je kunt er wat aan doen! Bekijk de video en gebruik de onderstaande lijst om zelf eens op onderzoek uit te gaan. trek de stekker uit het apparaat als je hem niet gebruikt. Of gebruik een standby killer (Schakelaar) of vervang het apparaat door een modern nieuwe apparaat. En zeg dan niet “ja maar de koelkast doet het toch nog en het is dan toch zonde om deze te vervangen?”. Nou, dat is maar hoe je het bekijkt. Als de koelkast jaarlijks 400 euro aan energie teveel verbruikt is de aanschaf van een nieuwe misschien binnen 3 jaar al terugverdiend. Aan de slag dus.

Lijst van verbruikers

Elektrische  verbruikersStandby verbruik
(Watt)
Aantal uren / dagDagen / jaar Verbruik/jaar (kWh) Standby/jaar (kWh) 
2e televisie (keuken)21300                         4,5                     17,5
Apple airdevice1524365                     192,7131,4
Beveiliging (alarm, cameras, opslag)524365                       43,843,8
Burolamp halogeen2490                         4,3                     17,5
Computer Apple A18365                     350,48,76
Computer Apple B18365                     438,08,76
CV Ketel Kantoor22471                     110,817,52
CV Ketel woning22471                     110,817,52
Deurbel / trafo424365                       35,035,04
Elektrische boiler, close-in keuken00,5365                     401,50
Elektrische fiets0870                           –  0
Elektrische kachel0810                     176,00
Elektrische vloerverwarming22180                  1.080,017,52
Elektrische vloerverwarming22180                     720,017,52
Enelogic youless p1024365                           –  0
Gas Haard0                           –  0
Haus und Leistungsverstarker1524365                     131,4131,4
HP Inkjet printer Pro697050,550                         0,943,8
HP Laserjet Printer pagewide 47720,1200                         1,617,52
Infraroodsauna0253                     424,00
Internet kabel modem splitser324365                       78,826,28
Internet Router924365                       78,878,84
Keuken apparatuur divers Ben60,1200                       24,052,56
Klik aan / klik uit verlichting324365                     438,026,28
Koelkast Ben14365                       94,98,76
Koelkast keuken012365                     262,80
Koffie apparaat0,50,1300                       36,04,38
Kookplaat inductie10,5300                     375,08,76
Kookplaatje elektrisch B000                           –  0
LED driver/dimmer7,54300                         9,065,7
LG subwoover Ben2220                         3,017,52
Luchtverfrisser28120                       96,017,52
Magnetron10,1150                       18,08,76
Oven10,1100                       35,08,76
Panasonic TV B2220                         6,017,52
Phillips beeldscherm HDMI 284E025                         0,30
Phillips device (onbekend)124365                         8,88,76
Phillips dockingstation/wekker124365                         8,88,76
Pomp vloerverwarming3624365                     315,4315,36
Sonos / TP link router112180                       10,896,36
Sonos draadloze speaker (2 stuks)8250                         4,070,08
Sonos en LG DVD speler12220                         1,4105,12
Stereo en TV slaapkamer31300                       37,526,28
Stereo installatie Woonkamer16150                         5,0140,16
Stereo installatie zolder1200                           –  105,12
Stoomoven10,1150                       37,58,76
Telefoontoestellen424365                       35,035,04
Terrasverwarmer0430                     240,00
TP Link router724365                       61,361,32
Tv scherm woonkamer23300                     198,017,52
Tweede koelkast8024365                     902,3700,8
Tweede vriezer000                           –  0
Vaatwasser10,75300                     450,08,76
Ventilatie2424365                     569,4210,24
Verlichting04180                     360,00
Wasdroger03100                     300,00
wasmachine00,5100                     110,00
                          318,0                  9.436,5                2.785,7

Klimaatburgermeester

Sinds vorige week ben ik Klimaatburgemeester voor mijn gemeente #Wormerland. Een vrijwilligersrol om inwoners te helpen bij de energie transitie. Duurzame energie heeft mijn belangstelling al sinds 2008. Destijds werden wij (mijn vrouw en ik) gevraagd om een energiewedstrijd de organiseren tussen gezinnen uit West- en Oostknollendam. Behalve een overwinning, heeft dat een schat aan informatie opgeleverd. Het motiveerde ons om onze eigen woning uit 2000, volledig energie neutraal te maken. Niet in één keer, maar in stapjes; elk jaar dat er energie bespaard werd, terugkwam uit de eigen opwek via de energieleverancier of via subsidies beschikbaar werd gesteld, hebben we die bedragen weer opnieuw geïnvesteerd in de verdere verduurzaming van onze woning. Vaak ging dat goed, soms ging dat wat minder. Maar het resultaat is dat onze woning en het gastenverblijf net zo veel energie verbruikt als dat wij zelf opwekken. En ook voldoende zelfopgewekte energie voor onze elektrische auto’s en zelf(s) geëlektrificeerde vaartuigen. Al mijn kennis en ervaring heb ik samengevat in een grote serie blogs (https://lnkd.in/ewUN8HmR) en vlogs (https://lnkd.in/ed5rSUvf). Maar ik deel deze ervaring ook als energiecoach voor inwoners van mijn gemeente. De komende weken zal ik en anderen hier aandacht voor vragen: deel de kennis om energie te besparen. Samen is veel mogelijk. #klimaatburgemeester

Update HomeAssistant code

De code in mijn vorige post was niet alleen moeilijk leesbaar, hij was ook niet volledig.

Hoewel ik nog steeds bezig ben om de code te verbeteren, wil ik je deze tussentijdse versie niet onthouden. Doe er je voordeel mee en heb jij zelf verbeteringen aangebracht, ik blijf graag op de hoogte.

configuration.yaml

Hieronder tref je de wijzigingen die ik heb aangebracht in configuration.yaml. Alle sensoren die ik heb gemaakt zitten er in. Bedenk wel dat deze soms refereren naar sensoren in mijn HomeMatic systeem. Je moet deze dus aanpassen naar jouw fysieke sensoren.

template:
  - sensor:
      - name: "EV_Laadpaal_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_18_frequency') | float * 3.6 * 10.0}}
  - sensor:
      - name: "EV_Solar_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_16_frequency') | float * 3.6 * 1.0}}
  - sensor:
      - name: "EV_Tuinhuis_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_17_frequency') | float * 3.6 * 1.0}}
  - sensor:
      - name: "EV_Heating_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_15_frequency') | float * 3.6 * 1.0}}
  - sensor:
      - name: "EV_Huishoudverbruik_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_19_frequency') | float * 3.6 * 10.0}}
  - sensor:
      - name: "EV_Boot_Actueel"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states('sensor.leq0147882_20_frequency') | float * 3.6 * 10.0}}
          
  - sensor:
      - name: "Day_Ahead_Avg_Price"
        device_class: monetary
        unit_of_measurement: €
        state: >
          {{ state_attr ('sensor.day_ahead_price', 'avg_price')}}  
  - sensor:
      - name: "Day_Ahead_Current_Price"
        #device_class: monetary
        unit_of_measurement: €/kWh
        state: >
          {{ state_attr ('sensor.day_ahead_price', 'day_ahead_price')}}
  - sensor:
      - name: "Day_Ahead_Min_Price"
        device_class: monetary
        unit_of_measurement: €
        state: >
          {{ state_attr ('sensor.day_ahead_price', 'min_price')}}
  - sensor:
      - name: "Day_Ahead_Max_Price"
        device_class: monetary
        unit_of_measurement: €
        state: >
          {{ state_attr ('sensor.day_ahead_price', 'max_price')}}
  - sensor:
      - name: "Day_Ahead_Lowerband_Price"
        device_class: monetary
        unit_of_measurement: €
        state: >
          {{ (1-(states ('input_number.ess_price_lower_band')) | int / 100) * (states ('sensor.day_ahead_avg_price') | float ) }}
  - sensor:
      - name: "Day_Ahead_Upperband_Price"
        device_class: monetary
        unit_of_measurement: €
        state: >
          {{ (1+(states ('input_number.ess_price_upper_band')) | int / 100) * (states ('sensor.day_ahead_avg_price') | float )}}        
  - sensor:
      - name: "VE Grid Power"
        device_class: power
        unit_of_measurement: W
        state: >
          {{ states("sensor.ve_grid_power_l1") |float + states("sensor.ve_grid_power_l2") | float + states("sensor.ve_grid_power_l3") |float }}
  - sensor:
      - name: "ESS_Grid_Setpoint"
      ## use this to set ESS grid setpoint. Values are determined by maximum grid connection point
      ## substract value from 65535 for negative vaule
        device_class: power
        unit_of_measurement: W
        state: >
          {% if is_state("input_number.ess_grid_feedin", "0.0") -%}
            0
          {%- elif is_state("input_number.ess_grid_feedin", "1.0") -%}
            17250
          {%- elif is_state("input_number.ess_grid_feedin", "-1.0") -%}
            48285
          {%- endif %}

mqtt: 
  sensor:
    - state_topic: entsoe/day-ahead
      name: 'Day-ahead-price'
      unit_of_measurement: "€"
      value_template: '{{ value_json.day_ahead_price }}'
      json_attributes_topic: entsoe/day-ahead

Automations.yaml

Hieronder de automations die ik heb gemaakt. Meestal heb ik hiervoor de wizzards gebruikt maar uiteindelijk wordt alles in code omgezet. Ik verwijs graag naar mij Youtube video voor uitleg over de automations. Anders begrijp je niet zo goed wat deze doen. Ook voor dit bestand geldt dat enkele verwijzingen refereren aan specifieke hardware en/of sensoren.

- id: '1662234306246'
  alias: Switch on Energy Import and Energy Consumers
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.day_ahead_price
    attribute: day_ahead_price
    below: sensor.day_ahead_lowerband_price
  condition: []
  action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id:
      - switch.peq1418450_7
  - service: input_number.set_value
    data:
      value: 1
    target:
      entity_id: input_number.ess_grid_feedin
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.peq1418450_8
  mode: single
- id: '1662899027507'
  alias: Set ESS Grid Feed by writing Modbus register
  description: This automation sets the Victron ESS Grid feed to in, out or 0
  trigger:
  - platform: state
    entity_id:
    - input_number.ess_grid_feedin
  condition: []
  action:
  - service: modbus.write_register
    data:
      address: 2700
      slave: 100
      value: '{{ states(''sensor.ess_grid_setpoint'') }}'
      hub: victron
  mode: single
- id: '1663360219833'
  alias: Switch off Energy Import and Consumers and Export Energy to Grid
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.day_ahead_price
    attribute: day_ahead_price
    above: sensor.day_ahead_upperband_price
  condition:
  - condition: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    above: 50
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.peq1418450_7
  - service: input_number.set_value
    data:
      value: -1
    target:
      entity_id: input_number.ess_grid_feedin
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.peq1418450_8
  mode: single
- id: '1663360672817'
  alias: Switch off Energy Import and set Grid setpoint to 0
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.day_ahead_price
    attribute: day_ahead_price
    above: sensor.day_ahead_lowerband_price
    below: sensor.day_ahead_upperband_price
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id:
      - switch.peq1418450_8
      - switch.peq1418450_7
  - service: input_number.set_value
    data:
      value: 0
    target:
      entity_id: input_number.ess_grid_feedin
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.peq1418450_9
  mode: single
- id: '1663598422950'
  alias: Switch off Energy Export to grid if SoC < 50%
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    below: 50
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 0
    target:
      entity_id: input_number.ess_grid_feedin
  mode: single
- id: '1664573680849'
  alias: VSW ultra low switch on
  description: Schakelt schakelaar aan als de elec prijs zeer laag is.
  trigger:
  - platform: numeric_state
    entity_id: sensor.day_ahead_price
    attribute: day_ahead_price
    below: 0.02
  condition: []
  action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.peq1418450_9
  mode: single
- id: '1664573871793'
  alias: VSW ultra low switch off
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.day_ahead_price
    attribute: day_ahead_price
    above: 0.02
  condition: []
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.peq1418450_9
  mode: single
- id: '1665776652412'
  alias: Increase Low Bandwidth Price to 20%
  description: Verlaag de bandbreedte met naar 20 als SoC <50%
  trigger:
  - platform: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    below: 50
    above: 40
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 20
    target:
      entity_id: input_number.ess_price_lower_band
  mode: single
- id: '1665776936570'
  alias: Decrease Low Bandwidth Price to 10%
  description: Verlaag de bandbreedte naar 10% als SoC <40%
  trigger:
  - platform: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    below: 40
    above: 30
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 10
    target:
      entity_id: input_number.ess_price_lower_band
  mode: single
- id: '1665778310119'
  alias: Switch off Energy Import when Sunny or Partly Cloudy
  description: ''
  trigger:
  - platform: state
    entity_id:
    - weather.vriendschap
    to:
    - sunny
    - partlycloudy
  condition:
  - condition: numeric_state
    entity_id: sun.sun
    attribute: rising
    above: 0
  action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.peq1418450_7
  mode: single
- id: '1666123826682'
  alias: Decrease Upper Bandwidth to 15% if SoC > 80%
  description: Verlaag de bandbreedte met naar 20 als SoC >80%
  trigger:
  - platform: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    below: 100
    above: 80
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 15
    target:
      entity_id: input_number.ess_price_upper_band
  mode: single
- id: '1666124043886'
  alias: Increase Upper Bandwidth to 20% if SoC is > 50% and < 80%
  description: Verhoog de bandbreedte met naar 20 als SoC <80%
  trigger:
  - platform: numeric_state
    entity_id: sensor.ve_battery_state_of_charge_system
    below: 80
    above: 50
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 20
    target:
      entity_id: input_number.ess_price_upper_band
  mode: single

Modbus.yaml

DIt bevat de lijst van registers die ik in modbus aanspreek om de informatie uit te lezen (en te schrijven) voor de Victron Energy Multiplus inverters.

# modbus victron ess
  - name: victron
    retry_on_empty: true
    retries: 10
    type: tcp
    host: <your IP address of the Cerbo/CCGX device>
    port: 502
# REMARK: scan_interval: <5 can cause troubles
    sensors:
    - name: 'VE AC Consumption L1'
      unit_of_measurement: "W"
      slave: 100
      address: 817
      data_type: uint16
      scan_interval: 5
      device_class: power

    - name: 'VE AC Consumption L2'
      unit_of_measurement: "W"
      slave: 100
      address: 818
      data_type: uint16
      scan_interval: 5
      device_class: power

    - name: 'VE AC Consumption L3'
      unit_of_measurement: "W"
      slave: 100
      address: 819
      data_type: uint16
      scan_interval: 5
      device_class: power
  
    - name: 'VE Grid power L1'
      unit_of_measurement: "W"
      slave: 100
      address: 820
      data_type: int16
      scan_interval: 5
      device_class: power

    - name: 'VE Grid power L2'
      unit_of_measurement: "W"
      slave: 100
      address: 821
      data_type: int16
      scan_interval: 5
      device_class: power    

    - name: 'VE Grid power L3'
      unit_of_measurement: "W"
      slave: 100
      address: 822
      data_type: int16
      scan_interval: 5
      device_class: power

    - name: 'VE Critical Loads power L1'
      unit_of_measurement: "W"
      slave: 246
      address: 23
      data_type: int16
      scale: 10
      scan_interval: 5
      device_class: power
    
    - name: 'VE Critical Loads power L2'
      unit_of_measurement: "W"
      slave: 246
      address: 24
      data_type: int16
      scale: 10
      scan_interval: 5
      device_class: power
    
    - name: 'VE Critical Loads power L3'
      unit_of_measurement: "W"
      slave: 246
      address: 25
      data_type: int16
      scale: 10
      scan_interval: 5
      device_class: power

# ESS Settings
    - name: 'VE ESS Minimum SoC setpoint'
      unit_of_measurement: "%"
      data_type: uint16
      slave: 100
      address: 2901
      scan_interval: 5
      scale: 0.1
      
    - name: 'VE Maximum System Grid Feed In'
      unit_of_measurement: "W"
      data_type: uint16
      slave: 100
      address: 2706
      scale: 0.01
      device_class: power
      # command_on: 4000
      # command_off: 40
      # verify_state: false

    - name: 'VE ESS BatteryLife state'
      data_type: uint16
      slave: 100
      address: 2900
      scan_interval: 5
      
    - name: 'VE ESS Grid setpoint'
      unit_of_measurement: "W"
      data_type: int16
      slave: 100
      address: 2700
      device_class: power

#Battery 
    - name: 'VE Battery current'
      unit_of_measurement: "A DC"
      slave: 100
      address: 841
      data_type: int16
      scale: 0.1
      precision: 0
      device_class: current
      
    - name: 'VE Battery Power System'
      unit_of_measurement: "W"
      slave: 100
      address: 842
      data_type: int16
      scale: 1.0
      precision: 0
      device_class: power

      # VE Charge power. deze gebruiken voor omrekenen van min en pos
    - name: 'VE Charge Power System'
      unit_of_measurement: "W"
      slave: 100
      address: 866
      data_type: int16
      scale: 1.0
      precision: 0
      device_class: energy
      
    - name: 'VE Battery State of Charge System'
      unit_of_measurement: "%"
      slave: 100
      address: 843
      data_type: uint16
      scale: 1
      precision: 0

    - name: 'VE Battery Discharged Energy'
      unit_of_measurement: "kWh"
      slave: 245
      address: 301
      data_type: uint16
      scale: 0.1
      precision: 0
      device_class: energy
      state_class: total_increasing

    - name: 'VE Battery Charged Energy'
      unit_of_measurement: "kWh"
      slave: 245
      address: 302
      data_type: uint16
      scale: 0.1
      precision: 0
      device_class: energy
      state_class: total_increasing

 # Victron device over Modbus: vebus
      # Grid Voltage
    - name: 'VE Grid Voltage L1 in'
      unit_of_measurement: "V AC"
      slave: 246
      address: 3
      data_type: uint16
      scale: 0.1
      offset: 0
      precision: 2
      device_class: voltage

    - name: 'VE Grid Voltage L2 in'
      unit_of_measurement: "V AC"
      slave: 246
      address: 4
      data_type: uint16
      scale: 0.1
      offset: 0
      precision: 2
      device_class: voltage

    - name: 'VE Grid Voltage L3 in'
      unit_of_measurement: "V AC"
      slave: 246
      address: 5
      data_type: uint16
      scale: 0.1
      offset: 0
      precision: 2
      device_class: voltage
      
    - name: "VE Multi Inverter State"
      slave: 246
      address: 31
      data_type: uint16
      # Inverter States, 0=Off;1=Low Power;2=Fault;3=Bulk;4=Absorption;5=Float;6=Storage;7=Equalize;8=Passthru;9=Inverting;10=Power assist;11=Power supply;252=Bulk protection   
 
#Alarm Sensors
    - name: 'VE Grid lost alarm'
      slave: 246
      address: 64
      data_type: uint16
      unit_of_measurement: "0=Ok;1=Warning"
      
    - name: 'VE Multi Temperature alarm'
      slave: 246
      address: 34
      data_type: uint16
      unit_of_measurement: "0=Ok;1=Warning;2=Alarm"
      
    - name: 'VE Multi Overload alarm'
      slave: 246
      address: 36
      data_type: uint16
      unit_of_measurement: "0=Ok;1=Warning;2=Alarm"
      

Node Red Generate URL

Vandaag heb ik nog een fout gevonden in de onderstaande code. Deze houdt namelijk geen rekening met de zomertijd waardoor de data in de grafieken een uur te vroeg staat. Het maakt voor de werking niets uit.

const today = new Date()
let todayDate = ("0" + today.getDate()).slice(-2)
let todayMonth = ("0" + (today.getMonth() + 1)).slice(-2);
let todayYear = today.getFullYear();
let todayString = todayYear + todayMonth + todayDate;

var urlAddr = "https://transparency.entsoe.eu/api?securityToken=<your token>&documentType=A44&in_Domain=10YNL----------L&out_Domain=10YNL----------L&periodStart=" + todayString + "0000&periodEnd=" + todayString + "2300"
msg.url = urlAddr;
return msg;

Node Red Get Next Hour Price

In onderstaande code staan nog de max_price en min_price genoemd. Ik gebruik deze verder niet in mijn algoritmes. Maar als je er gebruik van wilt maken dan kan dat.

var priceArray = [];
priceArray = flow.get("pArray");
const today = new Date();
let todayHour = today.getHours();
let todayDate = ("0" + today.getDate()).slice(-2)
let todayMonth = ("0" + (today.getMonth() + 1)).slice(-2);
let todayYear = today.getFullYear();

msg.payload = {
    "day_ahead_price": priceArray[todayHour] / 1000,
    "avg_price": priceArray[24] / 1000,
    "max_price": priceArray[25] / 1000,
    "min_price": priceArray[26] / 1000,
    "records": [
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T00:00:00",
            "Price": priceArray[0] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T01:00:00",
            "Price": priceArray[1] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T02:00:00",
            "Price": priceArray[2] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T03:00:00",
            "Price": priceArray[3] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T04:00:00",
            "Price": priceArray[4] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T05:00:00",
            "Price": priceArray[5] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T06:00:00",
            "Price": priceArray[6] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T07:00:00",
            "Price": priceArray[7] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T08:00:00",
            "Price": priceArray[8] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T09:00:00",
            "Price": priceArray[9] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T10:00:00",
            "Price": priceArray[10] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T11:00:00",
            "Price": priceArray[11] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T12:00:00",
            "Price": priceArray[12] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T13:00:00",
            "Price": priceArray[13] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T14:00:00",
            "Price": priceArray[14] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T15:00:00",
            "Price": priceArray[15] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T16:00:00",
            "Price": priceArray[16] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T17:00:00",
            "Price": priceArray[17] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T18:00:00",
            "Price": priceArray[18] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T19:00:00",
            "Price": priceArray[19] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T20:00:00",
            "Price": priceArray[20] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T21:00:00",
            "Price": priceArray[21] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T22:00:00",
            "Price": priceArray[22] / 1000
        },
        {
            "Time": todayYear + "-" + todayMonth + "-" + todayDate + "T23:00:00",
            "Price": priceArray[23] / 1000
        }
    ]
};
return msg;

De Apex-chart grafiek

Hier kan nog iets aan verbeterd worden maar inmiddels geeft het wel een goed overzicht.

de apex-chart grafiek
type: custom:apexcharts-card
experimental:
  color_threshold: true
graph_span: 24h
show:
  last_updated: true
span:
  start: day
header:
  title: Energy Prices today
  standard_format: false
  show: true
  show_states: false
  colorize_states: true
apex_config:
  chart:
    height: 370
    curve: stepline
  legend:
    show: true
    showForSingleSeries: false
    showForNullSeries: true
    showForZeroSeries: true
    position: bottom
    horizontalAlign: left
    floating: false
    inverseorder: true
    onItemHover:
      highlightDataSeries: false
    ontimeClick:
      toggleDataSeries: false
    tooltip:
      enabled: true
now:
  show: false
  color: red
  label: Now
yaxis:
  - id: first
    min: -0.1
    max: ~0.5
    decimals: 2
    apex_config:
      tickAmount: 12
  - id: second
    opposite: true
    min: 0
    max: 100
    decimals: 0
    apex_config:
      tickAmount: 10
series:
  - entity: sensor.day_ahead_lowerband_price
    yaxis_id: first
    type: line
    color: hotpink
    unit: ' €'
    float_precision: 3
    stroke_width: 2
  - entity: sensor.day_ahead_upperband_price
    yaxis_id: first
    type: line
    color: steelblue
    unit: ' €'
    float_precision: 3
    stroke_width: 2
  - entity: sensor.day_ahead_price
    yaxis_id: first
    type: column
    color: black
    unit: ' €'
    float_precision: 3
    stroke_width: 10
    show:
      header_color_threshold: true
      legend_value: false
    data_generator: |
      return entity.attributes.records.map((record, index) => {
        return [record.Time, record.Price];
      });
    color_threshold:
      - value: 0
        color: green
      - value: 0.05
        color: lightgreen
      - value: 0.1
        color: yellowgreen
      - value: 0.15
        color: yellow
      - value: 0.2
        color: yelloworange
      - value: 0.3
        color: orange
      - value: 0.4
        color: orangered
      - value: 0.5
        color: red
      - value: 0.6
        color: purple
      - value: 0.7
        color: blue
  - entity: sensor.ve_battery_state_of_charge_system
    yaxis_id: second
    stroke_width: 3
    color: blue
view_layout:
  position: main

Energie besturing met Home Assistant

Deze pagina is gemaakt met als doel om mijn zelf gebouwde automatisering in Home Assistant te documenteren. Misschien is er een liefhebber die dit op Github kan zetten, je bent welkom. Ik heb geen ervaring met Github maar heb wel een account, Hhalewijn. Dus wees dan in ieder geval zo vriendelijk om naar mij te verwijzen.

HomeMatic integratie

Een eerste belangrijk component dat ik gebruik is het monitoren van diverse tussenmeters in mijn meterkast. Deze worden gemonitord door mijn domotica installatie HomeMatic. Ook de besturing van laadpaal, warmtepomp en alle apparatuur in huis verloopt via sensoren en aktoren in HomeMatic. Er is dus een integratie gemaakt tussen HomeMatic en HomeAssistant.

In configuration.yaml heb ik een include opgenomen:

homematic: !include homematic.yaml

De homematic.yaml file bevat de volgende regels:

#Homematic configuration

interfaces:

wireless:

host: 192.168.2.3

port: 2001

wired:

host: 192.168.2.3

port: 2000

IP:

host: 192.168.2.3

port: 2010

Achter de wired poorten zitten de frequentie meters die de pulsen meten van de tussenmeters.

In HomeAssistant kan ik deze pulsen overnemen en vertalen naar sensoren. Deze zijn benoemd in configuration.yaml

template:

– sensor:

– name: “EV_Laadpaal_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_18_frequency’) | float * 3.6 * 10.0}}

– sensor:

– name: “EV_Solar_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_16_frequency’) | float * 3.6 * 1.0}}

– sensor:

– name: “EV_Tuinhuis_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_17_frequency’) | float * 3.6 * 1.0}}

– sensor:

– name: “EV_Heating_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_15_frequency’) | float * 3.6 * 1.0}}

– sensor:

– name: “EV_Huishoudverbruik_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_19_frequency’) | float * 3.6 * 10.0}}

– sensor:

– name: “EV_Boot_Actueel”

device_class: power

unit_of_measurement: W

state: >

{{ states(‘sensor.leq0147882_20_frequency’) | float * 3.6 * 10.0}}


 

Integratie Victron Energy componenten

De integratie met Victron Energy via een CX device loopt over Modbus. Hiervoor is geen specifieke integratie nodig of beschikbaar. Wel moeten de sensoren gemaakt worden. Er zijn vele honderden registers die je kunt uitlezen. Ik heb de belangrijkste hieronder opgenomen.

LET OP! De slave ID’s en register adressen kunnen per configuratie afwijken. Raadpleeg dus eerst de modbus documentatie van Victron en maak gebruik van de referentie Excel sheet die je kunt downloaden van de Victron website.

Ik heb gekozen voor Modbus ipv MQTT omdat volgens de documentatie van Victron de poorten van MQTT wel eens wijzigen met software releases.

Eerst in configuration.yaml de volgende include:

modbus: !include modbus.yaml

In de file modbus.yaml dan de volgende sensoren definieren:

# modbus victron ess

– name: victron

retry_on_empty: true

retries: 10

type: tcp

host: 192.168.2.86

port: 502

# REMARK: scan_interval: <5 can cause troubles

sensors:

– name: ‘VE AC Consumption L1’

unit_of_measurement: “W”

slave: 100

address: 817

data_type: uint16

scan_interval: 5

device_class: power

– name: ‘VE AC Consumption L2’

unit_of_measurement: “W”

slave: 100

address: 818

data_type: uint16

scan_interval: 5

device_class: power

– name: ‘VE AC Consumption L3’

unit_of_measurement: “W”

slave: 100

address: 819

data_type: uint16

scan_interval: 5

device_class: power

– name: ‘VE Grid power L1’

unit_of_measurement: “W”

slave: 100

address: 820

data_type: int16

scan_interval: 5

device_class: power

– name: ‘VE Grid power L2’

unit_of_measurement: “W”

slave: 100

address: 821

data_type: int16

scan_interval: 5

device_class: power

– name: ‘VE Grid power L3’

unit_of_measurement: “W”

slave: 100

address: 822

data_type: int16

scan_interval: 5

device_class: power

– name: ‘VE Critical Loads power L1’

unit_of_measurement: “W”

slave: 246

address: 23

data_type: int16

scale: 10

scan_interval: 5

device_class: power

– name: ‘VE Critical Loads power L2’

unit_of_measurement: “W”

slave: 246

address: 24

data_type: int16

scale: 10

scan_interval: 5

device_class: power

– name: ‘VE Critical Loads power L3’

unit_of_measurement: “W”

slave: 246

address: 25

data_type: int16

scale: 10

scan_interval: 5

device_class: power

# GRID meter waarden

# ESS Settings

– name: ‘VE ESS Minimum SoC setpoint’

unit_of_measurement: “%”

data_type: uint16

slave: 100

address: 2901

scan_interval: 5

scale: 0.1

– name: ‘VE Maximum System Grid Feed In’

unit_of_measurement: “W”

data_type: uint16

slave: 100

address: 2706

scale: 0.01

device_class: power

# command_on: 4000

# command_off: 40

# verify_state: false

– name: ‘VE ESS BatteryLife state’

data_type: uint16

slave: 100

address: 2900

scan_interval: 5

– name: ‘VE ESS Grid setpoint’

unit_of_measurement: “W”

data_type: int16

slave: 100

address: 2700

device_class: power

#Battery

– name: ‘VE Battery current’

unit_of_measurement: “A DC”

slave: 100

address: 841

data_type: int16

scale: 0.1

precision: 0

device_class: current

– name: ‘VE Battery Power System’

unit_of_measurement: “W”

slave: 100

address: 842

data_type: int16

scale: 1.0

precision: 0

device_class: power

# VE Charge power. deze gebruiken voor omrekenen van min en pos

– name: ‘VE Charge Power System’

unit_of_measurement: “W”

slave: 100

address: 866

data_type: int16

scale: 1.0

precision: 0

device_class: energy

– name: ‘VE Battery State of Charge System’

unit_of_measurement: “%”

slave: 100

address: 843

data_type: uint16

scale: 1

precision: 0

– name: ‘VE Battery Discharged Energy’

unit_of_measurement: “kWh”

slave: 245

address: 301

data_type: uint16

scale: 0.1

precision: 0

device_class: energy

state_class: total_increasing

– name: ‘VE Battery Charged Energy’

unit_of_measurement: “kWh”

slave: 245

address: 302

data_type: uint16

scale: 0.1

precision: 0

device_class: energy

state_class: total_increasing

# Victron device over Modbus: vebus

# Grid Voltage

– name: ‘VE Grid Voltage L1 in’

unit_of_measurement: “V AC”

slave: 246

address: 3

data_type: uint16

scale: 0.1

offset: 0

precision: 2

device_class: voltage

– name: ‘VE Grid Voltage L2 in’

unit_of_measurement: “V AC”

slave: 246

address: 4

data_type: uint16

scale: 0.1

offset: 0

precision: 2

device_class: voltage

– name: ‘VE Grid Voltage L3 in’

unit_of_measurement: “V AC”

slave: 246

address: 5

data_type: uint16

scale: 0.1

offset: 0

precision: 2

device_class: voltage

– name: “VE Multi Inverter State”

slave: 246

address: 31

data_type: uint16

# Inverter States, 0=Off;1=Low Power;2=Fault;3=Bulk;4=Absorption;5=Float;6=Storage;7=Equalize;8=Passthru;9=Inverting;10=Power assist;11=Power supply;252=Bulk protection

#Alarm Sensors

– name: ‘VE Grid lost alarm’

slave: 246

address: 64

data_type: uint16

unit_of_measurement: “0=Ok;1=Warning”

– name: ‘VE Multi Temperature alarm’

slave: 246

address: 34

data_type: uint16

unit_of_measurement: “0=Ok;1=Warning;2=Alarm”

– name: ‘VE Multi Overload alarm’

slave: 246

address: 36

data_type: uint16

unit_of_measurement: “0=Ok;1=Warning;2=Alarm”

#### Binary sensors (no binary in victron) ########

# binary_sensors:

Er is geen sensor die het vermogen weergeeft van de 3 fasen opgeteld. Daarom heb ik in configuration.yaml nog een extra sensor gemaakt die een berekening maken adhv enkele modbus sensoren. Ook heb hier de Modbus write sensor gemaakt die we straks gebruiken om het laad en ontlaad proces te besturen adhv de day-ahead tarieven. De Victron ESS wordt dus bestuurd mbv modbus write via de sensor ESS_Grid_Setpoint. Hiervoor is een automation gemaakt in HomeAssistant. Zie verder.

– sensor:

– name: “VE Grid Power”

device_class: power

unit_of_measurement: W

state: >

{{ states(“sensor.ve_grid_power_l1”) |float + states(“sensor.ve_grid_power_l2”) | float + states(“sensor.ve_grid_power_l3”) |float }}

– sensor:

– name: “ESS_Grid_Setpoint”

## use this to set ESS grid setpoint. Values are determined by maximum grid connection point

## substract value from 65535 for negative vaule

device_class: power

unit_of_measurement: W

state: >

{% if is_state(“input_number.ess_grid_feedin”, “0.0”) -%}

0

{%- elif is_state(“input_number.ess_grid_feedin”, “1.0”) -%}

17250

{%- elif is_state(“input_number.ess_grid_feedin”, “-1.0”) -%}

48285

{%- endif %}

Op basis van deze 2 integraties kan een dashboard in Home Assistant worden gemaakt die de actuele gegevens weergeeft.

Integratie SolarEdge en P1

Ik heb aan Home Assistant toegevoegd de integratie met SolarEdge voor de zonnestroom informatie. Hierbij moet wel opgemerkt worden dat deze gegevens 1x per 15 minuten worden opgehaald. De informatie is dus alleen statistisch van waarde, je kunt er nauwelijks mee sturen.

Ook heb ik een Youless energie meter aan de P1 poort van de slimme meter gekoppeld. Dit levert enkele extra sensoren op en samen met de eerdere integraties kun je nu het Home Assistant Energy dashboard inrichten.

Onderin het scherm kun je de overige sensoren toevoegen. In mijn situatie zijn dat dus de sensoren die ik via HomeMatic inlees:

Ik heb als extra integratie de Forecast Solar integratie toegevoegd. Deze kan de solar forecast in het energy dashboard weergeven. Maar ik vind de kwaliteit onvoldoende om hiervan gebruik te maken. Zeker als je een bijzondere solar configuratie hebt diverse oriëntaties zoals ik.

Het dashboard ziet er dan zo uit:

De energie tarieven die op de kaart zijn ingevuld komen verderop aan bod. Dit zijn namelijk de berekende tarieven vanuit de day-ahead tool.

Day ahead software

Voor de day ahead software moeten er een aantal componenten worden toegevoegd aan Home Assistant: Node Red en MQTT broker. Dit zijn standaard add-ons die via een menu knop geinstalleerd kunnen worden.

Ik heb gebruik gemaakt van wat code die ik via Internet heb gevonden: https://community.home-assistant.io/t/electricity-day-ahead-prices-for-home-assistant-using-node-red-and-entso-e-api/394484

De reden om met ENTSO te werken is dat dit een europees prijssysteem is waarvan de nederlandse providers zoals Nieuwestroom of ANWB hun prijzen ook vandaan halen. Bovendien hoef je geen contract te hebben om de data van de ENTSO website af te halen. Wel moet je eenmalig een API aanvragen, dit kun je via bovenstaande link terughalen.

De code heb ik op enkele plaatsen wat aangepast dus ik plaats hieronder opnieuw de schermafdrukken en de aangepast code. Zo heb ik in de berekening de waarden geconverteerd en bereken ik een gemiddelde, maximale en minimale prijs.

Allereerst de MQTT sensor in configuration.yaml

mqtt:

sensor:

– state_topic: entsoe/day-ahead

name: ‘Day-ahead-price’

unit_of_measurement: “€”

value_template: ‘{{ value_json.day_ahead_price }}’

json_attributes_topic: entsoe/day-ahead

Dan in Node Red de volgende entiteiten:

Ik heb daar een paar kleine aanpassingen in gedaan:

De code in de Generate URL node:

const today = new Date()

let todayDate = (“0” + today.getDate()).slice(-2)

let todayMonth = (“0” + (today.getMonth() + 1)).slice(-2);

let todayYear = today.getFullYear();

let todayString = todayYear + todayMonth + todayDate;

var urlAddr = “https://transparency.entsoe.eu/api?securityToken=&documentType=A44&in_Domain=10YNL———-L&out_Domain=10YNL———-L&periodStart=” + todayString + “0000&periodEnd=” + todayString + “2300”

msg.url = urlAddr;

return msg;

De code in de Generate Aray node:

var priceArray = [];

var avgprice = 0;

var maxprice = 0;

var minprice = 9999;

for (let i = 0; i < 24; i++) {

priceArray[i] = parseFloat (msg.payload.Publication_MarketDocument.TimeSeries[0].Period[0].Point[i][“price.amount”][0]);

avgprice = avgprice + parseFloat (priceArray[i]);

if (parseFloat(priceArray[i]) > maxprice) {

maxprice = parseFloat(priceArray[i]);

}

if (parseFloat(priceArray[i]) < minprice) {

minprice = parseFloat(priceArray[i]);

}

}

avgprice = (avgprice / 24);

priceArray[24] = (avgprice);

priceArray[25] = (maxprice);

priceArray[26] = (minprice);

flow.set(“pArray”, priceArray);

msg.payload = { “day_ahead_price”: priceArray };

return msg;

Dan voor de 2e flow die elk uur draait de volgende instellingen in de node gemaakt:

De timing is relevant (ook in de 1e flow) omdat ik heb gemerkt dat de timing anders niet geheel verloopt zoals je wenst; op het hele uur. Dat heeft met een bug of gedrag van Node Red te maken.

Dan de code in de node Get next hour rate

var priceArray = [];

priceArray = flow.get(“pArray”);

const today = new Date();

let todayHour = today.getHours();

let todayDate = (“0” + today.getDate()).slice(-2)

let todayMonth = (“0” + (today.getMonth() + 1)).slice(-2);

let todayYear = today.getFullYear();

msg.payload = {

“day_ahead_price”: priceArray[todayHour] / 1000,

“avg_price”: priceArray[24] / 1000,

“max_price”: priceArray[25] / 1000,

“min_price”: priceArray[26] / 1000,

“records”: [

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T00:00:00”,

“Price”: priceArray[0] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T01:00:00”,

“Price”: priceArray[1] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T02:00:00”,

“Price”: priceArray[2] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T03:00:00”,

“Price”: priceArray[3] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T04:00:00”,

“Price”: priceArray[4] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T05:00:00”,

“Price”: priceArray[5] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T06:00:00”,

“Price”: priceArray[6] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T07:00:00”,

“Price”: priceArray[7] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T08:00:00”,

“Price”: priceArray[8] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T09:00:00”,

“Price”: priceArray[9] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T10:00:00”,

“Price”: priceArray[10] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T11:00:00”,

“Price”: priceArray[11] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T12:00:00”,

“Price”: priceArray[12] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T13:00:00”,

“Price”: priceArray[13] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T14:00:00”,

“Price”: priceArray[14] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T15:00:00”,

“Price”: priceArray[15] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T16:00:00”,

“Price”: priceArray[16] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T17:00:00”,

“Price”: priceArray[17] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T18:00:00”,

“Price”: priceArray[18] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T19:00:00”,

“Price”: priceArray[19] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T20:00:00”,

“Price”: priceArray[20] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T21:00:00”,

“Price”: priceArray[21] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T22:00:00”,

“Price”: priceArray[22] / 1000

},

{

“Time”: todayYear + “-” + todayMonth + “-” + todayDate + “T23:00:00”,

“Price”: priceArray[23] / 1000

}

]

};

return msg;

Zoals je ziet zijn de waarden hier meteen al geconverteerd naar centen.

En tot slot de MQTT node:

Het IP adres is het adres van mijn HA installatie. Het poort adres van de MQTT broker die daarop draait.

Na bewaren en deploy moet je zien dat de MQTT broker verbinding maakt. Je kunt dan de waardes inlezen.

Hierna kun je Apexchart maken. Ik heb deze gemodificeerd als volgt:

type: custom:apexcharts-card

experimental:

color_threshold: true

graph_span: 24h

show:

last_updated: true

span:

start: day

header:

title: Day Ahead Prices

standard_format: false

show: true

show_states: false

colorize_states: true

apex_config:

chart:

height: 250

stroke:

width: 1

curve: smooth

now:

show: true

color: red

label: Nu

yaxis:

– min: -0.1

max: 1

decimals: 2

apex_config:

tickAmount: 11

series:

– entity: sensor.day_ahead_price

type: column

unit: ‘ €’

float_precision: 3

show:

header_color_threshold: true

data_generator: |

return entity.attributes.records.map((record, index) => {

return [record.Time, record.Price];

});

color_threshold:

– value: 0.1

color: lightgreen

– value: 0.2

color: green

– value: 0.3

color: yellow

– value: 0.4

color: orange

– value: 0.5

color: orangered

– value: 0.6

color: red

– value: 0.7

color: purple

En dat moet dan ongeveer dit resultaat opleveren:

Om de verschillende waarden uit de sensor.day-ahead-price atributen te halen, heb ik nieuwe sensoren gedefinieerd in configurations.yaml (templates dus).

– sensor:

– name: “Day_Ahead_Avg_Price”

device_class: monetary

unit_of_measurement: €

state: >

{{ state_attr (‘sensor.day_ahead_price’, ‘avg_price’)}}

– sensor:

– name: “Day_Ahead_Current_Price”

#device_class: monetary

unit_of_measurement: €/kWh

state: >

{{ state_attr (‘sensor.day_ahead_price’, ‘day_ahead_price’)}}

– sensor:

– name: “Day_Ahead_Min_Price”

device_class: monetary

unit_of_measurement: €

state: >

{{ state_attr (‘sensor.day_ahead_price’, ‘min_price’)}}

– sensor:

– name: “Day_Ahead_Max_Price”

device_class: monetary

unit_of_measurement: €

state: >

{{ state_attr (‘sensor.day_ahead_price’, ‘max_price’)}}

– sensor:

– name: “Day_Ahead_Lowerband_Price”

device_class: monetary

unit_of_measurement: €

state: >

{{ (1-(states (‘input_number.ess_price_lower_band’)) | int / 100) * (states (‘sensor.day_ahead_avg_price’) | float ) }}

– sensor:

– name: “Day_Ahead_Upperband_Price”

device_class: monetary

unit_of_measurement: €

state: >

{{ (1+(states (‘input_number.ess_price_upper_band’)) | int / 100) * (states (‘sensor.day_ahead_avg_price’) | float )}}

Automations

In principe ben je nu klaar om automations te maken met de sensoren die nu gemaakt zijn.

Ik heb hiervoor de grafische interface gebruikt maar in enkele gevallen moet je de yaml code zelf invullen of aanpassen. Deze automations sturen de switches aan die op hun beurt dus aktoren zijn in mijn HomeMatic domotica systeem. Ik ben op dit moment bezig met het verder uitwerken van diverse scenario’s. Hier zal dus nog wel het e.e.a. aan gewijzigd gaan worden, net als aan de scripts in mijn domotica installatie.

Het resultaat uit mijn automations.yaml file:

– id: ‘1662234306246’

alias: Switch on Energy Storage and Energy Consumers

description: ”

trigger:

– platform: numeric_state

entity_id: sensor.day_ahead_price

attribute: day_ahead_price

below: sensor.day_ahead_lowerband_price

condition: []

action:

– service: switch.turn_on

data: {}

target:

entity_id:

– switch.peq1418450_7

– service: input_number.set_value

data:

value: 1

target:

entity_id: input_number.ess_grid_feedin

– service: switch.turn_off

data: {}

target:

entity_id: switch.peq1418450_8

mode: single

– id: ‘1662899027507’

alias: Set ESS Grid Feed by Modbus

description: This automation sets the Victron ESS Grid feed to in, out or 0

trigger:

– platform: state

entity_id:

– input_number.ess_grid_feedin

condition: []

action:

– service: modbus.write_register

data:

address: 2700

slave: 100

value: ‘{{ states(”sensor.ess_grid_setpoint”) }}’

hub: victron

mode: single

– id: ‘1663360219833’

alias: Switch off Energy Storage and Consumers and Dump Energy to Grid

description: ”

trigger:

– platform: numeric_state

entity_id: sensor.day_ahead_price

attribute: day_ahead_price

above: sensor.day_ahead_upperband_price

condition:

– condition: numeric_state

entity_id: sensor.ve_battery_state_of_charge_system

above: 50

action:

– service: switch.turn_off

data: {}

target:

entity_id: switch.peq1418450_7

– service: input_number.set_value

data:

value: -1

target:

entity_id: input_number.ess_grid_feedin

– service: switch.turn_on

data: {}

target:

entity_id: switch.peq1418450_8

mode: single

– id: ‘1663360672817’

alias: Switch off Energy Storage and set Grid setpoint to 0

description: ”

trigger:

– platform: numeric_state

entity_id: sensor.day_ahead_price

attribute: day_ahead_price

above: sensor.day_ahead_lowerband_price

below: sensor.day_ahead_upperband_price

condition: []

action:

– service: switch.turn_off

data: {}

target:

entity_id:

– switch.peq1418450_8

– switch.peq1418450_7

– service: input_number.set_value

data:

value: 0

target:

entity_id: input_number.ess_grid_feedin

– service: switch.turn_off

data: {}

target:

entity_id: switch.peq1418450_9

mode: single

– id: ‘1663598422950’

alias: Switch Energy Dump if SoC below 50

description: ”

trigger:

– platform: numeric_state

entity_id: sensor.ve_battery_state_of_charge_system

below: 50

condition: []

action:

– service: input_number.set_value

data:

value: 0

target:

entity_id: input_number.ess_grid_feedin

mode: single

– id: ‘1664573680849’

alias: VSW ultra switch on

description: Schakelt schakelaar aan als de elec prijs zeer laag is.

trigger:

– platform: numeric_state

entity_id: sensor.day_ahead_price

attribute: day_ahead_price

below: 0.02

condition: []

action:

– service: switch.turn_on

data: {}

target:

entity_id: switch.peq1418450_9

mode: single

– id: ‘1664573871793’

alias: VSW ultra switch off

description: ”

trigger:

– platform: numeric_state

entity_id: sensor.day_ahead_price

attribute: day_ahead_price

above: 0.02

condition: []

action:

– service: switch.turn_off

data: {}

target:

entity_id: switch.peq1418450_9

mode: single

Wishlist

Dit draait nu een paar weken en ik begin er aardig wat ervaring mee op te doen. Wat ik mis is een voorspelling voor de volgende dag. De day-ahead prijzen zijn in de loop van de middag bekend en eigenlijk wil je die al weten om daarmee het laden/ontladen en het sturen van andere aktoren voor de rest van de dag, optimaal te kunnen besturen. Via de link uit de HA community (hiervoor) heb ik gezien dat ook anderen hiermee bezig zijn. Dus ik ga dat nog verder volgen.

Een uitgewerkt concept voor een thuisbatterij

Als antwoord op de sterk gestegen vraag naar een oplossing voor thuisopslag heb ik bedrijfsmatig (via mijn bedrijf Hetslimmehuis) samen met ECO-Lithium (leverancier van batterijen) enkele standaard concepten ontwikkeld met behulp van het Victron Energy Storage System ESS.

In dit artikel tref je de verschillende mogelijkheden die wij voor je kunnen samenstellen. Natuurlijk is er nog veel meer mogelijk, maar door de keuze wat te beperken én toch ook rekening te houden met groei in de toekomst, kun je met deze oplossingen een mooie start maken met het opslaan en hergebruiken van jouw eigen opgewekte energie. Nieuwsgierig? Check ook het Youtube kanaal.

Vier opties of maatwerk

Wij hebben vier opties nader uitgewerkt. Deze vier opties hebben gemeen dat zij gebruik maken van bestaande PV-omvormers (AC type) zoals SMA, GroWatt, GoodWe of SolarEdge, met uitzondering van optie 4. Bij deze laatste is gekozen voor een zonnelader van Victron Energy die wordt geïntegreerd in het ESS.

  1. Een enkel fase oplossing, geschikt tot 5 kWp bestaand PV vermogen, met een ECO-Lithium batterij van 11 kWh bruto capaciteit (9 kWh nuttig te gebruiken);
  2. Een drie fase oplossing, geschikt tot 5 kWp bestaand PV vermogen, met een ECO-Lithium batterij van 15 kWh bruto capaciteit (14 kWh nuttig te gebruiken).
  3. Een drie fase oplossing, geschikt tot 15 kWp bestaand PV vermogen, met een ECO-Lithium batterij van 15 kWh bruto capaciteit (14 kWh nuttig te gebruiken).
  4. Als extra keuze hebben wij een 3 fasen oplossing samengesteld met een SmartSolar MPPT laadregelaar voor zonnepanelen met een aansluitwaarde van 6-11kWp. Hierbij past een 15kWh batterij. Voor deze optie heb je dan zelf geen AC omvormer meer nodig en er is minder energieverlies.

Uiteraard zijn ook andere configuraties mogelijk, neem in dat geval contact met ons op.

Batterijen kunnen wij op dit moment leveren in de grootte van 11 kWh of 15 kWh. Meerdere sets kunnen parallel geschakeld worden tot bijvoorbeeld 22 kWh, 30 kWh of 45 kWh.

Uitgangspunten

Voor deze oplossingen hebben wij de volgende uitgangspunten samengesteld. Deze uitgangspunten zijn gebaseerd op onze ervaringen.

  • Hetslimmehuis is van mening dat een thuis batterij alleen bestaansrecht heeft als deze wordt aangesloten op een PV (zonnepanelen) installatie. Natuurlijk kun je het opslagsysteem ook gebruiken zonder een PV-systeem maar erg logisch is dat niet.
  • Als vuistregel voor de omvang van de batterij hanteren wij het gemiddelde dagverbruik over een jaar gemeten. Bijvoorbeeld: u verbruikt jaarlijks 3.500 kWh elektriciteit in uw huishouden (zonder verrekening/saldering van PV opwek), hierbij past een capaciteit van 3500/365=9.6 kWh batterij.
  • Een tweede vuistregel zegt ons dat de batterij capaciteit moet passen bij de capaciteit van de hybride omvormer van Victron én bij de opwek capaciteit van jouw PV installatie.
    • Voorbeeld 1: je hebt 10 zonnepanelen van elk 350 Wp, totaal dus 3.500 Wp, aangesloten op een enkelfase GroWatt omvormer van 3.500 Watt. De omvormer van Victron moet in staat zijn om dit vermogen in de batterij te laden of uit de batterij te halen. Hierbij past een Multiplus II 5000 VA.
    • Voorbeeld 2: je hebt 16 zonnepanelen van elk 350 Wp, totaal 5.600 Wp, aangesloten op een 3 fasen omvormer van SolarEdge van 5 kW. In dit geval kies je de 3-fasen oplossing van Victron met 3 stuks Multiplus II 3000 VA. Samen hebben deze een opgeteld vermogen dat ruim voldoende is om dit opgewekte vermogen in de batterijen te laden of uit de batterijen te halen.
    • Voorbeeld 3: je hebt 24 panelen van elk 350 Wp, totaal 8.400 Wp, aangesloten op een 3 fasen omvormer van SMA van 8 kW. je hebt dan 2 keuzes: je kunt kiezen voor de 3 fasen oplossing met 3 stuks Multiplus II 3000 (maximaal 5,5 kW laden/ontladen) of 3 stuks Multiplus II 5000 (maximaal 11 kW laden/ontladen).
  • Een grotere batterij dan door ons bepaald heeft geen voordeel. Je moet immers ook in staat zijn om de batterij te laden met voldoende zonnestroom. In de zomer kan een 3.500 Watt PV omvormer gemiddeld 20 kWh op een dag “oogsten”, daar gaat dan het eigen verbruik voor bijvoorbeeld vaatwasser, keukenboiler e.d. vanaf. Stel dat dit overdag 5 kWh is, dan is er maximaal 15 kWh beschikbaar voor de batterij. Een te grote batterij heeft dus geen zin. De kans is groot dat er te veel dagen in het jaar zijn dat de batterijen niet voldoende geladen kunnen worden. Een batterij gaat langer mee als deze minder wordt gebruikt maar de batterij is beveiligd tegen te diepe ontlading.
  • De omvang van de Victron omvormers is van invloed op de maximale belasting die kan optreden in geval van een netspanningsstoring of als u werkelijk al het verbruik in jouw huis wenst te compenseren tot 0.
    • Voorbeeld 1: het benodigd vermogen voor jouw huishouden is s ‘avonds 2.000 Watt. Als de stroom uitvalt wil je dat alle apparatuur die samen die 2.000 Watt verbruikt, blijft functioneren. Alle opties kunnen dit ondersteunen.
    • Voorbeeld 2: het benodigd vermogen voor jouw huishouden is s ‘avonds 2.000 Watt en de laadpaal staat aan en verbruikt ook 3.500 Watt. In geval van een stroomstoring kan dat niet opgevangen worden door de Victron omvormers en zullen deze overbelast worden. In dat geval kiezen wij ervoor om zware verbruikers (zoals boilers, warmtepomp, laadpaal e.d.) parallel te schakelen met de Victron omvormers. Dit betekent in ons voorbeeld dat de laadpaal gedurende de stroomstoring uit zal gaan maar de overige apparaten in jouw huis gewoon blijven functioneren. Overbelasting van omvormers wordt zo voorkomen.
    • Voorbeeld 3: het benodigde vermogen voor jouw huishouden is op een grijze regenachtige dag 2.000 Watt. De zonnepanelen leveren slechts 500 Watt. Het Victron Energie systeem zal het verschil compenseren door 1.500 Watt uit de batterijen te halen zodat jij  geen stroom hoeft te kopen. Maar als plotseling de laadpaal wordt aangezet met een vermogen van 11.000 Watt is dit te veel om gecompenseerd te worden door de Victron Multiplus II 3000. Deze levert maximaal 5.500 Watt in drie fasen. Het nettoverschil zal vanaf het elektriciteitsnetwerk worden geladen (2.000+11.000-500-5.500=7.000 Watt.

Wat zit er in onze Victron ESS oplossing?

Afhankelijk van de gekozen optie krijg je 1 of 3 omvormers en een batterij van 11 kWh of 15kWh door ons geleverd. Daarnaast een Cerbo CX besturingseenheid met een 5 inch Touchscreen en een Lynx distributie eenheid inclusief zekeringen voor het aansluiten van de batterij en de bekabeling van en naar de meterkast. Ook worden er veiligheidsautomaten geleverd zodat de installatie veilig aangesloten kan worden op de huisinstallatie in de meterkast.

Het geheel wordt door ons gemonteerd op een houten multiplexplaat, voorzien van een brandvertragende coating die uiteindelijk op een droge, stofvrije en vorstvrije plaats in of nabij de woning moet worden geplaats. Tegen een meerprijs kan een volledig rvs-kast met afsluitbare deuren worden geleverd waarin de installatie wordt geplaatst. De omvormers kunnen in warme zomerse omstandigheden geluid produceren. De ruimte waarin de apparatuur wordt geplaatst moet dus geventileerd kunnen worden.

In uw meterkast wordt een extra tussenmeter geplaatst die met een datakabel wordt verbonden met de Cerbo CX besturingseenheid. In de meterkast splitsen wij de noodzakelijke aansluitingen naar de woning (verlichting, keuken, televisie e.d.) van de niet noodzakelijke aansluitingen (boiler, warmtepomp, laadpaal e.d.). Daarnaast wordt een extra veiligheidsautomaat in de meterkast gebouwd. Als de meterkast onvoldoende ruimte heeft voor deze uitbreidingen, leveren wij een uitbreiding tegen een kleine meerprijs.

Het gemonteerde systeem heeft een totaalgewicht van 50-150 kg, afhankelijk van de uitvoering (exclusief de optionele rvs-straatkast. Daarnaast krijgt u de batterijen geleverd. Een batterij van 10 kWh heeft een gewicht van 60 kg. Een batterij van 15 kWh heeft een gewicht van 85 kg. Batterijen kunnen op de grond worden geplaatst maar wij kunnen ook exemplaren leveren die tegen de muur worden geplaatst. Neem contact met ons op voor de mogelijkheden.

Hieronder zijn de 4 opties nader uitgewerkt.

Optioneel kan een extra batterij worden toegevoegd tegen de volgende prijs:

  • 10 kWh        € 4.400,-
  • 15 kWh        € 6.000,-
  • Meerprijs RVS-buitenkast is op aanvraag en afhankelijk van de situatie.

Momenteel ontwikkelen wij software waarmee het mogelijk is om op basis van de energietarieven, energie in te kopen of te verkopen via het batterij systeem. Zodra wij een werkend en stabiel systeem hebben, zullen wij je hierover berichten. De verwachting is dat dit eind 2022 tot een eerste versie kan leiden.

Opstelling optie 1: 1 fase Multiplus II-5000

Optie 1: Enkel Fase 5kVA/10kWh
Victron Multiplus II 5000 48/70-50 PMP482505010 1
Victron Cerbo X ESS controller BPP900450100 1
Victron Touchscreen HDMI 50 BPP900455050 1
Victron Touchscreen wallmount BPP900465050 1
Victron Carlo Gavazi gridmeter ET112 REL300100000 1
Victron RS485 to USB 5 mtr kabel ASS030572050 1
Victron SmartShunt 500A SHU050150050 1
Victron Megafuse zekering CIP137250010 2
ECO-Lithium 10kW batterij ECO-Lithium 10/48 1
Toebehoren (kabels, automaten) 1
Montage kosten 1
TOTAAL, excl. BTW € 8.350,-

Opstelling optie 2: 3 fasen Multiplus II-3000

Optie 2: drie-fasen 9kVA/15kWh
Victron Multiplus II 3000 48/35-32 PMP482305010 3
Victron Cerbo X ESS Controller BPP900450100 1
Victron Touchscreen HDMI 50 BPP900455050 1
Victron Touchscreen wallmount BPP900465050 1
Victron Carlo Gavazi gridmeter ET340 REL300300000 1
Victron RS485 to USB 5 mtr kabel ASS030572050 1
Victron SmartShunt 500A SHU050150050 1
Victron Lynx Distributor LYN060102000 1
Victron Mega Fuse 250A CIP137250010 4
Eco-Lithium batterij 15kWh/48V ECO-Lithium 15/48 1
Toebehoren (kabels, automaten) 1
Montage Kosten 1
TOTAAL, excl. BTW € 11.950,-

Opstelling optie 3: 3 fasen Multiplus II 5000

Optie 3: drie-fasen 15kVA/15kWh
Victron Multiplus II 5000 48/70-50 PMP482505010 3
Victron Cerbo X ESS Controller BPP900450100 1
Victron Touchscreen HDMI 50 BPP900455050 1
Victron Touchscreen wallmount BPP900465050 1
Victron Carlo Gavazi gridmeter ET340 REL300300000 1
Victron RS485 to USB 5 mtr kabel ASS030572050 1
Victron SmartShunt 500A SHU050150050 1
Victron Lynx Distributor LYN060102000 1
Victron Mega Fuse 250A CIP137250010 4
Eco-Lithium batterij 15kWh/48V ECO-Lithium 15/48 1
Toebehoren (kabels, automaten) 1
Montage Kosten 1
TOTAAL excl. BTW € 13.750,-

Optie 4: 3 fasen Multiplus II 3000 inclusief SmartSolar MPPT 6-11kWp

Optie 4: drie-fasen 9kVA/15kWh, incl SmartSolar 6-11kWp
Victron Multiplus II 3000 48/35-32 PMP482305010 3
Victron Cerbo X ESS Controller BPP900450100 1
Victron Touchscreen HDMI 50 BPP900455050 1
Victron Touchscreen wallmount BPP900465050 1
Victron Carlo Gavazi gridmeter ET340 REL300300000 1
Victron RS485 to USB 5 mtr kabel ASS030572050 1
Victron SmartShunt 500A SHU050150050 1
Victron Lynx Distributor LYN060102000 1
Victron Mega Fuse 250A CIP137250010 5
Victron MPPT Smartsolar RS450/100 SCC145110410 1
Eco-Lithium batterij 15kWh/48V ECO-Lithium 15/48 1
Toebehoren (kabels, automaten) 1
Montage Kosten 1
TOTAAL excl. BTW € 13.500,-

Garantie en overige voorwaarden

  • Alle prijzen in deze aanbieding zijn excl. 21% BTW.
  • Deze prijslijst is geldig voor het 3e kwartaal van 2022. Prijzen na 1 oktober 2022 zijn nog onbekend.
  • Er zijn nog geen landelijke subsidies voor Energie Opslag Systemen. Neem contact met je gemeente of er lokale subsidies beschikbaar zijn. Zakelijk zijn er wel subsidies, zoals VAMIL (EIA). Neem contact met RVO voor meer informatie.
  • Op het werkende systeem leveren wij een garantie van 5 jaar. Voor een Doe Het Zelf oplossing geldt alleen de garantie op defecte onderdelen.
  • Het Victron ESS vereist een Internet aansluiting. Hiermee kunt u als eigenaar en wij als systeem integrator het systeem monitoren en eventuele storingen oplossen. Een ethernet aansluiting is aan te bevelen, ook voor toekomstige functionele uitbreidingen. Optioneel kan tegen meerprijs een Wifi oplossing worden geboden als de reikwijdte van uw Wifi niet toereikend is.
  • Het Victron ESS beschikt standaard over een backup-faciliteit: bij stroomuitval blijft de woning volledig voorzien van stroom. Dit vereist wel een extra kabel tussen de Victron ESS omvormers en de meterkast (samen dus 2 kabels!). Kies altijd een 6mm2 kabel (enkel fase of 3-fase, afhankelijk van de gewenste opstelling).
  • Levertijd is in overleg en afhankelijk van de beschikbaarheid van onderdelen.
  • Leveringsvoorwaarden Hetslimmehuis zijn van toepassing. Deze zijn beschikbaar op onze website: https://www.hetslimmehuis.nl/leveringsvoorwaarden