Cześć.
Śledziłem ogólnie tematy licznika dwu-kierunkowego, aby zrobić sobie odczyty i sprawdzać "ukochany Tauron". Poczytałem pobieżnie licznik + konwenter RS485 do tego np. Wemos D1 mini i szafa gra. Oczywiście poczytałem o ESPHome i tak się zdarzyło, że w głowie czytałem ESPEasy. Były dni allegro ceny niższe i kupiłem co w temacie czyli DTS-1946 z modbus. Chciałem doczytać szczegóły i klops -> ESPHome to dodatek do HA, a ja mam Domoticza i zostałem na lodzie.
PYTANIE: Czy da się jakoś ruszyć temat tego licznika na domoticzu. Szukałem lecz nic sensownego nie znalazłem; tylko integracje dla SDM630.
Do czegoś doszedłem.
1) Dzięki tematowi: Domoticz i ESPHome dowiedziałem się, że można postawić ESPHome bez HA. Mam go już w dokerze.
2) Dzięki tematowi o pluginie do domoticza: Python Plugin: MqttMapper z GITHub FlyingDomotic / domoticz-mqttmapper-plugin można to ponoć spiąć w całość.
Pytanie czy to faktycznie jest możliwe do zrobienia, czy się da i jak to będzie wyglądać ze stabilnością. W sumie mam niecałe 2 tyg. by sprawdzić. Podpowiedzi mile widziane gdyby ktoś ogarniał/przetestował/używał któreś z tych dwóch w/w rzeczy. Lub nawet obydwie 🙂
Dzięki tematowi: Domoticz i ESPHome dowiedziałem się, że można postawić ESPHome bez HA. Mam go już w dokerze.
nie rozumiem, co masz w dockerze? esphome to oprogramowanie układowe dla esp8266, esp32.
nie znam tego licznika, potwierdzają w sieci, że esphome czyta dane. Możesz dane do Domoticz przesłać po mqtt, rzecz jasna z pluginem. W Domoticz musi trafić na IDX.
Wgraj esphome, na końcu dopisz co uruchomi webserver:
Dzięki tematowi: Domoticz i ESPHome dowiedziałem się, że można postawić ESPHome bez HA. Mam go już w dokerze.
nie rozumiem, co masz w dockerze? esphome to oprogramowanie układowe dla esp8266, esp32.
ESPHome to cały system (przecież wiesz) i jego mam w dokerze. Aby pisać, kompilować i wgrywać wsady do ESP.
Na chwilę obecną (kilka tyg. temu :)) ruszyło z takimi ustawieniami:
BTW w projektowaniu jest obudowa na Wemosa RS485 zasilacz itp. na szynę DIN - będzie jak będzie 🙂
Sprzętowy serial na Wemos D1 mini:
D7 RX
D6 TX
Ustawienia w liczniku:
ADDR: 2
Baud: 9600
Data: n.8.1
PROT: rTU
A skrypt konfiguracyjny jest taki (szkoda, że nie można zawijać):
esphome:
name: licznik-vcx
friendly_name: Licznik-VCX
platform: ESP8266
board: d1_mini# Enable Home Assistant API
api:
encryption:
key: "XXXXXX"ota:
password: "XXXXXX"# Example configuration entry
wifi:
ssid: "XXXXXX"
password: "XXXXXX"# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Licznik-Vcx_AP"
password: "XXXXXX"#captive_portal:
web_server:
local: true# Example configuration entry
mqtt:
broker: XXXXXX
username: homeassistant
password: "XXXXXX"logger:
level: DEBUG
baud_rate: 0uart:
id: mod_bus
#tx_pin: D6
#rx_pin: D7
tx_pin: GPIO3
rx_pin: GPIO1
baud_rate: 9600
parity: NONE
data_bits: 8
stop_bits: 1modbus:
#flow_control_pin: 23
send_wait_time: 200ms
id: mod_bus_vcxmodbus_controller:
- id: vcx
## the Modbus device addr
address: 0x2
modbus_id: mod_bus_vcx
command_throttle: 100ms
setup_priority: -10
update_interval: 5ssensor:
- 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
Trzeba brać pod uwagę parametry: update_interval: 5s
Czas nie może być mniejszy niż (send_wait_time: 200ms + command_throttle: 100ms) * ilość odpytywanych sensorów. Czyli na przykładzie wyżej: 200+100*16=4800 ms czyli prawie 5s; jeśli czas będzie za mały to będzie wywalać błędy.