Nie używam ESPHome do Modbusa.
A co lepiej używać?
Można wemos D1 użyć jako pośrednik modbus a Mqtt?
Sorry ale nie zrozumiałem pytania.
To czego używasz skoro nie espHome?
Nie używam ESPHome do Modbusa bo mam połączenie po kablu dlatego nie jest wstanie pomóc w kwestii konfiguracji ESPHome pod Modbus Controller — ESPHome.
zrobiłem i działa.
jakby ktoś potrzebował to wrzucam kod z esphome.
za pare dni opowiem jak wyglądają wskazania w porównaniu z Iskra od Tauronu
logger:
level: DEBUG
baud_rate: 0
uart:
id: mod_bus
tx_pin: D6
rx_pin: D7
baud_rate: 9600
stop_bits: 1
modbus:
#flow_control_pin: 23
send_wait_time: 200ms
id: mod_bus_vcx
modbus_controller:
- id: vcx
## the Modbus device addr
address: 0x1
modbus_id: mod_bus_vcx
command_throttle: 100ms
setup_priority: -10
update_interval: 1s
sensor:
- platform: modbus_controller
id: faza_l1_napiecie
name: "Faza L1 napięcie"
state_class: measurement
register_type: read
address: 0x200
unit_of_measurement: "V"
value_type: S_WORD
accuracy_decimals: 2
# skip_updates: 60
filters:
- multiply: 0.1
- platform: modbus_controller
id: faza_l2_napiecie
name: "Faza L2 napięcie"
state_class: measurement
register_type: read
address: 0x201
unit_of_measurement: "V"
value_type: S_WORD
accuracy_decimals: 2
# skip_updates: 60
filters:
- multiply: 0.1
- platform: modbus_controller
id: faza_l3_napiecie
name: "Faza L3 napięcie"
address: 0x202
state_class: measurement
unit_of_measurement: "V"
register_type: read
value_type: S_WORD
accuracy_decimals: 2
# skip_updates: 60
filters:
- multiply: 0.1
- platform: modbus_controller
id: czestotliwosc
name: "Częstotliwość"
register_type: read
state_class: measurement
address: 0x219
unit_of_measurement: "Hz"
value_type: S_WORD
accuracy_decimals: 2
# skip_updates: 60
filters:
- multiply: 0.01
- platform: modbus_controller
id: faza_l1_prad
name: "Faza L1 prąd"
register_type: read
state_class: measurement
address: 0x206
unit_of_measurement: "A"
value_type: S_WORD
accuracy_decimals: 3
# skip_updates: 60
filters:
- multiply: 0.001
- platform: modbus_controller
id: faza_l2_prad
name: "Faza L2 prąd"
register_type: read
state_class: measurement
address: 0x207
unit_of_measurement: "A"
value_type: S_WORD
accuracy_decimals: 3
# skip_updates: 60
filters:
- multiply: 0.001
- platform: modbus_controller
id: faza_l3_prad
name: "Faza L3 prąd"
register_type: read
state_class: measurement
address: 0x208
unit_of_measurement: "A"
value_type: S_WORD
accuracy_decimals: 3
# skip_updates: 60
filters:
- multiply: 0.001
- platform: modbus_controller
id: faza_l1_moc_czynna
name: "Faza L1 moc czynna"
register_type: read
state_class: measurement
address: 0x209
unit_of_measurement: "W"
value_type: S_WORD
# accuracy_decimals: 2
# skip_updates: 60
#filters:
# - multiply: 10
- platform: modbus_controller
id: faza_l2_moc_czynna
name: "Faza L2 moc czynna"
register_type: read
state_class: measurement
address: 0x20A
unit_of_measurement: "W"
value_type: S_WORD
# accuracy_decimals: 2
# skip_updates: 60
#filters:
# - multiply: 10
- platform: modbus_controller
id: faza_l3_moc_czynna
name: "Faza L3 moc czynna"
register_type: read
state_class: measurement
address: 0x20B
unit_of_measurement: "W"
value_type: S_WORD
# accuracy_decimals: 2
# skip_updates: 60
#filters:
# - multiply: 10
- platform: modbus_controller
id: calkowita_moc_czynna
name: "Całkowita moc czynna"
register_type: read
state_class: measurement
address: 0x20C
unit_of_measurement: "kW"
value_type: S_WORD
accuracy_decimals: 3
# skip_updates: 300
filters:
- multiply: 0.001
- platform: modbus_controller
id: moc_czynna_pobrana
name: "Moc czynna pobrana"
register_type: read
icon: mdi:circle-slice-3
device_class: energy
state_class: total_increasing
address: 0x034
unit_of_measurement: "kWh"
value_type: FP32
accuracy_decimals: 1
skip_updates: 60
# filters:
# - multiply: 0.01
- platform: modbus_controller
id: moc_czynna_oddana
name: "Moc czynna oddana"
register_type: read
icon: mdi:circle-slice-3
device_class: energy
state_class: total_increasing
address: 0x036
unit_of_measurement: "kWh"
value_type: FP32
accuracy_decimals: 1
skip_updates: 60
# filters:
# - multiply: 0.01
- platform: modbus_controller
id: faza_l1_cos
name: "Faza L1 cosφ"
register_type: read
state_class: measurement
address: 0x215
unit_of_measurement: ""
value_type: S_WORD
accuracy_decimals: 2
skip_updates: 5
filters:
- multiply: 0.001
- platform: modbus_controller
id: faza_l2_cos
name: "Faza L2 cosφ"
register_type: read
state_class: measurement
address: 0x216
unit_of_measurement: ""
value_type: S_WORD
accuracy_decimals: 2
skip_updates: 5
filters:
- multiply: 0.001
- platform: modbus_controller
id: faza_l3_cos
name: "Faza L3 cosφ"
register_type: read
state_class: measurement
address: 0x217
unit_of_measurement: ""
value_type: S_WORD
accuracy_decimals: 2
skip_updates: 5
filters:
- multiply: 0.001
Takie same wskazania, sprawdzałem kilka dni z rzędu
dzięki, bo mam 2 do zamontowania, jeden na cały dom, drugi tylko na pompę ciepła.
Na PC to uważam że jest przerost formy. Lepiej dać zwykły i czytać impulsy. Zaoszczędzisz 100 zl
Możesz polecić jakiś licznik, impulsy lub zużytą energie mogę czytać po skrętce (modbus ) ?
Ja do pompy ciepła mam Zamel LEM30, z wyjściem impulsowym (chociaż ja czytam mrugnięcia diody) do tego ESPhome i przelicza impulsy na zużycie. Jak go montowałem to nie myślałem jeszcze o Home Assistant
Ale jak musi być na modbus to faktycznie jak na szybko przejrzałem to nie znajdziesz taniej niż VCX1964 lub SDM72D-M (około 230 - 260 zł)
Taniej możesz tylko na trzech modułach PZEM004t z cewkami, z tego co pamiętam one latają na modbus, ale w Polsce ciężko będzie ci je znaleźć w dobrej cenie. Ja pamiętam że ściągałem z Chin i wyszło mnie ok 100 - 120 zł chyba na shopee była najlepsza cena.
Dzięki pomocy autora wsadu udało mi się uruchomić komunikacje . Zmyliło mnie podłączenie TX do RX jak przy programowaniu a powinno być TX do TX. Aby ruszyła komunikacja należy najpierw uruchomić vemos d1 a następnie konwerter .Niestety przy zaniku zasilania esp trzeba by było znowu powtórzyć operacie, żeby tego uniknąć zastosowałem układ dd04cvsa na 5v i baterie lijon i przetwornice 230v/5v.
Oczywiście fizycznie musi być TX do RX (bo tylko wtedy działa komunikacja szeregowa - łączysz zawsze nadajnik Tx z odbiornikiem Rx oczywiście o ile opis wyprowadzeń jest poprawny), tylko po prostu po jednej stronie wyprowadzenia są opisane niezgodnie z powszechnym zwyczajem (to wbrew pozorom zdarza się dość często, więc zamiana Tx z Rx jest jednym z podstawowych kroków diagnostyki przy uruchamianiu połączenia portem szeregowym).
Też tak myślałem i niestety cały czas dostawałem błędy w logach ,konwerter mam taki sam jak na rysunku na stronie projektu Esphome i opisy rozszerzeń. Dlatego wstawiłem tu tą informacje gdyby ktoś też miał z tym problem .
powodem tego, że nie chcą się razem uruchomić może być użycie pinu D8, trzeba by spróbować z innym.
Na innych z tego co pamiętam nie chciało działać. Ale sprawdzę jak będę miał czas
Największa wada rozwiązania opartego na zliczaniu impulsów to konieczność kalibracji wartości początkowej przy każdych problemach z rozwiązaniem, np. zawieszenie, wyłączenie, itd.
W przypadku Modbusa poprostu odczytujesz wartości z licznika.
Tak zgadzam się. Ale jak wrzucasz to do energy panel to nie robi różnicy czy pokrywa się z odczytem
VCX sobie bardzo dobrze działa, wreszcie kompletna zakładka energia w HA
Zastanawiam się czy nie założyć drugiego zaraz za Sofarem, bo integracja zczytujaca dane z Sofara czasem pobiera przekłamane dane. Ale to wina loggera w Sofarze i chińczyków a nie integracji.