Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Oczekiwanie na integrację z HA/SA
#11
lilygo musi mieć konwerter uart na 485 więc nie wiem czy posiadasz dodatkowo taki moduł oraz pasuje skrobnąć kod np w esphome (w zasadzie wemos d1 mini plus konwerter wystarczy)
Na czym masz zainstalowane ha? Serwer, raspberry czy coś innego? Masz uprawnienia dostępu do portu z HA?
Dodaj w pliku configuration
logger:
default: info
logs:
homeassistant.components.modbus: debug
pymodbus.client: debug
to da nam wiecej informacji w logu

Podłączasz 2żyły czy dajesz tez gnd? Zamieniałeś miejscami A i B?
Na chwile obecnąjest dużo niewiadomych wynikających z nieznajomości twojej konfiguracji HA ale się zrobi kwestia czasu Wink
Reply
#12
    Mam ha na stary Dell wyśle chyba 5010. Konwerter jaki mam to (ten że zdjęcia).
Uprawnienia raczej mam bo jest widoczny w urzadzeniach


Attached Files Thumbnail(s)
   
Reply
#13
Photo 
(05-20-2025, 02:23 PM)sarzyk Wrote: Mam ha na stary Dell wyśle chyba 5010. Konwerter jaki mam to (ten że zdjęcia).
Uprawnienia raczej mam bo jest widoczny w urzadzeniach

ok
Nie zawsze widoczność znaczy że można używać Wink
Jest uruchomiony na maszynie wirtualnej czy jako główny system (na linux)?
Dodałeś wpis o zmianie poziomów log dla modbus?
logger:
  default: info
  logs:
    homeassistant.components.modbus: debug
    pymodbus.client: debug 
Masz dodatek studio code server? Jeśli tak to edytuj log i poszukaj wpisów ensolarx, Modbus: ensolarx Connected to /dev/ttyUSB0, Reading Modbus registers at address 0 on slave 18
Spróbuj podać bezpośredni port zamiast uproszczonego:
port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_B0032EHJ-if00-port0

Pamiętaj o restarcie HA po zmianach w pliku konfiguracyjnym
Reply
#14
Jutro będę u rodziców to będę robił bo to u nich jest. Mam zainstalowany jako HAOS

W zasadzie moje pytanie i działania okażą się zbędne kiedy się okaże że równolegle do Ensolarx podłączone nie będą działać czujnik słońca i HA.
O ile HA jest mi potrzebny to czujnik słońca jest niezbędny.
Reply
#15
(05-20-2025, 06:58 PM)sarzyk Wrote: Jutro będę u rodziców to będę robił bo to u nich jest.  Mam zainstalowany jako HAOS

W zasadzie moje pytanie i działania okażą się zbędne kiedy się okaże że równolegle do Ensolarx podłączone nie będą działać czujnik słońca i HA.
O ile HA jest mi potrzebny to czujnik słońca jest niezbędny.

jeśli nawet połączenie będzie przez ten sam konwerter to przy założeniu że wszystkie urządzenia działają w 8n1 i mają różne ID to nie powinno być problemów
Reply
#16
(05-07-2025, 10:47 AM)Endimac Wrote: Mozna zobaczyc screeny z konfuguracji portu RS oraz karty sieciowej WiFi.
Przydalo by sie zobaczyc tez screeny jak jest ustawione polaczenie HA z karta sieciowa? wtedy bedzie mozna cos powiedziec.

Czy było testowane jednoczesne działanie HA I czujnika natężenia swiatła? Może była by opcja że np. pod gniazdo licznika pójdzie HA a pod gniazdo Integra czujnik natężenia swiatła?
Reply
#17
(05-01-2025, 08:26 AM)sza Wrote:
(04-20-2025, 12:01 AM)sarzyk Wrote: Na wstępie witam. Wychodzi na to że to pierwszy post na forum. 
Z niecierpliwością oczekuje integrację ensolarx z HA i SA.
Czy Żabin wejdzie w życie integracja mógłbym poprosić o opis nawet krótki jak to będzie działało. Serdecznie dziękuję

Przykładowa konfiguracja encji bez mostu


Code:
  sensors:
    - name: "ensolarx_inv1_protocol"
      slave: 18
      address: 0
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_pv1_power"
      slave: 18
      address: 1
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_pv2_power"
      slave: 18
      address: 2
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_pv_total_power"
      slave: 18
      address: 3
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_pv1_voltage"
      slave: 18
      address: 4
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_pv1_current"
      slave: 18
      address: 5
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_pv2_voltage"
      slave: 18
      address: 6
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_pv2_current"
      slave: 18
      address: 7
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_grid_l1_voltage"
      slave: 18
      address: 8
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_grid_l2_voltage"
      slave: 18
      address: 9
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_grid_l3_voltage"
      slave: 18
      address: 10
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_load_l1_power"
      slave: 18
      address: 11
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_load_l2_power"
      slave: 18
      address: 12
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_load_l3_power"
      slave: 18
      address: 13
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_load_total_power"
      slave: 18
      address: 14
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_inv1_load_percents"
      slave: 18
      address: 15
      input_type: holding
      data_type: uint16
      unit_of_measurement: "%"

    - name: "ensolarx_inv1_load_voltage"
      slave: 18
      address: 16
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_battery_voltage"
      slave: 18
      address: 17
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_battery_current"
      slave: 18
      address: 18
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_status"
      slave: 18
      address: 23
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_work_mode"
      slave: 18
      address: 24
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_battery_priority"
      slave: 18
      address: 25
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_bulk_voltage"
      slave: 18
      address: 26
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_float_voltage"
      slave: 18
      address: 27
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_cut_off_voltage"
      slave: 18
      address: 28
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_inv1_battery_low_return"
      slave: 18
      address: 29
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_battery_full_return"
      slave: 18
      address: 30
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_max_total_charge_current"
      slave: 18
      address: 31
      input_type: holding
      data_type: uint16
      unit_of_measurement: "A"

    - name: "ensolarx_inv1_max_utility_charge_current"
      slave: 18
      address: 32
      input_type: holding
      data_type: uint16
      unit_of_measurement: "A"

    - name: "ensolarx_inv1_if_bat_set"
      slave: 18
      address: 33
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_if_bat_proc"
      slave: 18
      address: 34
      input_type: holding
      data_type: uint16
      unit_of_measurement: "%"

    - name: "ensolarx_inv1_if_bat_current"
      slave: 18
      address: 35
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"

    - name: "ensolarx_inv1_grid_charge1_stat"
      slave: 18
      address: 36
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge1_from"
      slave: 18
      address: 37
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge1_to"
      slave: 18
      address: 38
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge1_current"
      slave: 18
      address: 39
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"

    - name: "ensolarx_inv1_grid_charge2_stat"
      slave: 18
      address: 40
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge2_from"
      slave: 18
      address: 41
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge2_to"
      slave: 18
      address: 42
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_grid_charge2_current"
      slave: 18
      address: 43
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"

    - name: "ensolarx_inv1_nominal_voltage"
      slave: 18
      address: 44
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"

    - name: "ensolarx_inv1_pv_ui_stat"
      slave: 18
      address: 45
      input_type: holding
      data_type: uint16

    - name: "ensolarx_inv1_heat_sink_temperature"
      slave: 18
      address: 46
      input_type: holding
      data_type: int16
      unit_of_measurement: "°C"

    - name: "ensolarx_bms1_soc"
      slave: 18
      address: 57
      input_type: holding
      data_type: uint16
      unit_of_measurement: "%"

    - name: "ensolarx_bms1_current_left"
      slave: 18
      address: 58
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"

    - name: "ensolarx_bms1_power"
      slave: 18
      address: 59
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_bms1_min_cell_voltage"
      slave: 18
      address: 60
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.001
      precision: 3

    - name: "ensolarx_bms1_max_cell_voltage"
      slave: 18
      address: 61
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.001
      precision: 3

    - name: "ensolarx_bms1_voltage_difference"
      slave: 18
      address: 62
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.001
      precision: 3

    - name: "ensolarx_bms1_mosfet_state"
      slave: 18
      address: 63
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_cycles"
      slave: 18
      address: 64
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_balance_open"
      slave: 18
      address: 65
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_balance_bits"
      slave: 18
      address: 66
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_temperature"
      slave: 18
      address: 67
      input_type: holding
      data_type: int16
      unit_of_measurement: "°C"

    - name: "ensolarx_bms1_current"
      slave: 18
      address: 68
      input_type: holding
      data_type: int16
      unit_of_measurement: "A"
      scale: 0.1
      precision: 1

    - name: "ensolarx_bms1_voltage"
      slave: 18
      address: 69
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.1
      precision: 1

    - name: "ensolarx_bms1_cell1_voltage"
      slave: 18
      address: 70
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.001
      precision: 3
    # ...
    - name: "ensolarx_bms1_cell16_voltage"
      slave: 18
      address: 85
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"
      scale: 0.001
      precision: 3

    - name: "ensolarx_bms1_state"
      slave: 18
      address: 87
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_cell_overvoltage"
      slave: 18
      address: 88
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_cell_undervoltage"
      slave: 18
      address: 90
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_pack_overvoltage"
      slave: 18
      address: 92
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_cell_count"
      slave: 18
      address: 94
      input_type: holding
      data_type: uint16

    - name: "ensolarx_bms1_turnoff_soc"
      slave: 18
      address: 96
      input_type: holding
      data_type: uint16

    # ? Czujniki nasłonecznienia
    - name: "ensolarx_sunlight_sensor1_value"
      slave: 18
      address: 54
      input_type: holding
      data_type: uint16
      unit_of_measurement: "lx"

    - name: "ensolarx_sunlight_sensor2_value"
      slave: 18
      address: 55
      input_type: holding
      data_type: uint16
      unit_of_measurement: "lx"

    - name: "ensolarx_sunlight_sensor3_value"
      slave: 18
      address: 56
      input_type: holding
      data_type: uint16
      unit_of_measurement: "lx"

    # ? Zegar RTC (ostatnie dane)
    - name: "ensolarx_last_data_year"
      slave: 18
      address: 101
      input_type: holding
      data_type: uint16

    - name: "ensolarx_last_data_month"
      slave: 18
      address: 102
      input_type: holding
      data_type: uint16

    - name: "ensolarx_last_data_day"
      slave: 18
      address: 103
      input_type: holding
      data_type: uint16

    - name: "ensolarx_last_data_hour"
      slave: 18
      address: 104
      input_type: holding
      data_type: uint16

    - name: "ensolarx_last_data_min"
      slave: 18
      address: 105
      input_type: holding
      data_type: uint16

    - name: "ensolarx_last_data_sec"
      slave: 18
      address: 106
      input_type: holding
      data_type: uint16

    # ? Wersje oprogramowania
    - name: "ensolarx_firmware_version"
      slave: 18
      address: 107
      input_type: holding
      data_type: uint16

    - name: "ensolarx_wifi_firmware_version"
      slave: 18
      address: 108
      input_type: holding
      data_type: uint16

    - name: "ensolarx_10m_inv_grid_voltage"
      slave: 18
      address: 109
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"

    - name: "ensolarx_10m_inv_pv_power"
      slave: 18
      address: 110
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_10m_inv_out_power"
      slave: 18
      address: 111
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_10m_inv_bat_voltage"
      slave: 18
      address: 112
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"

    - name: "ensolarx_10m_bms_bat_pos_power"
      slave: 18
      address: 113
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_10m_bms_bat_neg_power"
      slave: 18
      address: 114
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_10m_inv_to_grid_power"
      slave: 18
      address: 115
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_10m_inv_from_grid_power"
      slave: 18
      address: 116
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_day_inv_grid_voltage"
      slave: 18
      address: 117
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"

    - name: "ensolarx_day_inv_pv_power"
      slave: 18
      address: 118
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_day_inv_out_power"
      slave: 18
      address: 119
      input_type: holding
      data_type: uint16
      unit_of_measurement: "W"

    - name: "ensolarx_day_inv_bat_voltage"
      slave: 18
      address: 120
      input_type: holding
      data_type: uint16
      unit_of_measurement: "V"

    - name: "ensolarx_day_bms_bat_pos_power"
      slave: 18
      address: 121
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_day_bms_bat_neg_power"
      slave: 18
      address: 122
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_day_inv_to_grid_power"
      slave: 18
      address: 123
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

    - name: "ensolarx_day_inv_from_grid_power"
      slave: 18
      address: 124
      input_type: holding
      data_type: int16
      unit_of_measurement: "W"

Niestety. Dzisiaj posiedziałem przy tym. Próbowałem po USB ale i Lilygo T-CAN rs485. Integracja rusza ale nie mam komunikacji z ensolarX i tym samym odczytów z sensorów.
Inne urządzenia jak falownik Deye, pompa ciepła York działają z Lilygo niestety ensolarx nie. 
Martwi mnie to co się dzieje na forum. Zero zainteresowania nawet twórcy. Chyba potwierdza się mogę przekonanie że ensolarX to taki produkt Alpha który dob pełnoprawnego urządzenia jeszcze aspiruje.
Obawiam się że zostaniemy z czymś w rodzaju półproduktu
Reply
#18
Ktoś jest w stanie pomóć?
Nie mam komunikacji z EnsolarX


esphome:
name: ensolarxlogger
comment: "ESPHome logger dla ENSolarX"
on_boot:
priority: -100
then:
- output.turn_on: enable_pin
- output.turn_on: se_pin
- output.turn_on: enable_5v_pin

esp32:
board: esp32dev
framework:
type: arduino

logger:
level: DEBUG

wifi:
ssid: "mojasiecwifi"
password: "haslo"
ap:
ssid: "ensolarxlogger Fallback Hotspot"
password: "fallback1234"

captive_portal:

api:

ota:
platform: esphome
password: ensolarx1234

web_server:
port: 80

output:
- platform: gpio
id: enable_pin
pin:
number: GPIO19
inverted: true
- platform: gpio
id: se_pin
pin:
number: GPIO17
inverted: true
- platform: gpio
id: enable_5v_pin
pin:
number: GPIO16
inverted: true

uart:
id: uart_modbus
tx_pin: GPIO22
rx_pin: GPIO21
baud_rate: 9600
stop_bits: 1
parity: NONE
data_bits: 8

modbus:
id: ensolarx_modbus

modbus_controller:
- id: ensolarx
address: 18
modbus_id: ensolarx_modbus
setup_priority: -10
update_interval: 5s
command_throttle: 50ms

sensor:
- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_protocol"
address: 0
register_type: holding
value_type: U_WORD

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv1_power"
address: 1
register_type: holding
value_type: U_WORD
unit_of_measurement: "W"

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv2_power"
address: 2
register_type: holding
value_type: U_WORD
unit_of_measurement: "W"

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv_total_power"
address: 3
register_type: holding
value_type: U_WORD
unit_of_measurement: "W"

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv1_voltage"
address: 4
register_type: holding
value_type: U_WORD
unit_of_measurement: "V"
accuracy_decimals: 1
filters:
- multiply: 0.1

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv1_current"
address: 5
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
accuracy_decimals: 1
filters:
- multiply: 0.1

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv2_voltage"
address: 6
register_type: holding
value_type: U_WORD
unit_of_measurement: "V"
accuracy_decimals: 1
filters:
- multiply: 0.1

- platform: modbus_controller
modbus_controller_id: ensolarx
name: "ensolarx_inv1_pv2_current"
address: 7
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
accuracy_decimals: 1
filters:
- multiply: 0.1
Reply
#19
1.Prosze dac znac czy podlaczal Pan konwerter do HA odlaczajac czujnik slonca ? to moze powodowac konflikt komunikacji.
2. Jak ustawiona jest komunikacja przez port RS485
• Baudrate: 9600 bps
• Długość słowa: 8 bitów
• Bity stopu: 1
• Parzystość: Brak
• Tryb: Transmisja/Odbiór (TX/RX)
bez poprawnych tych ustawień komunikacji nie będzie ,
3.Nalezy odpytywać rejestry opisane w dokumentacji z zakładki załączniki .
4. Prosze pokazac jak weryfikuje Pan komunikacje , czy dane wysylane sa prawidłowe oraz jakie , byc moze tam uda sie znalesc problem >
5. Prosze opisac jaki problem jest z połączeniem BMSa , jaki to bms jak jest podłączony , zdjęcia by duzo pomogły .
6 . Proponuje połączenie przez teamwiever , proszę zadzwonić na pewno będzie szybciej .
Reply
#20
(07-07-2025, 10:57 AM)kr@endimac.com Wrote: 1.Prosze dac znac czy podlaczal Pan konwerter do HA odlaczajac czujnik slonca ? to moze powodowac konflikt komunikacji.
2. Jak ustawiona jest komunikacja przez port RS485
• Baudrate: 9600 bps
• Długość słowa: 8 bitów
• Bity stopu: 1
• Parzystość: Brak
• Tryb: Transmisja/Odbiór (TX/RX)
bez poprawnych tych ustawień komunikacji nie będzie ,
3.Nalezy odpytywać rejestry opisane w dokumentacji z zakładki załączniki .
4. Prosze pokazac jak weryfikuje Pan komunikacje , czy dane wysylane sa prawidłowe oraz jakie , byc moze tam uda sie znalesc problem >
5. Prosze opisac jaki problem jest z połączeniem BMSa , jaki to bms jak jest podłączony , zdjęcia by duzo pomogły . 
6 . Proponuje połączenie przez teamwiever , proszę zadzwonić na pewno będzie szybciej .


Dziękuje za odpowiedź. 
Jutro się tym zajmę bo mam to i rodziców.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)