Sinotimer 3F licznik energii RS485 - integracja z HA

Więc byłoby sensownie gdybyś wrzucił całą jaką masz (albo do załącznika np. zip) albo zapodał jakiegoś linka (jeśli nie wymaga logowania).

Jak rozumiem 8N1 pochodzi stamtąd więc jeśli było OK to musi być OK, jeśli jednak były inne ustawienia to nie uzyskasz komunikacji.

dobra nie ma sprawy zaraz spróbuję

Menu w samym liczniku powinno podać rzeczywiste ustawienia.
P.S
To chyba ten licznik ?
DTS6619 manual - 3327-DDS578R-manul.zip (254,6 KB)

Chyba jednak 8E1 :slight_smile:

1.9.4 RS485 communication meter reading application (communication protocol) andregister address. The energy meter through its RS485 interface to achieve long-range copy of the table, such as electricityenergy data. And through its infrared communication interface with a handheld computer toachieveclose-up copy of the table of energy data. Encoding format, parity (even parity) and data transmission(eight data bits, a stop bit) in line with MODBUS-RTU standards. Communication baud rate defaultsto1200bps,2400bps,4800bps,9600bps

1 Like

nie mogę teraz znaleźć linku do tej instrukcji ale to chyba to samo co zamieściłeś:
natomiast na takich ustawieniach ten licznik mi sie łączył z programem modbus pull:
image
image
image

even2023-12-02_19-08

Even parity - nie None !!!
Tak to jest gdy zaczyna się z wysokim poziomem niewiedzy :wink:
8E1

no widzę, widzę, nie zmienia to faktu że i tak coś mu nie pasuje bo przy kompilacji bardzo długo miele, jak przemieli to wrzucę log bo teraz to już błędów w nim jest sporo

EDIT:

no to mnie zaskoczył HA :thinking::

teraz to już jestem w szoku :astonished::
image

jest pomiar,
bardzo ale to bardzo dziękuję za pomoc :+1: :hugs:
zabieram się do odczytów pozostałych pomiarów z tego licznika

jakby sie komuś przydała konfiguracja dla tego licznika to wrzucam ostateczną działającą wersję, żeby odczyty się pojawiły konieczny jest restart HA (nie wystarczy restart samego configu):

# konfiguracja MODBUS
modbus:
  - name: licznik SINOTIMER
    type: serial
    port: /dev/ttyUSB0
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: E
    stopbits: 1
    sensors:
  # konfiguracja dla odczytów licznika SINOTIMER
      - name: SINOTIMER pomiar U L1
        unit_of_measurement: V
        slave: 25
        address: 02
        input_type: input
        data_type: float32
        precision: 2

To ostatecznie wrzuć cały konfig, który wywalczysz

poza konkurencją (wspominałem, ale pominąłeś)

    port: /dev/ttyUSB0

zastąpiłbym taką konstrukcją

    port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

ALE UWAGA to jest konwerter na bazie mostka USB-serial QinHeng, a konkretniej jakiejś odmianie WCH340
to niestety bardzo popularny mostek stosowany chętnie w chińskiej elektronice, więc jest prawdopodobne, że jeszcze kiedyś trafisz na urządzanie bazujące na podobnym mostku, które się przedstawi dokładnie tak samo!

Jeśli w “całym sprzęcie” sobie rozwiniesz to co pokazałeś gdzieś tam wyżej, to w środku znajdziesz coś podobnego do tego:

DEVLINKS: >-
  /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
  /dev/serial/by-path/pci-0000:00:15.0-usb-0:4:1.0-port0
DEVNAME: /dev/ttyUSB0
DEVPATH: /devices/pci0000:00/0000:00:15.0/usb1/1-4/1-4:1.0/ttyUSB0/tty/ttyUSB0
ID_BUS: usb
ID_MODEL: USB_Serial
ID_MODEL_ENC: USB\x20Serial
ID_MODEL_ID: '7523'
ID_PATH: pci-0000:00:15.0-usb-0:4:1.0
ID_PATH_TAG: pci-0000_00_15_0-usb-0_4_1_0
ID_REVISION: '0264'
ID_SERIAL: 1a86_USB_Serial
ID_TYPE: generic
ID_USB_DRIVER: ch341
ID_USB_INTERFACES: ':ff0102:'
ID_USB_INTERFACE_NUM: '00'
ID_USB_MODEL: USB_Serial
ID_USB_MODEL_ENC: USB\x20Serial
ID_USB_MODEL_ID: '7523'
ID_USB_REVISION: '0264'
ID_USB_SERIAL: 1a86_USB_Serial
ID_USB_TYPE: generic
ID_USB_VENDOR: 1a86
ID_USB_VENDOR_ENC: 1a86
ID_USB_VENDOR_ID: 1a86
ID_VENDOR: 1a86
ID_VENDOR_ENC: 1a86
ID_VENDOR_ID: 1a86
MAJOR: '188'
MINOR: '0'
SUBSYSTEM: tty
TAGS: ':systemd:'
USEC_INITIALIZED: '2860016'

więc ostatecznie można podać też ścieżkę “po porcie” - jeśli zdecydujesz w którym gniazdku USB jest to zawsze podpięte, to możesz wykorzystać ścieżkę “by-path”
która bezwzględnie jest zawsze taka sama dla urządzenia wpiętego do tego samego gniazda USB
u mnie to by było przykładowo jak dla konfiguracji sprzętu z wklejki powyżej:

    port: /dev/serial/by-path/pci-0000:00:15.0-usb-0:4:1.0-port0

podam rozpiskę portów jak sie z tym uporam, a port USB (konfigurację) zmienię jak polecasz ale to dopiero jak sie uporam z innymi rzeczami, na razie skoro działa to musze to uporządkować

EDIT:

PODSUMOWANIE WĄTKU:

Liczniki SINOTIMER DTS6619 MODBUS RTU działają w HA,
uzyskałem odczyty wszystkich parametrów jakie podaje licznik i wszystkie są prezentowane w HA,
poniżej wstawiam rozpiskę portów, oraz instrukcje dla HA jakie należy wstawić do configuration.yaml aby uzyskać odczyty,
może się komuś przyda:

- rozpiska portów dla poszczególnych pomiarów:

Data register list:
Data register address - Register Description
HI BYte - LO Byte - HA address - Description - unit
00 00 - 0 - A phase voltage - V
00 02 - 2 - B phase voltage - V
00 04 - 4 - C phase voltage - V

00 06 - 6 - Total curent - A (tego nie ma w instrukcji, ale pomiar jest)
00 08 - 8 - A line current - A
00 0A - 10 - B line current - A
00 0C - 12 - C line current - A

00 10 - 16 - Total active power - W
00 12 - 18 - A phase active power - W
00 14 - 20 - B phase active power - W
00 16 - 22 - C phase active power - W

00 18 - 24 - Total reactive power - VAr
00 1A - 26 - A phase reactive power - VAr
00 1C - 28 - B phase reactive power - VAr
00 1E - 30 - C phase reactive power - VAr

00 2A - 42 - A phase power factor - cos
00 2C - 44 - B phase power factor - cos
00 2E - 46 - C phase power factor - cos

00 36 - 54 - frequency - Hz
01 00 - 256 - Total active electricity power - Wh
04 00 - 1024 - Total reactive electricity power - VArh

- oraz przykładowe zapisy w configu:
(oprócz adresu pomiaru podstawiamy tylko właściwy adres licznika odczytany z niego samego - w moim przykładzie jest to adres 131)

# konfiguracja MODBUS
modbus:
  - name: licznik SINOTIMER
    type: serial
    port: /dev/ttyUSB0
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: E
    stopbits: 1
    sensors:
# konfiguracja dla odczytów licznika SINOTIMER "DOM" (ADD:131)

      - name: DOM 0 pomiar V L1
        unit_of_measurement: V
        slave: 131
        address: 0
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 2 pomiar V L2
        unit_of_measurement: V
        slave: 131
        address: 2
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 4 pomiar V L3
        unit_of_measurement: V
        slave: 131
        address: 4
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 6 pomiar A TOTAL
        unit_of_measurement: A
        slave: 131
        address: 6
        input_type: input
        data_type: float32
        precision: 2
                
      - name: DOM 8 pomiar A L1
        unit_of_measurement: A
        slave: 131
        address: 8
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 10 pomiar A L2
        unit_of_measurement: A
        slave: 131
        address: 10
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 12 pomiar A L3
        unit_of_measurement: A
        slave: 131
        address: 12
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 16 pomiar W TOTAL
        unit_of_measurement: W
        slave: 131
        address: 16
        input_type: input
        data_type: float32
        precision: 2
                
      - name: DOM 18 pomiar W L1
        unit_of_measurement: W
        slave: 131
        address: 18
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 20 pomiar W L2
        unit_of_measurement: W
        slave: 131
        address: 20
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 22 pomiar W L3
        unit_of_measurement: W
        slave: 131
        address: 22
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 24 pomiar Var TOTAL
        unit_of_measurement: Var
        slave: 131
        address: 24
        input_type: input
        data_type: float32
        precision: 2
                
      - name: DOM 26 pomiar Var L1
        unit_of_measurement: Var
        slave: 131
        address: 26
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 28 pomiar Var L2
        unit_of_measurement: Var
        slave: 131
        address: 28
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 30 pomiar Var L3
        unit_of_measurement: Var
        slave: 131
        address: 30
        input_type: input
        data_type: float32
        precision: 2
                                
      - name: DOM 42 pomiar cos L1
        unit_of_measurement: cos
        slave: 131
        address: 42
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 44 pomiar cos L2
        unit_of_measurement: cos
        slave: 131
        address: 44
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 46 pomiar cos L3
        unit_of_measurement: cos
        slave: 131
        address: 46
        input_type: input
        data_type: float32
        precision: 2
    
      - name: DOM 54 pomiar Hz
        unit_of_measurement: Hz
        slave: 131
        address: 54
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 256 pomiar Wh total
        unit_of_measurement: Wh
        slave: 131
        address: 256
        input_type: input
        data_type: float32
        precision: 2
        
      - name: DOM 1024 pomiar Varh
        unit_of_measurement: Varh
        slave: 131
        address: 1024
        input_type: input
        data_type: float32
        precision: 2
  • tak jak pisał powyżej kolega @szopen zamiast wskazania portu USB (port: /dev/ttyUSB0) można wstawić jego dokładny adres (przykład w poście powyżej)

  • i jeszcze ważna uwaga, żeby pomiary zaskoczyły konieczny jest restart HA, restart samego configu nie wystarczy.

to tyle,
dziękuję wszystkim za pomoc :+1:

1 Like

Cześć

Możesz powiedzieć, jak przez ten czas spisuje się ten licznik? Produkują też zdalny rozłącznik 3F 4P, i to 63A, jednak niska cena trochę mnie stresuje, boję się o jakość.

cześć, co do liczników nie mam zastrzeżeń działają świetnie i podają wszystkie parametry które potrzebuję, przez pewien czas miałem problem z komunikacją i nie miałem odczytów, jak w końcu znalazłem czas żeby do tego przysiąść i zrobić to okazało się że padnięty był konwerter USB RS485, po wymianie działaja znowu, konwerter to element zewnętrzny więc nie była to wina liczników. U mnie pracuja 4 takie liczniki, dla pompy ciepła, dla dwóch instalacji PV i dla samego domu, tak więc mam porozdzielane pobory dla każdych odbiorów czy dla produkcji z PV.
pozdrawiam

1 Like

Dzięki za odpowiedź.