SMA Modbus en andere zooi

Voor discussies en hulp met je smarthome en automatisering kan je hier terecht. DE plaats voor alles over home assistant, Philips hue, Zigbee, Sonoff, ...
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Sinds een jaar heb ik zonnepanelen, een batterij met sma tripower SE 8.0 omvormer. Bij die installatie kwam ongevraagd een Flexio van lifpwr en die stuurt nu een jaartje de batterij aan. Ik heb ook een dynamisch elektriciteitscontract contract voor de volledigheid.

Na x maanden kwam men van Lifepwr ineens af dat we bij de gelukkigen waren.
Gezien we bij de eerste 1400 installatie waren van hun product, mogen we dit tot december volgend jaar gratis gebruiken, dan zal een abonnementskost in rekening worden gebracht. Op voorhand werd hier niets van gezegd, dus dit heeft wel een wrang nasmaaktje gegeven. Ik ben dus ook niet van plan om dat abonnement te starten eind volgend jaar. Met andere woorden stopt dat Flexioverhaal hier op dat moment.

Op zich heeft het niet met de werking van het product te maken, want dat gaat redelijk goed. Het ding doet wat het belooft te doen.
Gezien Flexio de besturing van de omvormer kan overnemen ben ik gaan zoeken hoe ik zelf de omvormer zou kunnen aansturen via modbus.

Ik heb de volgende modbus registers van mijn omvormer gevonden op het net.

https://www.sma.de/en/products/product- ... -interface

https://files.sma.de/downloads/PARAMETE ... 9R_V11.zip

Eigenlijk zou je enkel de registers nodig hebben om energie te importeren, exporteren, batterij te laden of te ontladen.
Je zou je eigen algoritme of regels kunnen maken en zelf het geheel wat aansturen.

Er staan in de lijst wel een aantal parameters ifv van batterij, maar iemand enige ervaring mee?

Ik heb home assistant draaien en gebruik node red. Ik kan registers uitlezen en schrijven via modbus. Dat heb ik al uitgevlooid.
Ik kan de installatie wat knijpen bijvoorbeeld om export naar het net te voorkomen bij negatieve prijzen bijvoorbeeld.
Ik ben vooral op zoek naar de juiste registers om de batterij geforceerd op te laden of te ontladen.

Iemand al zijn eigen omvormer aan het aansturen momenteel?
liegebeestig
Elite Poster
Elite Poster
Berichten: 2341
Lid geworden op: 01 jun 2006, 13:16
Uitgedeelde bedankjes: 38 keer
Bedankt: 56 keer

Bericht

Ik ben hier ook mee bezig en volgens mij kun je iets doen met de 'mains exchange capacity target value'. Daar bepaal je rond hoeveel W je wil dat ie 'balanceert'. Normaal is dat nul, je wil dat er geen afname is van het net. Maar je kunt ook instellen: ik wil dat je hoe dan ook 400w afneemt, zelfs als het niet nodig is voor het huis. Zo laad ik de batterij snachts soms lichtjes bij van het net.

Probleem is dat deze modbus parameter niet te vaak overschreven mag worden om slijtage van de ingebouwde 'sd kaart' te vermijden.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

liegebeestig schreef: 12 feb 2024, 09:18 Ik ben hier ook mee bezig en volgens mij kun je iets doen met de 'mains exchange capacity target value'. Daar bepaal je rond hoeveel W je wil dat ie 'balanceert'.
Enig idee welk modbus register nummer dit exact is? In de hele lijst kan ik het niet terug vinden. Dit zou al een hele hulp zijn. :P


De register nummers om de batterij te laden en ontladen die het meest in aanmerking komen denk ik zijn de volgende:

Charge energy --> 41363
Discharge energy --> 41365
Active power setpoint --> 40149 (kan ik hiermee geforceerd importeren of exporteren?)

Zijn beide ook RW met een "warning against cyclical writing". :roll:

Ik heb ze echter nog niet getest. Beetje last van koud water vrees. :oops: Ik hoop dat iemand dit al eerder aan het doen is om het te bevestigen of dit de juiste zijn of niet.
In de hele lijst zijn namelijk enkele verschillende te vinden en zo heel duidelijk is de info van de modbusregisters niet jammer genoeg.

Toegevoegd na 18 uren 24 minuten 47 seconden:
@liegebeestig

Heb ergens gevonden dat dit de "Active power setpoint" zou moeten zijn met register nummer "40149" bij SMA.

link: https://community.home-assistant.io/t/m ... ter/325668

Dit komt overeen met wat ik in de lijst van modbusregisters van mijn omvormer kan terug vinden.

Ik ga het eens testen vandaag en laat nog iets weten.
snarie
Member
Member
Berichten: 76
Lid geworden op: 12 maa 2003, 18:57
Uitgedeelde bedankjes: 1 keer
Bedankt: 4 keer
Recent bedankt: 1 keer

Bericht

Met deze python scripts controleer ik de batterij omvormer (SBS2500)

Code: Selecteer alles

def set_max_unloading_bat(max_discharge):
    logger.debug("Calling set_max_unloading_bat with max_discharge = " + str(max_discharge))

    mbc = ModbusClient()

    # uncomment this line to see debug message
    mbc.debug = True

    # define modbus server host, port
    mbc.host = SERVER_HOST_BAT
    mbc.port = SERVER_PORT_BAT
    mbc.unit_id = SERVER_UNIT_ID_BAT
    nul_parl = [0, 0, 0, 2500, 0, 0, 0, 0, 0, 0]

    # open or reconnect TCP to server
    if not mbc.is_open:
        if not mbc.open():
            logger.error(
                "**E** set_max_unloading_bat: unable to connect to " + SERVER_HOST_BAT + ":" + str(SERVER_PORT_BAT))

    # if open() is ok, write register (modbus function 0x03)
    if mbc.is_open:
        regsmbc = mbc.write_multiple_registers(40236, [0, 2424])
        logger.debug("**D** set_max_unloading_bat: write to 40236: " + str(regsmbc))

        nul_parl[7] = int(max_discharge)
        regsmbc = mbc.write_multiple_registers(40793, nul_parl)
        logger.debug("**D** set_max_unloading_bat: write to 40793: " + str(regsmbc))

    mbc.close()
    logger.debug(nul_parl)


def force_loading_bat(max_charge=2500):
    logger.debug(f"Calling force_loading_bat with max_charge = {max_charge}")

    mbc = ModbusClient()
    mbc.debug = True

    # define modbus server host, port
    mbc.host = SERVER_HOST_BAT
    mbc.port = SERVER_PORT_BAT
    mbc.unit_id = SERVER_UNIT_ID_BAT

    reg40793to40801 = [0, 0, 0, 2500, 0, 0, 0, 0, 0, 0]
    reg40149to40151 = [0x8000, 2500, 0, 802]
    reg41251 = [0, 2500]

    # open or reconnect TCP to server
    if not mbc.is_open:
        if not mbc.open():
            logger.error(f"**E** force_loading_bat: unable to connect to {SERVER_HOST_BAT}:{SERVER_PORT_BAT}")

    # if open() is ok, write register (modbus function 0x03)
    if mbc.is_open:
        regsmbc = mbc.write_multiple_registers(40236, [0, 2424])
        logger.debug(f"**D** force_loading_bat: write to 40236: {regsmbc}")
        time.sleep(modbusWaittime)

        reg40793to40801[3] = int(max_charge)
        regsmbc = mbc.write_multiple_registers(40793, reg40793to40801)
        logger.debug(f"**D** force_loading_bat: write to 40793: {regsmbc}")
        time.sleep(modbusWaittime)

        reg41251[1] = int(max_charge)
        regsmbc = mbc.write_multiple_registers(41251, reg41251)  # S32 FIX0
        logger.debug(f"**D** force_loading_bat: write to 41251: {regsmbc}")
        time.sleep(modbusWaittime)

        reg40149to40151[1] = int(max_charge)
        regsmbc = mbc.write_multiple_registers(40149, reg40149to40151)
        logger.debug(f"**D** force_loading_bat: write to 40149: {regsmbc}")

        set_superglobal('batLocked', max_charge)

    mbc.close()
    logger.debug(reg40793to40801)
    logger.debug(reg41251)
    logger.debug(reg40149to40151)


def release_bat():
    logger.debug("Calling release_bat")

    mbc = ModbusClient()
    mbc.debug = True

    # define modbus server host, port
    mbc.host = SERVER_HOST_BAT
    mbc.port = SERVER_PORT_BAT
    mbc.unit_id = SERVER_UNIT_ID_BAT
    nul_parl = [0, 0, 0, 2500, 0, 0, 0, 2500, 0, 0]

    # open or reconnect TCP to server
    if not mbc.is_open:
        if not mbc.open():
            logger.error(f"**E** force_loading_bat: unable to connect to {SERVER_HOST_BAT}:{SERVER_PORT_BAT}")

    # if open() is ok, write register (modbus function 0x03)
    if mbc.is_open:
        regsmbc = mbc.write_multiple_registers(40236, [0, 2424])
        logger.debug(f"**D** release_bat: write to 40236: {regsmbc}")

        regsmbc = mbc.write_multiple_registers(40793, nul_parl)
        logger.debug(f"**D** release_bat: write to 40793: {regsmbc}")
        time.sleep(modbusWaittime)

        regsmbc = mbc.write_multiple_registers(41251, [0, 2500])  # S32 FIX0
        logger.debug(f"**D** release_bat: write to 41251: {regsmbc}")
        time.sleep(modbusWaittime)

        regsmbc = mbc.write_multiple_registers(40149, [0, 2500, 0, 803])
        logger.debug(f"**D** release_bat: write to 40149: {regsmbc}")

        set_superglobal('batLocked', 0)

    mbc.close()
    logger.debug(nul_parl)
De PV inverter dicht knijpen tot niveau van eigen gebruik: (bij dynamisch tarief, als prijs < 0 is)

Code: Selecteer alles

cpv = ModbusClient()

# uncomment this line to see debug message
cpv.debug = True

# define modbus server host, port
cpv.host = SERVER_HOST_PV
cpv.port = SERVER_PORT_PV
cpv.unit_id = SERVER_UNIT_ID_PV

# open or reconnect TCP to server
if not cpv.is_open:
    if not cpv.open():
        logger.error(f"PV: unable to connect to {SERVER_HOST_PV} : {SERVER_PORT_PV}")

# Lees huidig ingestelde limitatie
if cpv.is_open:
    regs = cpv.read_holding_registers(41255, 1)
    logger.debug(f"PV: read from 41225: {regs}")
    regPV = regs[0] / 100.0
    if regPV != 0:
        actPV = 100.0 * sunP / regPV

if itemdynprice.state < 0:
    batextra = (2500.0 + batP) if batSoC < 99 else 0.0

    maxPV = 100.0 if actPV == 0.0 else 100.0 * (sunP + netP + batextra + 50.0) / actPV

    if maxPV > 100.0:
        maxPV = 100.0
    elif maxPV < 0.0:
        maxPV = 0.0
else:
    maxPV = 100.0

if regPV != maxPV:
    # if open() is ok, write register (modbus function 0x03)
    if cpv.is_open:
        regs = cpv.write_single_register(41255, int(100.0 * maxPV))
        logger.debug(f"PV: write to 41225: {regs}")

cpv.close()
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

@snarie

Merci voor de code! Ik bestudeer het op een iets later moment, gezien vandaag helaas nog andere verplichtingen, maar het ziet er alvast handig uit. :beerchug:


@liegebeestig
De stekker even uit Flexio getrokken en getest:

Active power setpoint --> modbusregister 40149 getest en werkende bevonden. Zowel import als export forceren lukt! :banana:

Dit opent een groot deel mogelijkheden. :angel:
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Ondertussen heeft het even stil gelegen, maar dit is waar ik momenteel sta. Na wat testen merk ik op dat het modbusregister 40149 het active setpoint aanpast. Het lukt dus om actief te gaan importeren of exporteren.

Ik ben niet zo thuis in programmeren en dus is het voor mij makkelijker om modbus via node red aan te sturen. Hier heb ik al mijn automatiseringen draaien.

Wat lukt dusver:

Met de volgende code en met dank aan chatgpt

Code: Selecteer alles

// Define the Modbus function code and register number
var fc = 16; // Function code for Write Multiple Registers
var sa = 40149; // Starting register number for "active power setpoint"


// Define the setpoint value (0)
var setpointValue = 0;


// Convert the setpoint value to a 32-bit signed integer
var intValue = Math.round(setpointValue); // Round the value to the nearest integer
var buf = Buffer.alloc(4); // Use 4 bytes for a 32-bit signed integer
buf.writeInt32BE(intValue);


// Create the Modbus message object
var message = {
    payload: {
        value: buf,
        'fc': fc,
        'unitid': 1, // Modify if needed
        'address': sa,
        'quantity': 4, // Number of registers to write (adjust to match the length of the payload array)
        'datatype': 'S32', // Set the data type to S32
        'format': 'FIX0', // Set the data format to FIX0
        'access': 'WO', // Set the access to WO (Write Only)
        'name': 'active power setpoint' // Set the name to match the SMA Speedwire name
    }
};


// Send the message to the output
return message;
kan ik het setpoint aanpassen. Via een functienode stuur ik dit naar mijn omvormer.

Dit gaat echter enkel als ik de flexio draaiende heb en uitschakel.
Mijn omvormer staat dan nog een tijd in een soort van manuele staat zeg maar en kan dan zaken testen.
Pas na een tijd neemt de omvormer de automatische controle zelf weer in handen.
Dit lijkt logisch en kan ik ook uit @snarie zijn code halen dat hij ook eerst zijn omvormer zegt dat hij de controle overneemt, zodat hij kan aanpassen wat hij wil en daarna de controle terug geeft aan de omvormer, zodat deze automatisch terug zichzelf gaat sturen.

Ik zou dit eveneens in een funtienode willen krijgen al laat Chatgpt mij daar een stukje in de steek.


Naar waarschijnlijkheid zou dit het meest plausibele register zijn om de controle van de omvormer over te nemen en terug te geven, al ben ik niet 100% zeker.

Code: Selecteer alles

Channel: Inverter.WModCfg.WCtlComCfg.WCtlComAct
object type: Sollwert
name (SMA Speedwire): Eff./reac. pow. contr. via comm.
Value Range / Unit / Set values: 	802: Active (Act)
803: Inactive (Ina)
Default value: 1
Step size: -
SMA modbus register addres: 40151
Number of Contiguous SMA modbus registers: 2
SMA modbus data type: U32
SMA modbus data format: TAGLIST
SMA Modbus Acces: WO

De volgende code werkt jammer genoeg niet:

Code: Selecteer alles

// Schrijf een waarde van 1 naar register 40151 om de communicatie met de omvormer te activeren


msg.payload = {
    'address': 40151,
    'value': 1,
    'dataType': 'U32',
    'numberOfRegisters': 2,
    'dataFormat': 'TAGLIST',
    'access': 'WO'
};


return msg;

en geeft de volgende foutmelding:

Code: Selecteer alles

3/20/2024, 8:31:12 AMnode: Modbus write node
msg : string[12]
"FC Not Valid"
Ook values van 803, 802, 2, 3 geven een foutmelding.

Iemand enig idee om mij in de juiste richting te brengen?
liegebeestig
Elite Poster
Elite Poster
Berichten: 2341
Lid geworden op: 01 jun 2006, 13:16
Uitgedeelde bedankjes: 38 keer
Bedankt: 56 keer

Bericht

Durf jij effectief met de RW registers spelen ivm de waarschuwing van sma? Hoe vaak verander je het setpoint? Ik heb het deze winter nog handmatig gedaan in de settings maar dit is dus wel degelijk wat ik bedoelde.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

liegebeestig schreef: 20 maa 2024, 08:45 Durf jij effectief met de RW registers spelen ivm de waarschuwing van sma? Hoe vaak verander je het setpoint? Ik heb het deze winter nog handmatig gedaan in de settings maar dit is dus wel degelijk wat ik bedoelde.
Deze twee registers zijn RW en hebben een waarschuwing rond cyclical writing.
Charge energy --> 41363
Discharge energy --> 41365

Het register van het "active setpoint" is een WO register en heeft geen waarschuwing. Ik ben er redelijk gerust op.
Na het herlezen van mijn post van een maand geleden, heb ik dat toen niet helemaal correct of duidelijk in mijn post gezet.

Ook het register 40016 om het opwek te knijpen bij bijvoorbeeld negatieve prijzen is ook geen register met waarschuwing betreft cyclical writing en mag dus regelmatig beschreven worden.

Ik ga geen registers beschrijven met een waarschuwing. Ik denk dat het ook niet nodig zal zijn, want het zou denk ik niet zo logisch zijn. Ik denk dat de Flexio's van deze wereld eveneens dezelfde registers gebruiken om hun aansturing te doen. Eigenlijk heb enkel nog het juiste script nodig om in een functienode te injecteren om via node red de sturing van de omvormer over te nemen en het is "off to the races". Het is denk ik de laatste drempel.

In Snarie zijn python script doet hij dit ook zo, maar ik ben zelf niet bedreven in python jammer genoeg en hij heeft hetzelfde merk omvormer, maar een andere type.

Hopelijk kan iemand de juiste richting geven, want ik ben er achter dat je dit met redelijk wat omvormers zelf kan aansturen. Niet enkel SMA, maar evengoed GOODWE, SOLAX of andere omvormers, kan je de modbusregisters online terug vinden. Er zouden dus wel meer mensen dit kunnen.

Het is een beetje een proces van voortschijdend inzicht. Het zou wel fijn zijn om de laatste drempel over te geraken. :lol:

update: Ik kan natuurlijk enkel spreken over mijn eigen omvormer, want welke registers wel en niet een waarschuwing hebben betreft cyclical writing, heb ik geen zicht op. Misschien zijn er andere omvormers waar je dit beter niet mee doet.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Het is gelukt! :beerchug: Ik kan de sturing overnemen en teruggeven aan de omvormer via node red en bij gevolg het active setpoint veranderen om energie te importeren of te exporteren op basis van eigen parameters of gewoon de opwek knijpen bij negatieve prijzen in de zomer, de batterij bijladen aan het net als de groothandelsprijs weer eens negatief gaat zoals in de kerstvakantie.
Dit wil zeggen dat je de sturing zoals Flexio of andere externe systemen deze doen, kan vervangen door je eigen sturing.

Waarom het nu wel lukt is omdat ik blijkbaar de waarde als een aray moest schrijven en niet als single write register.
Met onderstaande code lukt het dus wel.

Ik ga het hier delen, omdat het anderen kan helpen en hopelijk ook op goede weg brengen met hun eigen omvormer indien interesse.
Mijn omvormer is een SMA Tripower SE 8.

Samengevat gebruik ik Node red binnen Home Assistant voor al mijn sturingen. (energiehuishouding, verlichting, vochtafzuiging, sommige apparaten,...)
Even een eenvoudige testsetup in node red:

Inject node --> functienode --> modbus write node

De modbus write node moet uiteraard correct ingesteld zijn om connectie te maken via modbus met de omvormer.

De volgende code gebruik ik in de functienode:


Om controle te nemen van de omvormer:

Code: Selecteer alles

// Stel de gewenste waarde in voor de modus van de vermogensregeling via communicatie
var desiredMode = [0, 802]; // Active

// Vorm het bericht voor het schrijven naar Modbus
var message = {
    payload: {
        value: desiredMode,
        unitid: 1,
        fc: 16, // Functiecode 16 voor het schrijven van meerdere registers
        address: 40151,
        quantity: 2 // Aantal registers om te schrijven
    }
};

// Stuur het bericht naar de uitgang van de functie node
return message;

Om het active setpoint te veranderen:

Code: Selecteer alles

// Define the Modbus function code and register number
var fc = 16; // Function code for Write Multiple Registers
var sa = 40149; // Starting register number for "active power setpoint"

// Define the setpoint value (0)
var setpointValue = 0;

// Convert the setpoint value to a 32-bit signed integer
var intValue = Math.round(setpointValue); // Round the value to the nearest integer
var buf = Buffer.alloc(4); // Use 4 bytes for a 32-bit signed integer
buf.writeInt32BE(intValue);

// Create the Modbus message object
var message = {
    payload: {
        value: buf,
        'fc': fc,
        'unitid': 1, // Modify if needed
        'address': sa,
        'quantity': 4, // Number of registers to write (adjust to match the length of the payload array)
        'datatype': 'S32', // Set the data type to S32
        'format': 'FIX0', // Set the data format to FIX0
        'access': 'WO', // Set the access to WO (Write Only)
        'name': 'active power setpoint' // Set the name to match the SMA Speedwire name
    }
};

// Send the message to the output
return message;
In dit voorbeeld is de waarde 0, maar verander je de waarde naar bv -2000, dan gaat de batterij laden aan 2 KW of omgekeerd.

Om de sturing terug te geven aan de omvormer:

Code: Selecteer alles

// Stel de gewenste waarde in voor de modus van de vermogensregeling via communicatie
var desiredMode = [0, 803]; // Inactive

// Vorm het bericht voor het schrijven naar Modbus
var message = {
    payload: {
        value: desiredMode,
        unitid: 1,
        fc: 16, // Functiecode 16 voor het schrijven van meerdere registers
        address: 40151,
        quantity: 2 // Aantal registers om te schrijven
    }
};

// Stuur het bericht naar de uitgang van de functie node
return message;
Je kan deze basisprincipes gebruiken om andere registers te schrijven en zo je omvormer aan te sturen hoe je dit zelf wil en niet hoe anderen dit in jou plaats gaan doen en er dan een abonnement voor gaan aanrekenen. Even ter info: Ik heb geen ICT achtergrond en als dit mij lukt, kunnen velen anderen dit ook. Hopelijk krijgt het via deze weg wat navolging. Uiteraard doe ik dit op eigen risico en dit geldt voor ieder van ons. Je kan uiteraard je omvormer in de vernieling werken door verkeerde registers te schrijven, dus hou zeker in je achterhoofd dat je wel moet weten wat je doet, maar niets doen is altijd verloren. :wink:
Zoek dus zeker de modbusregisters van je specifieke omvormer op. Deze staan meestal online (SMA, GOODWE, Solax,...)
Nog een laatste gouden tip: Ik heb dit ook vooral klaargespeeld met ChatGPT als "partner in crime!" :angel:

Vanaf nu kan ik automatiseringen beginnen testen en verfijnen en is het "Off to the races!" :banana:

Ik zal deze posten na een succesvolle testperiode.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Hallo Allemaal,

Ik heb de hier gebode oplossing na gebouwd m.b.v. C# en FluentModbus.
Mijn omvormer is een SMA Tripower SE 6.0. met SMA Home Storage 9.8kWh

Code:

Code: Selecteer alles

using FluentModbus;

private ModbusTcpClient STP60SE = new();
this.STP60SE.Connect(IPAddress, ModbusEndianness.BigEndian);

uint[] active  = [802];             // Set communicatie actief (vul alleen de eerste entry in het array. dus vul maar 1 register van de modbus)  
this.STP60SE.WriteMultipleRegisters<uint>(3, 40151, active);    
int[] discharge = [-2000];     // Set Batterij ontladen met 2000watt (vul alleen de eerste entry in het array. dus maar 1 register van de modbus) 
this.STP60SE.WriteMultipleRegisters<int>(3, 40149, discharge);
De code wordt zonder foutmeldingen uitgevoerd alleen zonder enig resultaat.-:(

opm.)
Wel heb ik een Sunny-Home-Manager 2.0 in het PV systeem draaien. (kan het zijn dat deze h.e.e.a. overruled?)

Gaarne een recatie.
Laatst gewijzigd door Gijs Wassink 17 mei 2024, 21:14, in totaal 2 gewijzigd.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Gijs Wassink schreef: 17 mei 2024, 21:05

uint[] active = [802]; // Set communicatie actief (vul alleen de eerste entry in het array. dus vul maar 1 register van de modbus)

Gaarne een recatie.
Hey Gijs,

Ik heb ondertussen in mijn eigen systeem een aantal automatiseringen gemaakt en het werkt goed tot hiertoe.
Het feit dat je een home manager 2 in je systeem hebt, heeft er gelukkig geen impact op of overruled niets.
Ik heb die ook in mijn systeem hangen.

Ik kan me wel herinneren op het moment dat het bij mij pas werkte op moment dat ik het volledig register vulde.
Ik kreeg ook niet altijd foutmeldingen terug.
Probeer eens je register te vullen met [0, 802] ipv [802] om de controle te nemen
en daarna [0, 803] ipv [803] om de controle terug te geven aan je omvormer.

Als je dit bijvoorbeeld doet en je batterij is aan het laden, dan stopt deze met laden en gaat je zonneoverschot exporteren ipv langer naar je batterij te sturen. Zo zie je of het commando werkt of niet.
Als je daarna de controle terug geeft, zal je batterij terug laden ipv de overtollige zonnestroom exporteren naar het net.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Bedankt voor de (snelle) reactie.

Ok, fijn te horen dat het de SHM2 hier geen invloed op heeft.

Dat geeft de burger weer moed om verder te puzzelen. :-D

Ben toch al een paar maanden bezig heb inmiddels werkend.
1. Tibber dag prijzen/tarieven in lezen.
2. SHM2 de braudcast data ontvangen en verwerken.
3. De STP60SE modbus registers lezen.

Dus nu als laatste hobbel (hoop ik) de STP60SE modbus registers (40151 en 40149) kunnen schrijven.

Nog bedankt voor de postings hier dat heeft me weer een stuk verder geholpen.

Als ik de zaak werkend heb zal ik op dit Forum een verwijzig naar de broncode (C#) op Github achter laten.
Laatst gewijzigd door Gijs Wassink 18 mei 2024, 10:14, in totaal 1 gewijzigd.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Hallo Allemaal,

Na een paar dagen van alles geprobreerd hebbende krijg ik helaas het laden en ontladen van de SMA-Home-Storage 9.8 via het schrijven naar de modbus registers 40149 en 40151 niet werkend.

Wat heb ik zoal geprobeerd:
1. Diverse Nuget modbus libraries (4 stuks) geimplementeerd en getest. (schrijven van [802] of [0,802] naar 40151 getest)
2. Een Modbus Tool geinstalleerd op Windows en via WriteMultipleRegisters geprobeerd naar registers 40149 & 40151 te schrijven.

Nu is mijn vraag?
- Kan hier iemand bevestigen dat het laden & ontladen van een SMA-Home-Storage 9.8 via modbus registers 40149 en 40151 daad werkelijk werkt?
- Of heeft iemand nog Tips/suggesties die ik kan uitproberen.
- Heeft iemand een Link of een werkent Windows / Unix (raspberyPI) applicatie die ik kan uitproberen.

Opm)
Het lijkt mij sterk dat SMA verschillende modbus-registers toepast voor een SMA-Home-Storage 9.8 of een ander merk batterij op een en de zelfde type inverter.


- Update:
Heb inmidels gevonden dat het met de SMA-Home-Storage 9.8 ook moet werken(dus zijn het ook de registers 40149 en 40151 die gebruikt worden)
Dat het bij mij niet werk ligt waarschijnlijk aan de HM2 firmware versie 2.14.13.R die ik op 04-09-2024 heb ontvangen.
Ik heb inmiddels veel berichten gevonden dat na de HM2 firmware update (2.14.13.R) het laden/ontladen van de batterij via modbus niet meer werkte. hopelijk gaat SMA dit snel fixen
Laatst gewijzigd door Gijs Wassink 20 mei 2024, 20:06, in totaal 1 gewijzigd.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Gijs Wassink schreef: 20 mei 2024, 20:04
- Update:
Heb inmidels gevonden dat het met de SMA-Home-Storage 9.8 ook moet werken(dus zijn het ook de registers 40149 en 40151 die gebruikt worden)
Dat het bij mij niet werk ligt waarschijnlijk aan de HM2 firmware versie 2.14.13.R die ik op 04-09-2024 heb ontvangen.
Ik heb inmiddels veel berichten gevonden dat na de HM2 firmware update (2.14.13.R) het laden/ontladen van de batterij via modbus niet meer werkte. hopelijk gaat SMA dit snel fixen
Ik vrees dat het inderdaad klopt. Ik heb ondertussen gemerkt dat ik die update ook heb gehad. Mijn sturingen werken ook niet meer. :bang:
Ik heb wel gemerkt dat als de UTP kabel van de home manager uit trekt, je wel terug kan sturen. Gezien eigenlijk alles hier via home assistent hier aangestuurd wordt, ga ik de Home manager unplugged laten, maar zal wel mijn sturingen eerst moeten aanpassen.

Mijn sturingen waren eigenlijk meer het bijsturen van de sturing van home manager. Nu zal ik het moeten aanpassen dat het een volledige sturing moet worden. Nog wat werk op de plank dus.

Probeer ook eens de cat kabel van je home manager uit te trekken en kijk dan eens of je sturing werkt?
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Ondertussen is sinds twee dagen alles terug up and running. :beerchug: Basis sturing toegevoegd in Node red en alles van eigen sturingen werken terug. Jammer genoeg is de Home manager twee nutteloos geworden en gedeconnecteerd.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

De afgelopen 3 weken weer wat wijzer geworden:

Kan nu inmiddels via de Modbus interface registers (40151 en 40149) van de SHM2 het batterij "laden/ontladen" aansturen. :banana:
We laten dus in dit geval de SHM2 de registers (40151 en 40149) van de STP-SE inverter beheren zoals door SMA in de laatste firmware 2.14.13.R is geprogrammeerd.

In dit senario blijft de SHM2 dus in grootte lijn functioneel:
- Basic aansturing blijft intakt. (ook als men meerdere inverters in de plant heeft)
- Sunny portal data (grafieken) blijven intakt.
- Aan sturen van devices blijft intakt.
- etc...


LETOP:
Wel zijn de registers 40151 en 40149 van de SHM2 pas benaderbaar/schrijfbaar als in het register 43090 van de SHM2 de Grid-Guard-Codein is geschreven.
(wel eerst op de Sunnyportal de Modbus interface van de SHM2 voor remote gebruik activeren)

Opm.)
De GGC is op de myservie stite van SMA op te vragen. (ik mag nog geen links plaatsen helaas)
Wel moet ik nog testen of dit allemaal stabiel blijft werken.

Update
Opzich is het mogelijk via de SHM2 modbus de SMA 9.8 home storage te laden en te ontladen maar ik ben bang dat de SHM2 firmware 2.14.13.R nog niet volledig goed werkt.

Bevindingen:
- Bij het ontladen van de batterij geeft de SMA Energy App in het hoofd scherm de juiste waardes aan maar de nornaal getoonde pijlen (die de flow richtingen aangeven) ontbreken volledig.
- Na verloop van tijd +/- een uur gaat de STP-SE inverter plaat en moet volledig opnieuw gestart worden. :bang:
- Na de STP-SE opnieuw opgestart te hebben ging de batterij zich snachts om 2.0 uur met 2000Watt spontaan ontladen naar 0% SOC. :eek:

Conclusie:
Door het aansturen van de SHM2 via modbus wordt het hele systeem compleet instabiel en crashed uiteindelijk.
Helaas wordt het wachten op SMA om aan derde partijen (eind klanten) een stabiele modbus interface aan te bieden om de Batterij remote aan te besturen.

Opm.)
SMA kennende kan dit nog wel even duren. (als het ooit komt!!!)
Laatst gewijzigd door Gijs Wassink 18 jun 2024, 09:34, in totaal 5 gewijzigd.
Siebe-Eniris
Starter
Starter
Berichten: 1
Lid geworden op: 02 jul 2024, 07:31

Bericht

conda schreef: 14 jun 2024, 04:28 Ondertussen is sinds twee dagen alles terug up and running. :beerchug: Basis sturing toegevoegd in Node red en alles van eigen sturingen werken terug. Jammer genoeg is de Home manager twee nutteloos geworden en gedeconnecteerd.
Hallo,

Het is mij gisteren even gelukt om de batterij aan te sturen met deze registers maar plots wou ze niet meer reageren hierop. Is er iets van timeout of iets anders waar dit aan zou kunnen liggen?
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Even een update:

Inmiddels heeft Bart van Remortel (SMA Solution Manager) op de SMA Facebook page op (03-07-2024) de onderstaande laten weten.

Dus er wordt aan een oplossing gewerkt. :-D

================= SMA Facebook page ==============
Bart van Remortel
Admin
· ·
Dear all,
in the last Sunny Home Manager 2.14.13.R firmware the way how the battery is controlled has changed. As a result, the external control commands via Modbus are not handled like it should. Please find the official communication below for more information.
As being stated in the letter, this was not our intend as we want to offer the best Energy Management for our customers but also want to be open to other solutions and platforms on the market. We are working hard on finding a solution.
From the 11th of July we would like to start a field-test with new firmware that should solve this issue.
We would be happy to involve those Sunny Home Manager user that are actively using the Modbus interface. Therefore we want to ask if you are interested to participate in our fieldtest.
If you are willing to participate and help in testing the new firmware, please send an e-mail to ... including the following information:
- Your name
- e-mail address
- Phone number
- MAC address of the Sunny Home Manager
- Serial Number of the Sunny Home Manager
More information will follow via e-mail.
Thanks and apologies for the inconvenience
Best regards,
Bart
-------------------------------------------------------------------


Dear valued Customer,
SMA’s products are manufactured to a very high standard of quality and firmware (FW) updates undergo com[1]prehensive validation and testing before they are rolled out. Nevertheless, irregularities may occur in rare cases.
From March to May 2024, we began rolling out the new Sunny Home Manager (SHM) firmware version 2.14.13.R. This update includes several functional extensions and technical improvements. However, we've identified an unforeseen use case where Modbus commands for controlling the battery (charge or discharge) are not processed as before. This affects customers using third-party energy management systems to control their battery.
Impacted are customer which have the combination of the following three setups:
1. Customers with Sunny Home Manager firmware version 2.14.13.R.
2. Further customers who have a storage solution including a connected battery, with a SB-SE 3.6/4.0/5.0/6.0, STP-SE 5.0/6.0/8.0/10.0, SBS 2.5 or SBS 3.7/5.0/6.0.
3. Further these customers are using the Modbus interface to control their battery with third-party software (e.g. EVCC, IOBroker, or LifePowr).
Note: Customers using an energy meter in combination with a storage solution are NOT affected.
With the update the batterie-handling has changed from “internal-handling“ by the inverter to “external-han[1]dling” by the SHM. We have optimized the “external handling” of batteries, especially for future required functionalities (e.g. dynamic tariffs). As a result, the SHM are given higher priority, leading to Modbus signals from third-party energy management systems not being processed and henceforth ignored.

We are actively working on a solution in alignment with compliance. SMA apologizes for any inconvenience this may have caused and appreciates your understanding as we work to resolve this issue. SMA has no intention to rule out third-party solutions in the future.
If you have any questions or need further assistance, please do not hesitate to contact us.
Yours sincerely,
SMA Solar Technology AG
i. V. Bart van Remortel
Solution Manager
SMA Energy Management
i. A. Nils Knorr
Customer Quality Manager
Quality & Validation
Laatst gewijzigd door Gijs Wassink 06 jul 2024, 15:28, in totaal 2 gewijzigd.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Siebe-Eniris schreef: 02 jul 2024, 07:34
conda schreef: 14 jun 2024, 04:28 Ondertussen is sinds twee dagen alles terug up and running. :beerchug: Basis sturing toegevoegd in Node red en alles van eigen sturingen werken terug. Jammer genoeg is de Home manager twee nutteloos geworden en gedeconnecteerd.
Hallo,

Het is mij gisteren even gelukt om de batterij aan te sturen met deze registers maar plots wou ze niet meer reageren hierop. Is er iets van timeout of iets anders waar dit aan zou kunnen liggen?
Als de home manager niet is verbonden via utp, dan zou je moeten kunnen sturen via modbus. Zolang de firmware update niet gefixt is, dan zal je eigen modbus commmando overschreven worden als je home manager wel verbonden is. Op moment dat alles terug normaal werkt en je omvormer zelf zijn basissturing doet, moet je het commando eerst overnemen via register 40151. Zolang het issue niet is opgelost, laat ik de Flexbox de sturing doen, gezien die ondertussen actief is op de onbalansmarkt. Ik kan zo de twee situaties vergelijken en eind volgend jaar de knoop doorhakken of ik verder ga met die flexbox of niet (ben nog abovrij tot dan). In ieder geval kan ik mijn eigen sturing draaien en kan ik verder, met of zonder flexbox of home manager. De keuzevrijheid is niet onbelangrijk vind ik.

Toegevoegd na 1 minuut 43 seconden:
Gijs Wassink schreef: 06 jul 2024, 15:25 Even een update:

Inmiddels heeft Bart van Remortel (SMA Solution Manager) op de SMA Facebook page op (03-07-2024) de onderstaande laten weten.

Dus er wordt aan een oplossing gewerkt. :-D

================= SMA Facebook page ==============
Bart van Remortel
Admin
· ·
Bedankt om dit even te posten. Nu weet ik zelf ook wat meer. Ik had dus een case geopend bij SMA support, maar kreeg enkel antwoorden naast de kwestie en dergelijke. Dit is het eerste degelijke antwoord dat ik lees betreft wat gaande is met SMA. :-D
liegebeestig
Elite Poster
Elite Poster
Berichten: 2341
Lid geworden op: 01 jun 2006, 13:16
Uitgedeelde bedankjes: 38 keer
Bedankt: 56 keer

Bericht

Waw, dit topic is echt goed geworden na mijn aanzet om het active power setpoint aan te passen. Mag ik even een basic vraag stellen... Hoe kun je de shm2.0 uitlezen en zelfs modbus sturen? Dat is me nog niet gelukt in Home Assistant.

Verstuurd vanaf mijn VOG-L29 met Tapatalk

Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

liegebeestig schreef: 08 jul 2024, 07:17 Waw, dit topic is echt goed geworden na mijn aanzet om het active power setpoint aan te passen. Mag ik even een basic vraag stellen... Hoe kun je de shm2.0 uitlezen en zelfs modbus sturen? Dat is me nog niet gelukt in Home Assistant.

Verstuurd vanaf mijn VOG-L29 met Tapatalk
Het heeft zeker wel wat in gang gezet. :-D
Het is zeker en vast een proces van voortschrijdend inzicht. Ik leer nog steeds bij en van anderen ook.

De data uitlezen is vooral via de SMA integratie in Home assistant. Die haalt de meeste data binnen.
Je kan eigenlijk al die data ook via modbus uitlezen, maar dat is een groter werkje om dat op te zetten en er is geen reden om dat via die weg te doen, tenzij je geen integratie hebt van je omvormer. SMA heeft wel een goede integratie.

Ik maak gebruik van Node Red binnen Home Assistant om de de modbus registers aan te sturen.
De magie gebeurt in de functienode eigenlijk. De modbuswrite node instellen is niet veel meer dan het ip instellen en de poort waarlangs de omvormer communiceert over TCP/IP. De onderstaande foto is een vereenvoudigde vorm, waarmee je kan testen of je controle kan overnemen of niet.

Je kan de functienodes integreren in automatiseringen en op die manier je eigen sturing laten lopen.

De volgende automatiseringen heb ik lopende.

- De basissturing (zonder SHM 2) ofwel sturing door flexbox;
- Zero export bij negatieve prijs met opwek gelijk aan huisverbruik als de batterij vol is;
- Verkoop van een deel overtollige energie als de export prijs bv boven een bepaald bedrag is;
- opladen van batterij aan het net in de winter als de prijs onder een bepaald bedrag gaat(nog te testen).

Ik zal morgen een print screen posten van hoe het dashboard eruit ziet momenteel.

Toegevoegd na 11 uren 22 minuten 31 seconden:
In het rode kader hieronder, zitten achter de knoppen de verschillende automatiseringen.
Maar zoals eerder vermeld is momenteel de flexbox terug aan het roer momenteel, omdat ik wil evalueren wat de impact is van die onbalansmarkt waar zij toegang toe hebben.
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
liegebeestig
Elite Poster
Elite Poster
Berichten: 2341
Lid geworden op: 01 jun 2006, 13:16
Uitgedeelde bedankjes: 38 keer
Bedankt: 56 keer

Bericht

Mooi, een knopje zero export, kopen of verkopen wil ik ook wel. Handmatig of in automatiseringen. Bij automatiseringen zou je kunnen verkopen als batterij vol zit en de dag erna goed weer zal zijn, zoiets.

Maar zero export, dus enkel opwekken wat nodig, hoe regel je dat, doe je dat op basis van het totale verbruik dat je uit leest in ha? Of geef je dat in met een percentage?
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

liegebeestig schreef: 10 jul 2024, 06:57 Mooi, een knopje zero export, kopen of verkopen wil ik ook wel. Handmatig of in automatiseringen. Bij automatiseringen zou je kunnen verkopen als batterij vol zit en de dag erna goed weer zal zijn, zoiets.

Maar zero export, dus enkel opwekken wat nodig, hoe regel je dat, doe je dat op basis van het totale verbruik dat je uit leest in ha? Of geef je dat in met een percentage?
Hoe je het beschrijft is inderdaad hoe het grotendeels is opgezet. :P

Zero export, allow to charge en allow to sell zijn eigenlijk digitale helpers, die een automatisering onderbreken of niet.

Zero Export schiet aan bij negatieve export prijzen er dan gaat hij automatisch eerst de opwek limiteren tot max 6 kW of met andere woorden zet hij de active power limit slider op 75%. Waarom juist? Omdat hij dan mijn batterij max aan 6 kW nog kan opladen en dus niet meer gaat exporteren. Op moment dat de batterij vol is, dan schakelt hij over naar "dynamic load balancing" en klikt dat op aan. Dit gebeurt als de batterij vol is en het gevolg is dat de zonnepanelen enkel nog de hoeveelheid opwekken die nodig zijn om het verbruik in huis te dekken. Hij past dus de active power limit slider elke 10 seconden aan. Op moment dat de exportprijzen terug positief zijn, dan kunnen de zonnepanelen terug op vol vermogen produceren.

Allow to charge is een automatisering dat als deze aanstaat, dan gaat hij pas vanaf 11u de batterij beginnen opladen en alles wat teveel is gaan exporteren.
Je kan het uur aanpassen naar een later tijdstip indien gewenst.
Dit omdat bij dynamische prijzen je best je batterij pas gaat laden als de waarde van de stroom het kleinst is.
Dit zou ik nog verder kunnen verfijnen op basis van de voorspelde opwek.

Allow to sell is een automatisering met een serie aan voorwaarden die hij eerst checkt.
- de minimum export prijs moet eerst behaalt zijn:
- de SOC van de batterij is hoger dan 10%;
- de voospelling vandaag is hoger dan 20 kW;
- de spot rank is hoger of gelijk aan 20, dwz dat hij enkel kan verkopen op de 4 duurste uren van de dag.

Ik heb het opgezet dat hij dit 's morgens voor vandaag checkt en 's avonds voor morgen. 's avonds gaat hij dan enkel alles boven de SOC van 70% verkopen als de voorspelling de dag nadien groter is dan 20 kW.
De instellingen kan je naar hartelust aanpassen.

De grap is eigenlijk dat ik geen letter kan programmeren. Ik zou mezelf wel "tech savy" noemen en ben graag bezig met dit soort dingen, maar vraag me niet om scriptjes te schrijven. :lol:

Wat ik hier eigenlijk mee wil aantonen is dat je je niet moet afvragen "Kan ik dit?", maar wel "Hoe kan ik dit?"
Home assistant, Node red, chatGPT en de wil om het uit te werken. Sommige delen van mijn sturing zijn ook gebaseerd op wat anderen hebben gedaan en online hebben gezet. Ik wil ook gerust mijn automatisering delen, zodat andere ze kunnen gebruiken en verfijnen.

Alleen heeft SMA met hun laatste firmware update stokken in de wielen gestoken. Op dit moment van schrijven werken deze automatiseringen wel, maar enkel als je een basis sturing toevoegd, want nu werkt het enkel zonder SHM 2, omdat deze de modbussturing overschrijft sinds de laatste firmware update.
De basis aansturing heb ik ook toegevoegd aan mijn sturing, dus ik kan verder zonder SHM 2.

Ook de flexbox werkt momenteel enkel zonder de SHM 2.
SMA gaat het dus fixen klaarblijkelijk.

Ik kan nog die Flexbox gebruiken tot eind 2025 zonder abonnement en laat deze nu draaien tot eind 2024. Op dat moment heb ik voldoende data om een inschatting te maken wat het meest interessant is. Een eigen sturing of de Flexbox van een andere firma met abonnement. Mij gaat het voornamelijk over de keuzes.
Ik wil niet afhankelijk zijn van een firma, dat daarna gaat beslissen om je abo te verhogen elk jaar.
Vandaar heb ik mijn keuzemogelijkheid gecreëerd voor mezelf.
In principe kan je dit doen met elke omvormer dat in staat is om aangestuurd te worden via modbus. Dat zijn er wel wat, ook wat oudere omvormers.
Al moet je dan de sturing aanpassen aan de registers van dat type omvormer.
Die documentatie staat meestal gewoon online.

Ik heb wel wat geluk dat mijn omvormer een register heeft om de opwek van mijn panelen in te stellen om met andere woorden de export te beïnvloeden.
In het menu van Sunny Portal is dit enkel statisch in te geven, maar via modbus kan ik het wel flexibel aansturen.
Dat geeft veel mogelijkheden voor de toekomst.

In de hele energietransitie geloof ik wel dat dynamische prijzen meer en meer een rol zullen gaan spelen als incentive om het net te stabiliseren.
Zelf invloed hebben op je eigen opwek, import en export van energie is erg handig bij uur na uur veranderende omstandigheden (lees=energieprijzen).

Of dat mijn setup nu de beste is op dit moment laat ik in het midden. Wat ik enkel wil aantonen is dat door je flexibel op te stellen, je makkelijk kan aanpassen.
Nu mag de overheid beginnen morrelen wat ze wil. Ik kan me aanpassen.
In plaats van elkaar af te troeven in ettelijke discussies, zouden we best focussen op hoe elkaar te helpen.
Nu ga ik afsluiten alvorens het moraliserend wordt. :lol:

In bijlage heb ik de node red automatiseringen toegevoegd, die momenteel getest zijn en enkele maanden hebben gedraaid.
nota: De basic battery management is niet nodig op moment dat SMA zijn firmware heeft gefixt en je SHM opnieuw kan gebruiken.
Er moeten dan wel een aantal aanpassingen gebeuren in de andere automatiseringen om controle te nemen over de omvormer.
Zoals al eerder gezegd zijn deze mometeel disabled en daarom in stippellijn omringd, omdat momenteel de flexbox draait.
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Hi,

Heb me aangemeld als Fieldtester en heb de onderstaande SHM2 (nieuwe) Release Notes van SMA ontvangen:

Release Notes
• Support of Shelly products (EM+120a, Plus 2PM, Plug Black)
• Support of Shelly products (Plus 1 Mini, Plus 1PM Mini)
• Support of Shelly products (Heating thermostat)
• Support of Shelly products (Lamps)
• Support of Shelly products (Pro EM - 50)
• Support of Shelly products (Plus PM Mini + Minis Gen 3
• Support of forecast based batter charging for overdimensioned (DC power > AC power) PV systems with one hybrid inverter
Restoration of the battery control function via Modbus of subordinated inverter

Het laatste bullet point geeft aan dat de Batterij aansturing via de Inverter (STPx-SE) modbus weer als van ouds moet werken.

Als ik de nieuwe Firmware binnen heb (hopelijk een dezer dagen) ga ik het uiteraard testen.
Hopelijk duurt het niet lang meer en kan iedereen over deze nieuwe Firmware beschikken.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Yep,

Merci om te laten weten. Hopelijk komt het nu snel in orde, maar het ziet er alvast goed uit.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Hi,

Heb af gelopen dagen wat met de nieuwe SHM2 firmware versie (2.15.4) kunnen experimenteren:

Het modbus register paar 40149(set power) en 40151(set control) werken nu zoals verwacht. :banana:

Vraagje:
Voor dat ik nu weer het wiel ga uitvinden zou ik graag nog wat meer gedetailerde info krijgen m.b.t. Zero-Export?
1. Wat is de relatie met modbus register 40151(set control)?
2. Ik begrijp dat modbus register 41255(Normalized Active Power Limitation) wordt gebruikt.
- Wat is de eenheid van dit register? (is het een percentage?)
- Wat is de te schijven waarde om Zero-Export te te activeren?
- Hoe kun je Zero-Export weer deactiveren?

Opm)
De NodeRed info op dit forum is al zeer help vol, maar om een hoop werk/tijd uit te sparen graag wat meer detail.
Bij voorbaat dank.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Ik ben opgelucht te horen dat het terug werkt met de update van de firmware. :beerchug:
Het is altijd beter dat SMA zelf 3th party aantsturing ondersteunt, dan dat je met truukjes moet werken om alles naar je hand te kunnen zetten.

Om even de relatie met modbus register 40151 (take or release control) te schetsen:
Je hebt momenteel 2 verschillende situaties:

Situatie 1: (Is mijn situatie momenteel)

Op dit moment gebruik ik omwille van het debacle met de firmware SHM niet en is deze unplugged. Dat maakt dat er geen sturing meer is. De zonnepanelen wekken stroom en het teveel zal worden geëxporteerd. Meer dan dat zal er niet gebeuren. De screenshots uit de vorige post zijn betreffende deze situatie. Gezien er geen sturing van je omvormer (SMA) zelf is, heb je in deze situatie het register 40151 niet nodig.
Je hebt wel het stuk "basic battery management" nodig, dat de basis sturing van de omvormer doet.
De BBM gaat simpelweg het teveel aan opgewekte stroom naar je batterij sturen. Vandaar PVgen - house consumption en die waarde stuurt hij naar de batterij, zodat die gaat opladen aan het teveel opgewekte of het omgekeerde bij ontladen omwille van teweinig stroom. Dit gaat hij elke seconde berekenen en aanpassen.

Situatie 2: (Is jouw situatie)

Op moment dat de firmware update terug toelaat dat je zelf kunt sturen via modbus en dat de SHM dit niet meer gaat overschrijven.
In deze situatie heb je het stuk "basic battery management" niet nodig, want deze sturing doet je omvormer zelf.
Maar hier komt 40151 om de hoek kijken. Als jij je omvormer wil bijsturen, omdat deze zijn eigen sturing doet, dan heb je 40151 nodig om te zeggen dat jij de controle even overneemt. Je moet dus telkens je iets wil aanpassen eerst [0,802] sturen naar de omvormer in het register 40151, anders zal de omvormer gewoon zijn ding blijven doen en kan je niets bijsturen. Eigenlijk zeg je gewoon tegen de omvormer dat jij het stuur wil overnemen. Je zal zien dat hij dan stopt met doen wat hij doet en enkel het teveel gaat exporteren bijvoorbeeld of elektriciteit van het net halen bij tekort en niet uit je batterij. Ik had dit dus ook ingebouwd zitten in de flows dat ik gepost heb op moment dat de firmware nog niet FU was, omdat normaal gezien de omvormer zelf de sturing doet en jij deze gewoon over wil nemen bij momenten. Door [0,803] te injecteren laat je de omvormer weten dat hij terug moet sturen.

Samengevat: Die 40151 zal ik terug moeten inbouwen in mijn flows. :cry: Op zich niet zo moeilijk, maar ik zal ook heel de boel terug moeten aanpassen. Het had het opgevat, dat alvorens je iets stuurt naar het modbusregister van het active setpoint, je eerst 802 stuurde naar 40151 en in een loop 3 seconde later wat je daadwerkelijk wil dat de batterij doet (laden/ontladen). Dat zal ik dus opnieuw moeten gaan aanpassen, gezien ik dat niet bewaard heb. :lol:


Modbus register 41255(Normalized Active Power Limitation)
- Wat is de eenheid van dit register? (is het een percentage?)
Ja en nee :angel: Ik zal het even verduidelijken, want ik moet ook toegeven dat ik dit heb moeten uitvissen door wat andere op het net gedaan hebben te bestuderen.
41255 accepeert een waarde tussen 0 en 10000, waarbij 0 ook nul is en 10000 is de maximale waarde dat je omvormer kan opwekken.
Je moet dit dus aanpassen aan de sterkte van je omvormer. Ik heb een omvormer van 8 kilowattpiek, dus die 10000 representeert in mijn geval 8000W.
Indien je een omvormer van 5 kilowattpiek hebt, dan is die 10000 gelijk aan 5000 W.

Een slider van 0 tot en met 100 is een handig middel om deze waarde in te stellen. Vandaar de ja en nee. Je kan een slider wel gebruiken om het snel om te rekenen.

In mijn geval: Als de slider op 20% staat, dan stuurt hij de waarde 20X100= 2000 naar het register 41255.
Gezien ik 8 kilowattpiek omvormer heb is dit gelijk aan20X80= 1600 W.
Moest ik een 5 kilowattpiek omvormer hebben, dan is dit 20x100=2000, maar dan gaat dit in de praktijk 20x50= 1000 W zijn.
Je moet dus de waarde van maal 80 in mijn voorbeeld aanpassen naar de sterkte van je eigen omvormer.

Ik weet niet of dit helder is of ik het ingewikkelder heb gemaakt met deze uitleg. :-D


- Wat is de te schijven waarde om Zero-Export te te activeren?

Een waarde tussen 0 en 10000 limiteert wat de omvormer maximaal kan opwekken in het register 41255.
In de flow gaat hij enkel de "active power limit" slider aanpassen.
Ik heb een digitale helper of digitale switch aangemaakt, enkel en alleen om op mijn dashboard zichtbaar te krijgen dat hij de opwek aan het limiteren is op moment dat de exportprijs negatief is. Bij negatieve prijs zet hij de slider op 75%. In mijn geval beperk ik de opwek tot 6000W, omdat mijn batterij max aan 6000 W oplaadt. Op moment dat de batterij vol is, dan gaat hij een andere digitale helper aan schakelen (DAC), waardoor die flow de dezelfde slider elke 10 seconden gaat aanpassen aan het verbruikt van het huis. Op die manier limiteert hij dynamisch de opwek van je vermogen aangepast aan het verbruik van het huis.

De switches op het dashboard zijn enkel digitale helpers om een flow te onderbreken en die waarde is dus "on" of "off".
2024-07-18 06_43_11-Node-RED – Home Assistant.png

- Hoe kun je Zero-Export weer deactiveren?
deactiveren.png
Als de exportprijs niet negatief is, dan gaat hij de slider gewoon terug op 100 zetten.
turn off zero export.png
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Laatst gewijzigd door philippe_d 18 jul 2024, 07:34, in totaal 1 gewijzigd.
Reden: fullquote verwijderd
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Heel erg bedankt voor de extra uitleg/info.

Wat ik nog niet goed begrijp op welke manier je aan het huis verbruik komt?
- Je haald het niet uit de SHM2.0 want daar heb je de UTP kabel van unplugged.

Verder denk ik dat mijn situatie wat complexer is ik heb namelijk in totaal drie Inverters.
1 x STP6.0SE
1 x SB3600TL
1 x SB2.4

Wel ben ik weer wat wijzer/grijzer geworden en ga hopelijk beetje bij beetje vooruit.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

Goed dat je het vraagt ivm house consumption, want die had ik over het hoofd gezien.
Je kan deze niet rechtstreeks uit home assistant halen. In het energy dashboard is dit ook een formule dat berekent wordt op basis van de overige sensoren.
Eerst had ik het huisverbruik geknutseld in node red, maar omdat ik deze in andere automatiseringen ook kon gebruiken en het handiger was om dit in te bakken in home assistant, heb ik in yaml een sensor aangemaakt.
(Jij zal de pvpower van je drie omvormers moeten bij elkaar tellen)

house_consumption:
unique_id: house_consumption
friendly_name: "House Consumption"
unit_of_measurement: "W"
value_template: "{{ states('sensor.sn_3012415982_pv_power') | float + states('sensor.dsmr_reading_electricity_currently_delivered') | float + states('sensor.sn_3012415982_battery_power_discharge_total') | float - states('sensor.dsmr_reading_electricity_currently_returned') | float - states('sensor.sn_3012415982_battery_power_charge_total') | float }}"

Voor de basic battery management de volgende sensor: (niet meer nodig als SHM terug werkt zoals ervoor)
Die berekent dan wat er in of uit de batterij moet komen. Het is verbazend hoe eenvoudig eigenlijk een basis omvormer werkt heb ik hieruit geleerd.
Het teveel duwt die in je batterij tot die vol is of het tekort haalt hij eruit tot die leeg is. :-D

houseconsumption_minus_pvgen:
unique_id: houseconsumption_minus_pvgen
friendly_name: "houseconsumption_minus_pvgen"
unit_of_measurement: "W"
value_template: "{{ (states('sensor.house_consumption') | float(default=0) - states('sensor.sn_3012415982_pv_power') | float(default=0)) }}"


Je huisconsumptie kan je dus ook in node red creëren. Hier is de JSON daarvoor. Je kan onderstaande code importeren in node red en dan heb je ineens de hele flow.
Je moet natuurlijk enkel nog de sensoren aanpassen naar je eigen configuratie.

[{"id":"ad2ad2f736de8587","type":"poll-state","z":"5a124eb91e71f3cd","name":"PV gen","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.sn_3012415982_pv_power","stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"parts","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":400,"wires":[["1da26659a9b39e60"]]},{"id":"4c772077d93d34bc","type":"poll-state","z":"5a124eb91e71f3cd","name":"Import grid power","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.dsmr_reading_electricity_currently_delivered","stateType":"num","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":180,"y":460,"wires":[["1da26659a9b39e60"]]},{"id":"1da26659a9b39e60","type":"join","z":"5a124eb91e71f3cd","name":"Join","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"payload","joiner":"\\n","joinerType":"str","useparts":true,"accumulate":false,"timeout":"","count":"5","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":390,"y":500,"wires":[["655710ee4981043f"]]},{"id":"d2f97575c13463c6","type":"poll-state","z":"5a124eb91e71f3cd","name":"Batt charge","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.sn_3012415982_battery_power_charge_total","stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"parts","propertyType":"msg","value":"","valueType":"triggerId"}],"x":170,"y":580,"wires":[["5145012123e8afa9"]]},{"id":"eaf0529d6c460b18","type":"poll-state","z":"5a124eb91e71f3cd","name":"export grid power","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.dsmr_reading_electricity_currently_returned","stateType":"num","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":180,"y":640,"wires":[["5145012123e8afa9"]]},{"id":"655710ee4981043f","type":"calculator","z":"5a124eb91e71f3cd","name":"sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"truncate":false,"decimals":0,"decimals2":0,"x":410,"y":440,"wires":[["2324c7bd56894c74"]]},{"id":"5145012123e8afa9","type":"function","z":"5a124eb91e71f3cd","name":"convert + into -","func":"// Assuming msg.payload holds the positive value you want to convert\nmsg.payload = -Math.abs(msg.payload);\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":600,"wires":[["1da26659a9b39e60"]]},{"id":"b0ba746f7e7dce2d","type":"poll-state","z":"5a124eb91e71f3cd","name":"Batt discharge","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.sn_3012415982_battery_power_discharge_total","stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"parts","propertyType":"msg","value":"","valueType":"triggerId"}],"x":170,"y":520,"wires":[["1da26659a9b39e60"]]},{"id":"2324c7bd56894c74","type":"debug","z":"5a124eb91e71f3cd","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":720,"y":480,"wires":[]},{"id":"82e28109.c824c","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Dat komt er dan zo uit te zien:
2024-07-19 09_16_21-Node-RED – Home Assistant.png
Je hebt dus wat verschillende opties afhankelijk van welke weg je prefereert. :P
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Jeroen_sma
Starter
Starter
Berichten: 2
Lid geworden op: 19 jul 2024, 21:02
Uitgedeelde bedankjes: 1 keer

Bericht

@Gijs Wassink : waar kan ik ergens de SMA HM firmware 2.15.4 downloaden? Ik loop tegen het issue aan dat ik “vroeger” het laden op “0” kon zetten op zodat mijn SMA STP SE gaat terug leveren ipv de accu laden. Dat werkt dus nu niet meer en de SMA support desk kan geen antwoord geven (of weet het niet).

Verder zoek ik het Modbus register waar je de actuele PV productie AC zijdig kunt vinden. Modbus register 30775 toont de waarde incl accu ontlading / accu lading, dus feitelijk de som van: PV productie (AC) + accu ontlading - accu lading. Ik zou dus alleen de PV AC productie willen uitlezen.
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

@ Gijs:

Ik heb mezelf ondertussen aangemeld als tester bij SMA voor de nieuwe firmware en de bevestiging gekregen dat ze me nog hebben toegevoegd aan de lijst.
Hoe heb jij de nieuwe firmware ontvangen? Is die update automatisch gebeurd?
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Hi,


1. De SHM2.0 firmware 2.15.4 heb ik automatisch gekregen (gaat via het MAC adres van de SHM) na dat ik me via de SMA facebook page als fieldtester heb opgegeven.
als je de update hebt ontvangen dan moet je nog wel op de SunnyPortal via configuration: devices SHM / properties dan edit --> Restart? activeren.

2. Volgen mij is modbus register 30775 de enige mogelijkheid. (dus zo als je aangeeft zelf de accu lading/ontladen corrigeren)



opm)

Conda:
Zero export met modbus register 41255 instellen kan maar ik denk dat register 40016 wat handiger werkt (hier is het bereik gewoon (0% tot 100%) wel is de resolutie dan wat minder)
Boven dien wordt register 40016 op alle mijn Inverters ondersteund. (41255 alleen op de STP6.0SE)
JUD
Plus Member
Plus Member
Berichten: 111
Lid geworden op: 10 sep 2013, 14:06
Uitgedeelde bedankjes: 10 keer
Bedankt: 7 keer

Bericht

Hebben jullie geen schrik voor cyclisch schrijven naar deze registers? Ik zie in de documentatie een waarschuwing maar geen exacte details over hoeveel writes het register aan kan.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Kan U mij een pointer geven naar de documentatie waar bescheven staat: dat de modbus registers 40016 & 41255 cyclische schrijf beperkingen hebben want als dat zo is zijn deze registers onbruikbaar voor deze toepassing.


opm.)
Volgens de documentatie die ik raadpleeg hebben de modbus registers 40016 & 41255 GEEN cyclische schrijf beperkingen.
JUD
Plus Member
Plus Member
Berichten: 111
Lid geworden op: 10 sep 2013, 14:06
Uitgedeelde bedankjes: 10 keer
Bedankt: 7 keer

Bericht

Gijs Wassink schreef: 22 jul 2024, 08:36 Kan U mij een pointer geven naar de documentatie waar bescheven staat: dat de modbus registers 40016 & 41255 cyclische schrijf beperkingen hebben want als dat zo is zijn deze registers onbruikbaar voor deze toepassing.


opm.)
Volgens de documentatie die ik raadpleeg hebben de modbus registers 40016 & 41255 GEEN cyclische schrijf beperkingen.
Oke ik had per ongeluk volgende pdf onder ogen gekregen: https://files.sma.de/downloads/ClusterC ... -en-18.pdf sectie 2.3

In deze pdf staat het inderdaad duidelijk beschreven dat 41255 geen probleem is om cyclisch naar te schrijven. Maar voor register 40016 zie ik geen naam precies (in de zip met gedetailleerde register info)? Maar in de zip file staat inderdaad geen warning opgepast voor cyclisch schrijven.

Ik ben dus van plan mogelijks een SUNNY TRIPOWER 10.0 hybride omvormer aan te kopen maar zou dan inderdaad graag de batterij/pv opwek via modbus (of ander) kunnen sturen. Maar als ik het goed begrijp is het dus enkel mogelijk het vermogen dat de PV opwekken dynamisch toe te gaan knijpen via modbus? De batterij gaan op/ont-laden is niet te sturen op een manier waarbij je een veilig register gebruikt?

Toegevoegd na 19 uren 10 minuten 58 seconden:
Ik heb nog even wat verder onderzoek gedaan en ben een emeter emulator voor SMA tegen gekomen.
https://github.com/Roeland54/SMA-Energy ... ma/DOCS.md

Ik heb zelf geen toegang tot een SMA omvormer maar dit zou dus betekenen dat het perfect mogelijk is een SMA Sunny Tri Power hybride omvormer te installeren en te linken aan een geëmuleerde energy meter. Door fake waardes te sturen zou het dan mogelijk moeten kunnen zijn om de batterij te triggeren om te laden / ontladen? Kan iemand van jullie bevestigen dat in de instellingen dus gewoon een IP adres van een meter te configureren is of hoe werkt dit?

In het overzicht met modbus zie ik geen register om de batterij soc uit te lezen? In home assistant integraties zag ik dat SMA webconnect protocol gebruikt werd. Iemand van jullie daar ervaring mee? Het lijken gewoon http calls te zijn en hier zou precies well de batterij soc mee uit te lezen moeten zijn?
Roeland540
Starter
Starter
Berichten: 2
Lid geworden op: 24 jul 2024, 10:21
Uitgedeelde bedankjes: 1 keer

Bericht

JUD schreef: 23 jul 2024, 09:58
Ik heb nog even wat verder onderzoek gedaan en ben een emeter emulator voor SMA tegen gekomen.

Ik heb zelf geen toegang tot een SMA omvormer maar dit zou dus betekenen dat het perfect mogelijk is een SMA Sunny Tri Power hybride omvormer te installeren en te linken aan een geëmuleerde energy meter. Door fake waardes te sturen zou het dan mogelijk moeten kunnen zijn om de batterij te triggeren om te laden / ontladen? Kan iemand van jullie bevestigen dat in de instellingen dus gewoon een IP adres van een meter te configureren is of hoe werkt dit?

In het overzicht met modbus zie ik geen register om de batterij soc uit te lezen? In home assistant integraties zag ik dat SMA webconnect protocol gebruikt werd. Iemand van jullie daar ervaring mee? Het lijken gewoon http calls te zijn en hier zou precies well de batterij soc mee uit te lezen moeten zijn?
Even een account aangemaakt om te reageren. Leuk dat je mijn SMA Energy Meter emulator al tegen kwam bij je zoektocht deze staat nog maar net online.
Zelf gebruik ik het in combinatie met een Sunny Boy Smart Energy (De mono fase hybride omvormer van SMA). Configureren werkt als volgt:
  1. Configureer eerst de add-on en stuur minstens 1 mqtt bericht om de emulatie te starten. Plaats het ip-adres van je omvormer in de "destinationAddresses" array
  • Ga daarna naar de web interface van je omvormer.
  • Ga naar Configuration > Device management
  • Voeg een device toe via het "+" symbool, Kies daarna voor: "SMA speedwire devices" de omvormer zal dan zoeken naar devices die nog niet zijn geconfigureerd.
  • Als alles goed gaat zal je omvormer nu een energy meter vinden die je verder kan configureren
  • Nu kan je de meter eventueel als grid meter configureren in configuration > meter configuration of als een ander toestel via de ennexos sunnyportal
In theorie zou je dan inderdaad je omvormer "voor de gek kunnen houden" met aangepaste waardes. Maar ik denk dat het toch mogelijk moet zijn om het laden en ontladen van de batterij op een betere manier aan te sturen.
JUD schreef: 23 jul 2024, 09:58 In het overzicht met modbus zie ik geen register om de batterij soc uit te lezen? In home assistant integraties zag ik dat SMA webconnect protocol gebruikt werd. Iemand van jullie daar ervaring mee? Het lijken gewoon http calls te zijn en hier zou precies well de batterij soc mee uit te lezen moeten zijn?
Webconnect is volgens mij een ouder SMA protocol ik denk niet dat je daar hybride omvormers mee kan uitlezen. Nieuwe omvormers kan je wel integreren in home assistant met deze custom integratie: "ha-pysmaplus" Dat werkt hier goed. (ik kan hier geen link plaatsen wegens nieuwe account, je zal moeten googlen)
Gebruikersavatar
conda
Starter Plus
Starter Plus
Berichten: 43
Lid geworden op: 12 dec 2020, 12:56
Bedankt: 1 keer

Bericht

update.png
Zo update is klaar. Nu ga ik eerst de Flexio testen en binnenkort mijn eigen sturingen weer ter hand nemen als alles blijkt te werken zoals het hoort tenminste. :-D

Toegevoegd na 12 uren 16 minuten 48 seconden:
Helaas pindakaas nog geen verbetering. :cry: Nu werkt de Flexio ook niet meer met de SHM unplugged. :nono:

Terug mijn eigen sturing dan maar met de sHM unplugged. 8)

@JUD Ik gebruik de officiële integratie van SMA in HA en krijg via die weg gewoon de batterij SOC binnen.

Ik ben zelf eens in de modbusdocumentatie gaan kijken, omdat ik zelf de SOC niet uitlees via modbus, maar wel via de integratie in HA.

In de documentatie kan ik wel het volgende terugvinden: Zou register 30845 moeten zijn.

Bat.ChaStt
Measured value
Current battery state of charge
Battery > Battery > State of charge
30845
2
U32
FIX0
RO
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Gijs Wassink
Starter
Starter
Berichten: 9
Lid geworden op: 17 mei 2024, 20:37
Bedankt: 2 keer

Bericht

Het heeft een tijdje geduurt maar wel weer een stuk verder gekomen.
Inmiddels is het remote besturen van de batterij (SMA Home Storage) gelukt. (met dank aan de Fix die SMA heeft uitgebracht, (SHM2 Firmware versie 2.15.5.R)

C# .Net 8.0 programma draait op een RaspberryPI 4 met Pi Os 64bit

Op dit moment met de volgende functionaliteit:
1. Batterij laden 's morgens uitstellen.
2. Batterij op de dag a.d.h.v. EPEX Spot markt prijzen laden. (Spot markt prijzen worden live opgehaal bij Tibber)

To Do:
1. Zomer tijd:
In kopen / verkopen stroom als er grootte prijs verschillen op de Spot markt gemeld worden.
(Prijs verschil inkoop / verkoop moet dusdaning groot zijn dat het zich loont)
2.Winter tijd:
Bij negative Spot markt prijzen (vooral 's nachts) de batterij laden.

Als het programma compleet en stabiel draait ga ik het op Github publiceren.
PaulV71
Starter
Starter
Berichten: 1
Lid geworden op: 3 maanden geleden

Bericht

Goede avond.
Voor een klein project ben ik op zoek naar de CANbus logs van de Tripower SE en BYD en/of andere compatibele batterijen. Ik zou graag in contact komen met iemand die mij hiermee kan helpen.
Met vriendelijke groet,
Paul
Jeroen_sma
Starter
Starter
Berichten: 2
Lid geworden op: 19 jul 2024, 21:02
Uitgedeelde bedankjes: 1 keer

Bericht

@Gijs Wassink. Hoe heb jij je kunnen aanmelden als Field tester? Ik heb op allerlei plekken gezocht maar kan het niet vinden. Of weet jij wanneer de firmware voor iedereen beschikbaar komt?
Alvast dank
Jeroen