Ankündigung

Einklappen
Keine Ankündigung bisher.

Last- / Lademanagement Wallbox mit PV Überschuss

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hubertus81
    antwortet
    Für 3Phasiges Laden benötigst du mindestes 4,1kW. Ergo „18A“. In meinen Augen würde es kein Sinn machen bei 16A umzuschalten, besser wäre wohl noch bis zu 20A einphasig zu laden und dann umzuschalten. Sicherlich macht da aber auch ne Prognose Sinn wodurch du herausfinden kannst ob überhaupt mit einem weiteren Anstieg der Leistung der PV zu rechnen ist.
    Je nach installierter Leistung würde ich bei reinem PV eher 3phasig komplett meiden.
    Die Umschaltung wie schon gesagt kostet Zeit und afaik soll das auch für die Elektronik nicht das beste sein dies „ständig“ zu tun.
    Zuletzt geändert von Hubertus81; 25.03.2023, 23:50.

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Spricht was dagegen die Umschaltung von 1-phasig auf 3-phasig bei 16A (3.68 W) durchzuführen und den Übergang von 3-phasig nach 1-phasig bei < 1A (0.69 kW) durchzuführen?

    Einen Kommentar schreiben:


  • bluegaspode
    antwortet
    Wenn du im Grenzbereich zwischen 1 und 3 phasig bist, wäre es sehr ungünstig, immer umzuschalten.

    Mein Auto schnappt sich so 20 - 30 Sek für einen Ladestart. Fängt dann erstmal schön ruhig mit geringer Last an und fährt dann innerhalb von 1 Minute auf volle Ladeleistung hoch.

    Da hat sich dann deine Erzeugung bei der nächten Wolke schon wieder geändert.

    Auf dreiphasig mit dem ganzen Umschaltvorgang solltest du also erst gehen, wenn du genug Erzeugung plus ein bißchen Puffer hast, dass du nicht bei der nächsten Wolke gleich wieder umschalten willst.

    Die Begrenzung der Schaltvorgänge ist daher sehr sinnvoll um nicht in sinnlose Überoptimierung zu gehen.

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Hallo,

    anscheinend hat die OpenWB ein Limit für die Umschaltung zw. 1 und 3-phasigem Laden (1x alle n Minuten) um die HW (Relais?) zu schonen. Würde hier nicht auch helfen, den Strom vor dem Umschalten auf Null zu fahren und dann umzuschalten? Oder machen das die WBen bereits automatisch? Mich würde insbesondere interessieren, ob jemand sagen kann, ob das die Alfen Eve bereits macht.

    Danke und Gruß
    Rainer

    Einen Kommentar schreiben:


  • rdorsch
    antwortet
    Zitat von Raphael Huckert Beitrag anzeigen
    Du nutzt am Besten das Register 1210 dafür. Eine Unterschiedliche Ladeleistung pro Phase ist nicht möglich, bzw. das Fahrzeug kann damit nichts anfangen

    [...]
    Hier ein Stück Beispielcode für meine Alfen Eve (vielleicht hilft er ja jemandem)
    Code:
    from pymodbus.client.sync import ModbusTcpClient [/COLOR]
    from pymodbus.payload import BinaryPayloadDecoder
    import pymodbus
    
    client = ModbusTcpClient('alfen-sued', port=502, timeout=10)
    
    # Product identification registers
    rr = client.read_holding_registers(100,count=79,unit=200)
    print(type(rr))
    
    decoder = pymodbus.payload.BinaryPayloadDecoder.fromRegisters(rr.registers, byteorder=pymodbus.constants.Endian.Big, wordorder=pymodbus.constants.Endian.Big)
    # Usecase-1
    decoded = {
       'name': decoder.decode_string(34).decode(),
       'manufacturer': decoder.decode_string(10).decode(),
       'table_version': decoder.decode_16bit_uint(),
       'firmware_version': decoder.decode_string(34).decode(),
       'platform_type': decoder.decode_string(34).decode(),
       'serial_number': decoder.decode_string(22).decode(),
       'date_year': decoder.decode_16bit_int(),
       'date_month': decoder.decode_16bit_int(),
       'date_day': decoder.decode_16bit_int(),
       'date_hour': decoder.decode_16bit_int(),
       'date_min': decoder.decode_16bit_int(),
       'date_sec': decoder.decode_16bit_int(),
       'date_uptime': decoder.decode_64bit_uint(),
       'tz': decoder.decode_16bit_int(),
    }
    print(decoded)
    print(decoded['name'])
    print(type(decoded))
    
    # Energy measurements
    print("Energy measurements:")
    rr = client.read_holding_registers(300,count=8,unit=1)
    print(type(rr))
    print(rr)
    print(rr.getRegister(0))
    decoder = pymodbus.payload.BinaryPayloadDecoder.fromRegisters(rr.registers, byteorder=pymodbus.constants.Endian.Big, wordorder=pymodbus.constants.Endian.Big)
    energy_m = {
       'meter_state': decoder.decode_16bit_uint(),
       'meter_last_value_timestamp': decoder.decode_64bit_uint(),
       'meter_type': decoder.decode_16bit_uint(),
       'voltage_phase_V_L1N': decoder.decode_32bit_float(),
    }
    print(energy_m)
    
    # Read status and transactions
    print("Status and Transactions:")
    rr = client.read_holding_registers(1200,count=16,unit=1)
    print(type(rr))
    print(rr)
    print(rr.getRegister(0))
    decoder = pymodbus.payload.BinaryPayloadDecoder.fromRegisters(rr.registers, byteorder=pymodbus.constants.Endian.Big, wordorder=pymodbus.constants.Endian.Big)
    status_and_transaction = {
       'availability': decoder.decode_16bit_uint(),
       'mode3_state': decoder.decode_string(10).decode(),
       'actual_applied_max_current': decoder.decode_32bit_float(),
       'modbus_slave_max_current_valid_time': decoder.decode_32bit_uint(),
       'modbus_slave_max_current': decoder.decode_32bit_float(),
       'active_load_balancing_safe_current': decoder.decode_32bit_float(),
       'modbus_receive_setpoint_accounted_for': decoder.decode_16bit_uint(),
       'charge_using_1_or_3_phases': decoder.decode_16bit_uint(),
    }
    print(status_and_transaction)
    
    # Limit current to 5A and 1 phase
    builder = pymodbus.payload.BinaryPayloadBuilder(byteorder=pymodbus.constants.Endian.Big)
    builder.add_32bit_float(5.0)
    max_current=builder.to_registers()
    phases=1
    
    print(max_current)
    rq = client.write_registers(1210,max_current,unit=0x01)
    rq = client.write_register(1215,phases,unit=0x01)
    
    
    # Read status and transactions
    print("Status and Transactions:")
    rr = client.read_holding_registers(1200,count=16,unit=1)
    print(type(rr))
    print(rr)
    print(rr.getRegister(0))
    decoder = pymodbus.payload.BinaryPayloadDecoder.fromRegisters(rr.registers, byteorder=pymodbus.constants.Endian.Big, wordorder=pymodbus.constants.Endian.Big)
    status_and_transaction = {
       'availability': decoder.decode_16bit_uint(),
       'mode3_state': decoder.decode_string(10).decode(),
       'actual_applied_max_current': decoder.decode_32bit_float(),
       'modbus_slave_max_current_valid_time': decoder.decode_32bit_uint(),
       'modbus_slave_max_current': decoder.decode_32bit_float(),
       'active_load_balancing_safe_current': decoder.decode_32bit_float(),
       'modbus_receive_setpoint_accounted_for': decoder.decode_16bit_uint(),
       'charge_using_1_or_3_phases': decoder.decode_16bit_uint(),
    }
    print(status_and_transaction)​
    ​
    Ergebnis ist

    Code:
    <class 'pymodbus.register_read_message.ReadHoldingRegistersResponse'> [/COLOR]
    {'name': 'Sued\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'manufacturer': 'Alfen NV\x00\x00', 'table_version': 1, 'firmware_version': '6.1.0-4159\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
    \x00\x00\x00\x00\x00\x00\x00', 'platform_type': 'NG910\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'serial_number': 'ace0097525\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'date_year': 2022, 'date_month': 4, 'dat
    e_day': 4, 'date_hour': 1, 'date_min': 25, 'date_sec': 55, 'date_uptime': 17899462, 'tz': 60}
    Sued
    <class 'dict'>
    Energy measurements:
    <class 'pymodbus.register_read_message.ReadHoldingRegistersResponse'>
    ReadRegisterResponse (8)
    3
    {'meter_state': 3, 'meter_last_value_timestamp': 991, 'meter_type': 0, 'voltage_phase_V_L1N': 231.47000122070312}
    Status and Transactions:
    <class 'pymodbus.register_read_message.ReadHoldingRegistersResponse'>
    ReadRegisterResponse (16)
    1
    {'availability': 1, 'mode3_state': 'A\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'actual_applied_max_current': 16.0, 'modbus_slave_max_current_valid_time': 856, 'modbus_slave_max_current': 16.0, 'active_load_balancing_safe_current': 16.0, 'modbus_receive_setpoint_accounted_for': 1, 'charge_using_
    1_or_3_phases': 3}
    [16544, 0]
    Status and Transactions:
    <class 'pymodbus.register_read_message.ReadHoldingRegistersResponse'>
    ReadRegisterResponse (16)
    1
    {'availability': 1, 'mode3_state': 'A\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'actual_applied_max_current': 5.0, 'modbus_slave_max_current_valid_time': 899, 'modbus_slave_max_current': 5.0, 'active_load_balancing_safe_current': 16.0, 'modbus_receive_setpoint_accounted_for': 1, 'charge_using_1_
    or_3_phases': 1}
    ​​
    (war ursprünglich eine Problembeschreibung, aber nachdem ich die Lösung selbst gefunden haben und ich den Beitrag nicht löschen konnte in ein Beispiel umgewandelt)

    Gruß
    Rainer
    Zuletzt geändert von rdorsch; 20.03.2023, 23:05.

    Einen Kommentar schreiben:


  • StephKNX
    antwortet
    Hallo,
    kann zwischenzeitlich Jemand bestätigen, dass die Alfen Eve Single S-line den Ladestrom in feineren Schritten als 1A regeln kann? Im Thread gab es da etwas widersprüchliche Aussagen zu. Wenn's geht würde ich mir die bestellen.

    Einen Kommentar schreiben:


  • Marcus81
    antwortet
    Zitat von SvenB Beitrag anzeigen

    0.8.1 ist nun auch im Download und dort ist "NoKeepAlive" Standard, Discrete Register gehen sowie Coil-Register hatten einen Bug und der ist weg. Nur falls benötigt.
    Alles klar, prima, danke!

    Einen Kommentar schreiben:


  • SvenB
    antwortet
    Danke Marcus81: Liebe meinen kleinen Bosch 12V Trennschleifer. Für so Büro-Junkies genau das Richtige 😉

    0.8.1 ist nun auch im Download und dort ist "NoKeepAlive" Standard, Discrete Register gehen sowie Coil-Register hatten einen Bug und der ist weg. Nur falls benötigt.

    Einen Kommentar schreiben:


  • Marcus81
    antwortet
    Zitat von BadSmiley Beitrag anzeigen

    Du brauchst nicht berichten, du brauchst einfach was von Svens Whisliste auf dem 1. Beitrag an Sven schicken. Das reicht uns vollkommen als Antwort.
    hehe, du Hellseher (muss mich mal umdrehen ob dur mir über die Schulter schaust), das hast du wohl parallel getippt als ich mein Beitrag verfasst habe - habe nämlich genau das zuvor erledigt

    Einen Kommentar schreiben:


  • Marcus81
    antwortet
    Fehlermeldungen kommen keine mehr! Werde jetzt über die kalte Jahreszeit weiter basteln und testen.
    Vielen Dank und Danke für die tollen Bausteine! SvenB Wunder dich nicht wenn am Montag bei dir
    Bosch Professional 1x Expert Carbide Multi Wheel Trennscheiben (für Hartholz, Ø 76 mm, Zubehör Mini-Winkelschleifer)​
    von deiner Wunschliste ankommt
    Angehängte Dateien

    Einen Kommentar schreiben:


  • BadSmiley
    antwortet
    Zitat von Marcus81 Beitrag anzeigen
    Danke, wollte mkich gerade wieder dran machen, passt super. Werde berichten!
    Du brauchst nicht berichten, du brauchst einfach was von Svens Whisliste auf dem 1. Beitrag an Sven schicken. Das reicht uns vollkommen als Antwort.

    Einen Kommentar schreiben:


  • Marcus81
    antwortet
    Danke, wollte mkich gerade wieder dran machen, passt super. Werde berichten!

    Einen Kommentar schreiben:


  • BadSmiley
    antwortet
    Da das Lesen bei dir noch nicht klappt, hier ein Beispiel mit dem Baustein von Sven zum lesen des aktuell eingestellten Ladestroms:
    Alfen lesen.jpg

    Einen Kommentar schreiben:


  • SvenB
    antwortet
    Bei dem 0.7.1 LBS und dem Fehler: NoKeepAlive setzen. Wenn es nicht hilft auch ReconnectAfterEachRead.

    Und IllegalFunction ist der falsche Registertyp. Sicher, dass es Input-Register sind und nicht HoldingRegister?

    Einen Kommentar schreiben:


  • BadSmiley
    antwortet
    Ich kann nur via PN helfen, ich darf die Bilder meiner Logiken nicht veröffentlichen.

    Einen Kommentar schreiben:

Lädt...
X