VCX-1946 jak podpiąć do HA?

Kupiłem licznik jak w temacie. W opiniach allegro piszą o łatwej integracji z HA, ja szukam, grzebię i nie potrafię znaleźć żadnego info jak ten licznik dodać do HA. Modbus-rtu ponoć. Ale co dalej? Nic się “automagicznie” dziać nie chce. Interfejs RS485 podłączony, port usb podłączony do VM z HA. Ale co dalej?

Poczytaj:
Licznik energii dwukierunkowy VCX DTS-1964 + ESPHome + Home Asistant - Home Assistant / Integracje - ArturHome
oraz w tematach integracji SDM630 i tym podobnych.

Po restarcie całej VM zaczęło odczytywać dane z licznika. Ale jeszcze jeden problem. Moc chwilowa podawana jest w jednostkach x10Wh. Zatem potrzebuję pomnożyć wynik x 10. Ale w poniższym 100W pobór pokazuje jako 0,10W. Czyli wynik trzeba pomnożyć x 1000 i później ew. pozbyć się przecinka i liczb po. Kombinuję ze state oraz value_template i ciągle błędy. Podpowiecie co mam nie tak?

- name: Moc chwilowa pobór
        unit_of_measurement: W
        unique_id: “mocchwilowapobor”
        device_class: power
        slave: 2
        address: 0x18
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        value_template: '{{ states("sensor.moc_chwilowa_pobor") | multiply(1000) }}'
       #state: "{{ states('sensor.moc_chwilowa_pobor') * 1000 }}"
 The system cannot restart because the configuration is not valid: Invalid config for [modbus]: [value_template] is an invalid option for [modbus]. Check: modbus->modbus->0->sensors->9->value_template. (See /config/configuration.yaml, line 20). 

Dodaj: scale: 1000 pod precision: 2.
Value_template to “inna bajka” i nie możesz tu użyć bo nie korzystasz z platformy template.

Ok, to co mogę zrobić aby zmodyfikować wskazanie?

dopisz na końcu to co dopisałem, usuń value…

Kurcze, jakie to było proste. A ja czytam dokumentację i na coś takiego nie natrafiłem. Zasugerowałem się że wszędzie używane są te 2 wpisy. Jak uda mi się w końcu dojść rejestry w liczniku to zamieszczę tutaj konfigurację.

Tutaj większość potrzebnych rzeczy masz, tylko przerobić:

Tak, tak, nie mogę jeszcze znaleźć chwilowej mocy oddawanej, ale to może jutro jak słońce będzie. Być może moc chwilowa zmieni znak na ujemny. Zobaczymy.

Chwilowa jest jako ujemna.as wszystko u mnie w configu

Ok, czyli czeka mnie szukanie kolejnego “myku” który ujemną przekonwertuje za sensor który da się podpiąć w zakładce energia pod produkcję… Pewnie jest to proste, ale nie dla nowicjusza…

moc czynna pobrana:

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

moc czynna oddana:

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


Zmodyfikowałem wpisy powodujące błędy. Licznik nie pokazuje też na której facie odbywa się oddawanie prądu a na której pobór. Prąd jest zawsze ze znakiem dodatnim. To spora wada dla mnie. Mam np.produkcję energii na poziomie 100W, ale wszystkie fazy pokazują ponad 1A przepływu, więc ewidentnie na jednej jest pobór, na drugiej oddanie.
Działający config do wklejenia w configuration.yaml. Id licznika 2, n.8.1, rtu.

modbus:
  - name: hub1
    type: serial
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: N
    port: /dev/ttyUSB0
    stopbits: 1
    sensors:
      - name: U L1
        unit_of_measurement: V
        unique_id: “L1_napiecie”
        device_class: power
        slave: 2
        address: 0x0
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: U L2
        unit_of_measurement: V
        unique_id: “L2_napiecie”
        device_class: power
        slave: 2
        address: 0x2
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: U L3
        unit_of_measurement: V
        unique_id: “L3_napiecie”
        device_class: power
        slave: 2
        address: 0x4
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: I L1
        unit_of_measurement: A
        unique_id: “L1_prad”
        device_class: power
        slave: 2
        address: 0xC
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: I L2
        unique_id: “L2_prad”
        unit_of_measurement: A
        device_class: power
        slave: 2
        address: 0xE
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: I L3
        unique_id: “L3_prad”
        unit_of_measurement: A
        device_class: power
        slave: 2
        address: 0x10
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: Moc pobrana
        unique_id: “mocpobrana”
        #id: moc_czynna_pobrana
        #register_type: read
        #icon: mdi:circle-slice-3
        device_class: energy
        state_class: total_increasing
        address: 0x034
        unit_of_measurement: "kWh"
        data_type: float32
        precision: 2
        #skip_updates: 60
      - name: Moc oddana
        unique_id: “mocoddana”
        #id: moc_czynna_oddana
        #register_type: read
        #icon: mdi:circle-slice-3
        device_class: energy
        state_class: total_increasing
        address: 0x036
        unit_of_measurement: "kWh"
        data_type: float32
        precision: 2
        #skip_updates: 60
      - name: Moc chwilowa
        unit_of_measurement: W
        unique_id: “mocchwilowa”
        device_class: power
        slave: 2
        address: 0x18
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        scale: 1000

Ale moc czynną pokazuje na każdej z faz ze znakiem plus lub minus.

Ok, zatem:

modbus:
  - name: hub1
    type: serial
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: N
    port: /dev/ttyUSB0
    stopbits: 1
    sensors:
      - name: U L1
        unit_of_measurement: V
        unique_id: “L1_napiecie”
        device_class: power
        slave: 2
        address: 0x0
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: U L2
        unit_of_measurement: V
        unique_id: “L2_napiecie”
        device_class: power
        slave: 2
        address: 0x2
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: U L3
        unit_of_measurement: V
        unique_id: “L3_napiecie”
        device_class: power
        slave: 2
        address: 0x4
        input_type: input
        count: 2
        data_type: float32
        precision: 2
      - name: Moc pobrana
        unique_id: “mocpobrana”
        device_class: energy
        state_class: total_increasing
        address: 0x034
        unit_of_measurement: "kWh"
        data_type: float32
        precision: 2
      - name: Moc oddana
        unique_id: “mocoddana”
        device_class: energy
        state_class: total_increasing
        address: 0x036
        unit_of_measurement: "kWh"
        data_type: float32
        precision: 2
      - name: Moc chwilowa
        unit_of_measurement: W
        unique_id: “mocchwilowa”
        device_class: power
        slave: 2
        address: 0x18
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        scale: 1000
      - name: P L1
        unit_of_measurement: W
        unique_id: “L1_moc”
        device_class: power
        slave: 2
        address: 0x12
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        scale: 1000
      - name: P L2
        unique_id: “L2_moc”
        unit_of_measurement: W
        device_class: power
        slave: 2
        address: 0x14
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        scale: 1000
      - name: P L3
        unique_id: “L3_moc”
        unit_of_measurement: W
        device_class: power
        slave: 2
        address: 0x16
        input_type: input
        count: 2
        data_type: float32
        precision: 2
        scale: 1000
1 Like