habe heir folgendes gefunden
@alex_s
Ich meine schon die SolarAssistant Software mit einem Raspberry PI 3B, verbunden mit einem RS485 Adapter.
Auf der Homepage steht, dass ein Deye 12K nur ausgelesen werden kann. Nur auslesen funktioniert ja auch mit Solarman.
Wenn ihr was zu SolarAssist diskutieren wollt, macht doch bitte einen extra Thread dazu auf, sonst kommt hier alles durcheinander, hier soll es um Home Assistant Anbindung gehen. Danke für euer Verständnis.
und im MQTT advanced settings menü
kann man einstellen ob eine modifiation von Einstellungen erlaubt ist...
ich dachte die idee ist es den Deye über den Home assistent zu steuern indem der Solar assitent als mqtt "Übersetzer" dazwischen agiert?
Da über die direkt anbindung vom Deye an den Home assitent sich keien Deye Einstellunden ändern lassen?
oder habe ich das falsch verstanden?
Nee, der Home Assistant wird doch per ESPhome angebunden (ESPhome-for-deye) damit geht der ESP an den RS485 und kann auslesen und steuern, da braucht es nicht noch was dazwischen...
Sogar das Seplos kann man dank klatremis mit esphome-seplos-bms anbinden.
SolarAssist ist ja eine andere Lösung für Monitoring und Co. hat mit HA nix zu tun und wird auch nicht benötigt.
Kannst Du bitte mir erklären, wie man den Home Assistant / welche Software auf das ESP-32S ESP32 Development Board einspielt/einrichtet?
Wie muss ich vorgehen?
Herzlichen Dank für Deine Hilfe
Tenker
Das ist meine Config für einen DEYE 12K und zwei Seplos an einem ESP:
substitutions: name: esp-deye-seplos name2: seplos device_description: "Esphome component for Deye SUN-12k-SG04LP3 & Seplos 280" modbus_controller_id: SG04LP3 battery_bank0: "${name2} bank I" battery_bank1: "${name2} bank II" external_components_source: github://syssi/esphome-seplos-bms@main skip_updates: "10" esphome: name: ${name} esp32: board: esp32dev framework: type: arduino external_components: - source: ${external_components_source} refresh: 0s # Enable logging logger: level: NONE baud_rate: 0 # Enable Home Assistant API api: ota: password: "***" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Deye12K Fallback Hotspot" password: "36BiodTgKCJI" captive_portal: uart: ### Seplos - id: uart0 tx_pin: GPIO1 rx_pin: GPIO3 baud_rate: 9600 rx_buffer_size: 384 ### Deye - id: uart1 tx_pin: GPIO17 rx_pin: GPIO16 baud_rate: 9600 stop_bits: 1 ### Seplos seplos_modbus: id: modbus0 uart_id: uart0 rx_timeout: 150ms ## Deye modbus: id: modbus1 uart_id: uart1 ### Seplos seplos_bms: - id: battery_bank0 # Dip switch configuration of the first pack / address 0x01 # 8 7 6 5 4 3 2 1 # off, off, off, off, off, off, off, on address: 0x00 seplos_modbus_id: modbus0 update_interval: 15sec - id: battery_bank1 # Dip switch configuration of the second pack / address 0x02 # 8 7 6 5 4 3 2 1 # off, off, off, off, off, off, on, off address: 0x01 seplos_modbus_id: modbus0 update_interval: 15sec # Deye modbus_controller: - id: ${modbus_controller_id} address: 0x03 modbus_id: modbus1 setup_priority: -10 update_interval: 15sec ########################################################### ##################### SG04LP3 ############################ ########################################################### button: - platform: restart name: "Deye-Seplos ESP restart" id: esp_deye_seplos_restart_bt on_press: - logger.log: "Button pressed" select: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_1 name: "sun12k-Time point 1 start" address: 148 value_type: U_WORD # skip_updates: ${skip_updates} optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_2 name: "sun12k-Time point 2 start" address: 149 value_type: U_WORD # skip_updates: ${skip_updates} optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_3 name: "sun12k-Time point 3 start" address: 150 value_type: U_WORD # skip_updates: ${skip_updates} optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_4 name: "sun12k-Time point 4 start" address: 151 value_type: U_WORD # skip_updates: ${skip_updates} optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_5 name: "sun12k-Time point 5 start" address: 152 value_type: U_WORD optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_6 name: "sun12k-Time point 6 start" address: 153 value_type: U_WORD optionsmap: "00:00": 0 "01:00": 100 "02:00": 200 "03:00": 300 "04:00": 400 "05:00": 500 "06:00": 600 "07:00": 700 "08:00": 800 "09:00": 900 "10:00": 1000 "11:00": 1100 "12:00": 1200 "13:00": 1300 "14:00": 1400 "15:00": 1500 "16:00": 1600 "17:00": 1700 "18:00": 1800 "19:00": 1900 "20:00": 2000 "21:00": 2100 "22:00": 2200 "23:00": 2300 "24:00": 2400 switch: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k_Solar_sell register_type: holding address: 145 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Grid_Charge register_type: holding address: 130 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Advanced peak shaving and valley filling function enabled use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time of Use id: sun12k_Time_of_Use register_type: holding address: 146 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 1 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 1 charge enable register_type: holding address: 172 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 2 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 2 charge enable register_type: holding address: 173 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 3 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 3 charge enable register_type: holding address: 174 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 4 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 4 charge enable register_type: holding address: 175 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 5 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 5 charge enable register_type: holding address: 176 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} - platform: modbus_controller # Time point 6 charge enable - grid charging enable use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: sun12k-Time point 6 charge enable register_type: holding address: 177 bitmask: 1 # 2 hvis man ønsker Gen charging enabel i sted for. entity_category: config icon: "mdi:toggle-switch" skip_updates: ${skip_updates} binary_sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: sun12k-AC INV relay # bit 0 id: sun12k_AC_INV_relay register_type: holding address: 552 bitmask: 0x1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: sun12k-AC Load relay Reserved # bit 1 id: sun12k_AC_Load_relay_Reserved register_type: holding address: 552 bitmask: 0x2 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: sun12k-AC grid relay # bit 2 id: sun12k_AC_grid_relay register_type: holding address: 552 bitmask: 0x4 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: sun12k-AC Generator relay # bit 3 id: sun12k_AC_Generator_relay register_type: holding address: 552 bitmask: 0x8 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: sun12k-Turn off/on status #The lower 4 bits represent the switch signal id: sun12k_Turn_off_on_status register_type: holding address: 551 bitmask: 0x1 text_sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} id: sun12k_Running_Status bitmask: 0 register_type: holding address: 500 raw_encode: HEXBYTES name: sun12k-Running Status lambda: |- uint16_t value = modbus_controller::word_from_hex_str(x, 0); switch (value) { case 0: return std::string("standby"); case 1: return std::string("selfcheck"); case 2: return std::string("normal"); case 3: return std::string("alarm"); case 4: return std::string("fault"); default: return std::string("----"); } return x; number: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Maximum_battery_charge_current name: "sun12k-Maximum battery charge current" address: 108 unit_of_measurement: A value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Maximum_battery_discharge_current name: "sun12k-Maximum battery discharge current" address: 109 unit_of_measurement: A value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Maximum_battery_grid_charge_current name: "sun12k-Maximum battery_grid charge current" address: 128 unit_of_measurement: A value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_1_power name: "sun12k-Time point 1 power" unit_of_measurement: W address: 154 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_2_power name: "sun12k-Time point 2 power" unit_of_measurement: W address: 155 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_3_power name: "sun12k-Time point 3 power" unit_of_measurement: W address: 156 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_4_power name: "sun12k-Time point 4 power" unit_of_measurement: W address: 157 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_5_power name: "sun12k-Time point 5 power" unit_of_measurement: W address: 158 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_6_power name: "sun12k-Time point 6 power" unit_of_measurement: W address: 159 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_1_capacity name: "sun12k-Time point 1 capacity" unit_of_measurement: "%" address: 166 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_2_capacity name: "sun12k-Time point 2 capacity" unit_of_measurement: "%" address: 167 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_3_capacity name: "sun12k-Time point 3 capacity" unit_of_measurement: "%" address: 168 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_4_capacity name: "sun12k-Time point 4 capacity" unit_of_measurement: "%" address: 169 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_5_capacity name: "sun12k-Time point 5 capacity" unit_of_measurement: "%" address: 170 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_Time_point_6_capacity name: "sun12k-Time point 6 capacity" unit_of_measurement: "%" address: 171 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_cap_shutdown name: "sun12k-Battery Capacity Shutdown" unit_of_measurement: "%" address: 115 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_cap_restart name: "sun12k-Battery Capacity Restart" unit_of_measurement: "%" address: 116 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_cap_lowbatt name: "sun12k-Battery Capacity LowBatt" unit_of_measurement: "%" address: 117 min_value: 0 max_value: 100 step: 5 value_type: U_WORD skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_volt_shutdown name: "sun12k-Battery Voltage Shutdown" unit_of_measurement: "V" address: 118 min_value: 3800 max_value: 6100 value_type: U_WORD multiply: 0.01 skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_volt_restart name: "sun12k-Battery Voltage Restart" unit_of_measurement: "V" address: 119 min_value: 3800 max_value: 6100 value_type: U_WORD multiply: 0.01 skip_updates: ${skip_updates} - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: sun12k_battery_volt_lowbatt name: "sun12k-Battery Voltage LowBatt" unit_of_measurement: "V" address: 120 min_value: 3800 max_value: 6100 value_type: U_WORD multiply: 0.01 skip_updates: ${skip_updates} sensor: - platform: modbus_controller #sun12k-køleplade temeratur modbus_controller_id: ${modbus_controller_id} name: "sun12k-Heat sink temperature" id: sun12k_koleplade_temeratur register_type: holding address: 541 unit_of_measurement: "°C" value_type: S_WORD accuracy_decimals: 2 filters: - offset: -1000 - multiply: 0.1 - platform: modbus_controller #sun12k-load frequency modbus_controller_id: ${modbus_controller_id} name: "sun12k-load frequency" id: sun12k_load_frequency register_type: holding address: 655 unit_of_measurement: "Hz" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller #sun12k-inverter-frequency modbus_controller_id: ${modbus_controller_id} name: "sun12k-inverter-frequency" id: sun12k_inverter_frequency register_type: holding address: 638 unit_of_measurement: "Hz" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV1 Power" id: sun12k_PV1_Power register_type: holding address: 672 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV2 Power" id: sun12k_PV2_Power register_type: holding address: 673 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV1 Voltage" id: sun12k_PV1_Voltage register_type: holding address: 676 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV2 Voltage" id: sun12k_PV2_Voltage register_type: holding address: 678 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV1 Current" id: sun12k_PV1_Current register_type: holding address: 677 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-PV2 Current" id: sun12k_PV2_Current register_type: holding address: 679 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Daily Production" id: sun12k_Daily_Production register_type: holding address: 529 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 skip_updates: ${skip_updates} filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total PV Production" #Cumulative Production id: sun12k_Total_PV_Production register_type: holding address: 534 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total Grid Power" # Grid side total power id: sun12k_Total_Grid_Power register_type: holding address: 625 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Daily Energy Bought" id: sun12k_Daily_Energy_Bought register_type: holding address: 520 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Daily Energy Sold" id: sun12k_Daily_Energy_Sold register_type: holding address: 521 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total Energy Bought" id: sun12k_Total_Energy_Bought register_type: holding address: 522 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total Energy Sold" id: sun12k_Total_Energy_Sold register_type: holding address: 524 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller #Total Consumption modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total Consumption" id: sun12k_Total_Consumption register_type: holding address: 527 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 2 value_type: U_DWORD_R skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-active power generation of today" id: sun12k_active_power_generation_of_today register_type: holding address: 502 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: S_WORD skip_updates: ${skip_updates} filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Current L1" id: sun12k_Grid_Current_L1 register_type: holding address: 630 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.01 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Current L2" id: sun12k_Grid_Current_L2 register_type: holding address: 631 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.01 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Current L3" id: sun12k_Grid_Current_L3 register_type: holding address: 632 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.01 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Voltage L1" id: sun12k_Grid_Voltage_L1 register_type: holding address: 598 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Voltage L2" id: sun12k_Grid_Voltage_L2 register_type: holding address: 599 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Grid Voltage L3" id: sun12k_Grid_Voltage_L3 register_type: holding address: 600 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Internal CT L1 Power" id: sun12k_Internal_CT_L1_Power register_type: holding address: 604 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Internal CT L2 Power" id: sun12k_Internal_CT_L2_Power register_type: holding address: 605 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Internal CT L3 Power" id: sun12k_Internal_CT_L3_Power register_type: holding address: 606 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller # Grid internal - total active power modbus_controller_id: ${modbus_controller_id} name: "sun12k-Internal total Power" id: sun12k_Internal_total_Power register_type: holding address: 607 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-External CT L1 Power" id: sun12k_External_CT_L1_Power register_type: holding address: 616 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-External CT L2 Power" id: sun12k_External_CT_L2_Power register_type: holding address: 617 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-External CT L3 Power" id: sun12k_External_CT_L3_Power register_type: holding address: 618 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Out-of-grid–total power" id: sun12k_out_of_grid_total_power register_type: holding address: 619 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller # Load totalpower modbus_controller_id: ${modbus_controller_id} name: "sun12k-Load totalpower" id: sun12k_Load_totalpower register_type: holding address: 653 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Warning1" id: sun12k_Warning1 register_type: holding address: 553 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Warning2" id: sun12k_Warning2 register_type: holding address: 554 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Warning3" id: sun12k_Warning3 register_type: holding address: 555 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Error1" id: sun12k_Error1 register_type: holding address: 556 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Error2" id: sun12k_Error2 register_type: holding address: 557 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Error3" id: sun12k_Error3 register_type: holding address: 558 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Failure status of communication board" id: sun12k_Failure_status_of_communication_board register_type: holding address: 548 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Minimum insulation impedance" id: sun12k_Minimum_insulation_impedance register_type: holding unit_of_measurement: "kΩ" state_class: "measurement" address: 65 accuracy_decimals: 0 value_type: U_WORD filters: - multiply: 0.1 - platform: template name: "sun12k_PV_Power" unit_of_measurement: "W" state_class: "measurement" lambda: |- return (id(sun12k_PV1_Power).state + id(sun12k_PV2_Power).state); accuracy_decimals: 0 update_interval: 1s # Batterie # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "sun12k-Today charge of the battery" # id: sun12k_Today_charge_of_the_battery # register_type: holding # address: 514 # unit_of_measurement: "kWh" # state_class: "total_increasing" # device_class: energy # accuracy_decimals: 1 # value_type: U_WORD # filters: # - multiply: 0.1 # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "sun12k-Today discharge of the battery" # id: sun12k_Today_discharge_of_the_battery # register_type: holding # address: 515 # unit_of_measurement: "kWh" # state_class: "total_increasing" # device_class: energy # accuracy_decimals: 1 # value_type: U_WORD # filters: # - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total charge of the battery" id: sun12k_battery_total_charge register_type: holding address: 516 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Total discharge of the battery" id: sun12k_battery_total_discharge register_type: holding address: 518 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-battery temperature" id: sun12k_battery_temperature register_type: holding address: 586 unit_of_measurement: "°C" accuracy_decimals: 1 value_type: U_WORD filters: - offset: -1000 - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-battery voltage" id: sun12k_battery_voltage register_type: holding address: 587 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-battery capacity" id: sun12k_battery_capacity register_type: holding address: 588 unit_of_measurement: "%" state_class: "measurement" accuracy_decimals: 1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-Battery output power" id: sun12k_Battery_output_power register_type: holding address: 590 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: template name: "sun12k-Battery charge power" id: sun12k_Battery_charge_power unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 lambda: |- if (id(sun12k_Battery_output_power).state < 0) { return id(sun12k_Battery_output_power).state * -1; } else { return 0; } update_interval: 5s - platform: template name: "sun12k-Battery discharge power" id: sun12k_Battery_discharge_power unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 lambda: |- if (id(sun12k_Battery_output_power).state > 0) { return id(sun12k_Battery_output_power).state; } else { return 0; } update_interval: 5s # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "sun12k-Battery output current" # id: sun12k_Battery_output_current # register_type: holding # address: 591 # unit_of_measurement: "A" # state_class: "measurement" # accuracy_decimals: 2 # filters: # - multiply: 0.01 # value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "sun12k-The corrected capacity of the battery" id: sun12k_The_corrected_capacity_of_the_battery register_type: holding address: 592 unit_of_measurement: "Ah" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD ########################################################### ##################### Seplos ############################ ########################################################### - platform: seplos_bms seplos_bms_id: battery_bank0 min_cell_voltage: name: "${battery_bank0} min cell voltage" max_cell_voltage: name: "${battery_bank0} max cell voltage" min_voltage_cell: name: "${battery_bank0} min voltage cell" max_voltage_cell: name: "${battery_bank0} max voltage cell" delta_cell_voltage: name: "${battery_bank0} delta cell voltage" average_cell_voltage: name: "${battery_bank0} average cell voltage" cell_voltage_1: name: "${battery_bank0} cell voltage 1" cell_voltage_2: name: "${battery_bank0} cell voltage 2" cell_voltage_3: name: "${battery_bank0} cell voltage 3" cell_voltage_4: name: "${battery_bank0} cell voltage 4" cell_voltage_5: name: "${battery_bank0} cell voltage 5" cell_voltage_6: name: "${battery_bank0} cell voltage 6" cell_voltage_7: name: "${battery_bank0} cell voltage 7" cell_voltage_8: name: "${battery_bank0} cell voltage 8" cell_voltage_9: name: "${battery_bank0} cell voltage 9" cell_voltage_10: name: "${battery_bank0} cell voltage 10" cell_voltage_11: name: "${battery_bank0} cell voltage 11" cell_voltage_12: name: "${battery_bank0} cell voltage 12" cell_voltage_13: name: "${battery_bank0} cell voltage 13" cell_voltage_14: name: "${battery_bank0} cell voltage 14" cell_voltage_15: name: "${battery_bank0} cell voltage 15" cell_voltage_16: name: "${battery_bank0} cell voltage 16" temperature_1: name: "${battery_bank0} temperature 1" temperature_2: name: "${battery_bank0} temperature 2" temperature_3: name: "${battery_bank0} temperature 3" temperature_4: name: "${battery_bank0} temperature 4" temperature_5: name: "${battery_bank0} environment temperature" temperature_6: name: "${battery_bank0} mosfet temperature" total_voltage: name: "${battery_bank0} total voltage" current: name: "${battery_bank0} current" power: name: "${battery_bank0} power" charging_power: name: "${battery_bank0} charging power" discharging_power: name: "${battery_bank0} discharging power" residual_capacity: name: "${battery_bank0} residual capacity" battery_capacity: name: "${battery_bank0} battery capacity" rated_capacity: name: "${battery_bank0} rated capacity" state_of_charge: name: "${battery_bank0} state of charge" charging_cycles: name: "${battery_bank0} charging cycles" state_of_health: name: "${battery_bank0} state of health" port_voltage: name: "${battery_bank0} port voltage" - platform: seplos_bms seplos_bms_id: battery_bank1 min_cell_voltage: name: "${battery_bank1} min cell voltage" max_cell_voltage: name: "${battery_bank1} max cell voltage" min_voltage_cell: name: "${battery_bank1} min voltage cell" max_voltage_cell: name: "${battery_bank1} max voltage cell" delta_cell_voltage: name: "${battery_bank1} delta cell voltage" average_cell_voltage: name: "${battery_bank1} average cell voltage" cell_voltage_1: name: "${battery_bank1} cell voltage 1" cell_voltage_2: name: "${battery_bank1} cell voltage 2" cell_voltage_3: name: "${battery_bank1} cell voltage 3" cell_voltage_4: name: "${battery_bank1} cell voltage 4" cell_voltage_5: name: "${battery_bank1} cell voltage 5" cell_voltage_6: name: "${battery_bank1} cell voltage 6" cell_voltage_7: name: "${battery_bank1} cell voltage 7" cell_voltage_8: name: "${battery_bank1} cell voltage 8" cell_voltage_9: name: "${battery_bank1} cell voltage 9" cell_voltage_10: name: "${battery_bank1} cell voltage 10" cell_voltage_11: name: "${battery_bank1} cell voltage 11" cell_voltage_12: name: "${battery_bank1} cell voltage 12" cell_voltage_13: name: "${battery_bank1} cell voltage 13" cell_voltage_14: name: "${battery_bank1} cell voltage 14" cell_voltage_15: name: "${battery_bank1} cell voltage 15" cell_voltage_16: name: "${battery_bank1} cell voltage 16" temperature_1: name: "${battery_bank1} temperature 1" temperature_2: name: "${battery_bank1} temperature 2" temperature_3: name: "${battery_bank1} temperature 3" temperature_4: name: "${battery_bank1} temperature 4" temperature_5: name: "${battery_bank1} environment temperature" temperature_6: name: "${battery_bank1} mosfet temperature" total_voltage: name: "${battery_bank1} total voltage" current: name: "${battery_bank1} current" power: name: "${battery_bank1} power" charging_power: name: "${battery_bank1} charging power" discharging_power: name: "${battery_bank1} discharging power" residual_capacity: name: "${battery_bank1} residual capacity" battery_capacity: name: "${battery_bank1} battery capacity" rated_capacity: name: "${battery_bank1} rated capacity" state_of_charge: name: "${battery_bank1} state of charge" charging_cycles: name: "${battery_bank1} charging cycles" state_of_health: name: "${battery_bank1} state of health" port_voltage: name: "${battery_bank1} port voltage"
Ich habe nur eine kleine Erfahrung, als ich vor Wochen schon AhoyDTU installiert habe.
Hier weiß ich nicht wie ich vorgehen soll ? .
Aber, welche FILES soll ich und wie auf das ESP-32S ESP32 Development Board einspielen?
Respekt! Tolle Arbeit.
Habe selbe Kombi aus Deye12k und Seplos BMS. Wie hast du die Kommunikation zwischen Deye und Seplos realisiert, per CAN oder RS485? Wäre toll wenn du mal deine Einstellungen teilen könntest, sprich im WR und BMS (welches Protokoll, PYLON?)
Der Respekt gebührt nicht mir :-), im Prinzip habe ich ich nur die beiden Projekte auf einen ESP geflasht:
Mit HomeAssistant und dem ESPHome Add-On muss man Softwareseitig nur den YAML Code auf den ESP flashen.
Ohne Home Assitant ist das vielleicht eine alternative:
https://github.com/KlausLi/Esp-Seplos-Controller
Pack1 und Pack2 sind nach Handbuch über die RS485 Ports verbunden.
vom Pack 1 (Master) besteht eine Verbindung zum Deye CAN-Port -> BMS-Port, aber nur die Adern 4 u.5 , das ist die CAN Kommunikation. Setting an Deye Lithium und Protokoll "00"
- bis hierhin alle Dip-Switche auf "0" , automatische Adressierung "on"
Dann habe ich vom BMS-Port an Deye Pin 1 u 2 auf den ersten TTL-Konverter am ESP verbunden. DEYE im HomeAssitant sichtbar und steuerbar.
Pin 1 u 2 an den CAN-Ports der Seplos parallel schalten und mit dem zweitem TTL-Konverter verbinden.
-Dip-Switche nach den RS485 vorgaben im Seploshandbuch gesetzt, automatische Adressierung "on"
das wars eigentlich auch schon.
Habe die RJ45 Stecker am BMS - Port (DEYE) und CAN-Ports (Seplos) abgeschnitten und nur die nötigen Adernpaare verbunden damit keine überkreuzte Kommunikation statt findet. Stellt man nämlich am DEYE das Protokoll "12" ein, empfängt er die RS485 Daten vom Seplos und kann damit auch arbeiten, wird aber zeitgleich zum Modbus-Master und sendet nichts mehr an den ESP.
@tenker nutzt du HomeAssitant?
Mit Homeassititant und ESPHome ist es relativ einfach das flashen geht aus dem Add-On heraus, die Firmware für den ESP wird automatisch aus der YAML Datei kompiliert.
Ich habe gerade mal ein Update meiner Platine veröffentlicht. Ich dachte ich greife einfach das CANBUS ab, aber vielleicht mach ich doch besser n zweiten RS485 auf die Platine.
Kannst Du den Link posten?
@tenker GitHub - bagges/deye-esp32-bridge die aktuellste Version hab ich selbst noch nicht in Betrieb. Bei mir läuft noch die v0.1
Das wäre natürlich Klasse wenn du Zeit hättest das PCB Layout anzupassen, wie die Lösung @plusninp (https://www.akkudoktor.net/forum/postid/112421/)mit zwei RS485 und CAN durchgeschliffen. Das ist schon die ideale Lösung für die die Home Assistant nutzen.
@plusninp super beschrieben, danke. Wäre es nicht auch denkbar die RS485 vom CAN Port als Verbindung zu den Akkupacks zu nutzen und die schnelleren RS485 für den ESP?
Hintergrund, die 9600baud sind echt langsam bei den vielen Werten die da abgefragt werden, du hast ja 15s drin, bringt der ESP da Fehler auf den Console? Zellspannungen hätte ich schon gerne mit min. 5s abgefragt...
Was macht eigentlich die "automatische Adressierung" im Seplos? Wenn es doch das Mäuseklavier gibt?
Interessante Lösung mit den Zeiten, hatte mich schon gefragt, ob man da irgend wie Zeitformat auswählen muss... muss ich mal bei mir einbauen... hast dazu auch ein schönes dash gebaut? Da hänge ich immer noch hinter her... schön ist bei mir nix, nur zum schauen. Grafana habe ich auch noch nix gemacht, die interne Graphik ist ja so la la..
ich hätte wohl 3x RS485 vorgesehen, kann ja nicht schaden einen extra zu haben, muss man ja nicht bestücken. Bei der Verkabelung der RJ45 wäre ja super, wenn das von plusninp umzusetzen ginge.