Integracja licznika...
 
Powiadomienia
Wyczyść wszystko

Home Assistant Integracja licznika Chint DTSU666

18 Wpisów
4 Użytkownicy
1 Reactions
250 Wyświetleń
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Dobry wieczór, nie marnując czasu wziąłem się za integracje następnego urządzenia z HA.

Licznik mam połączony przez serwer TCP, jest to drugie urządzenie więc ustawiłem slave ID na 2 i jest komunikacja, posiłkuje się tabelą rejestru:

image

Znalazłem też inne adresy rejestru ale żadne nie działają należycie, mimo tego, że pojawiają się aktywne encje w rejestrze, to nie są to dane które odpowiadają rzeczywistym, dla przykładu ss:

image

 Tylko w Voltage phase 1, jest coś co może przypominać poprawną wartość jeśli przesuniemy przecinek.

moja konfiguracja w yaml:

image

Gdzie robię błędy?

 
Dodane : 26/01/2025 9:15 pm
(@jaketherake)
Wpisów: 33
Praktykant Donator 2K24 Donator 2K22
 

Zgodnie z tabelą modbusową licznika zmienne są zadeklarowane jako float'y. Ty masz zdefiniowane je w HA różnie, głównie jako uint. Adresy rejestrów częściowo dziesiętnie, gdzie indziej szesnastkowo. Nie jestem biegły w HA, ale sprawdziłbym odczyty licznika przed integracją najpierw w jakimś zewnętrznym narzędziu, np.: https://modbus.pl/modbus-rtu-and-tcp-ip-master-application/

 
Dodane : 27/01/2025 10:41 am
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 
image

To adresy które udało mi się odczytać, wszystko powyżej ma illegall data address, aż do 8200 lub nawet 16400 - jakieś adresy znalezione w sieci które faktycznie coś pokazują, jak z nich wyłuskać to co mnie interesuje?

image
image
image

I jeżeli zacznę od np. 8190 czytać adresy, to nie pokaże mi nic, to samo jeśli zmienię długość czytanych adresów na więcej niż 60, również nic nie pokazuje.

 
Dodane : 01/02/2025 1:41 pm
(@jaketherake)
Wpisów: 33
Praktykant Donator 2K24 Donator 2K22
 

Zmień "Data Format" na Float albo Float Swapped (zależy który będzie działał) i pokaż odczyt rejestrów 8200-8240 ponownie.

 
Dodane : 04/02/2025 10:47 am
(@steel_rat)
Wpisów: 611
Ekspert
 

Znalazłem taką instrukcję i tu są inne adresu do odczytu

https://quantumsolarpv.de/wp-content/uploads/2023/02/manual-Kehua-DTSU666-Three-phase-Smart-Meter_en.pdf

 

Ja stworzyłem sobie moduł do odczytu licznika DDSU666 za pomocą ESP8622 oraz konwertera RS232 na RS485. Działa dobrze i wysyła mim dane do Domoticza po MQTT.

Jak masz mieć dane z dwóch bajtów to zwykle musisz je połączyć i stworzyć liczbę np: B1*256+B2 albo na odwrót. Zależy od licznika. Dobrze mieć też instrukcję do niego z opisem.

 
Dodane : 14/02/2025 10:27 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Dzięki za manual, ale w jaki sposób te adresy zapisać w modbus.yaml

image
 
Dodane : 16/02/2025 10:29 pm
krskrab
(@krskrab)
Wpisów: 50
Kontrybutor
 

Prawdopodobnie tak:

modbus:
  - name: "Licznik"
    type: tcp
    host: "192.168.1.100"
    port: 502
    sensors:
      - name: "Uab"
        slave: 1
        address: 0x150AH
        input_type: input
        data_type: float32
        scan_interval: 10

      - name: "Ubc"
        slave: 1
        address: 0x150CH
        input_type: input
        data_type: float32
        scan_interval: 10

      - name: "Uca"
        slave: 1
        address: 0x150EH
        input_type: input
        data_type: float32
        scan_interval: 10
 
Dodane : 17/02/2025 9:42 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Niestety wychodzi błąd w konfiguracji, a uruchomienie go ponownie krzaczy wszystko.

image

Czy jest jakiś konwerter adresów do innej postaci?

 

 
Dodane : 17/02/2025 10:12 pm
(@jaketherake)
Wpisów: 33
Praktykant Donator 2K24 Donator 2K22
 

Zamień adresy hexadecymalne na dziesiętne (150A hex = 5368 dec) albo w deklaracji zmiennych w yaml wywal h z adresu (0x to już znaczy szesnastkowo, więc zapis powinien być address: 0x150A).

Poza tym nie pokazałeś odczytu rejestrów 8200-8240 według pierwszej tabeli modbus dla urządzenia bezpośrednio z konwertera?

 
Dodane : 17/02/2025 11:17 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Dopiero dzisiaj zrobiłem odczyt, nie zawsze mam możliwość bezpośredniego podłączenia się - rozdzielnica jest w innej lokalizacji a ja zdalnie bawię się z HA.

Zrobiłem odczyty o których mówiłeś, dla float oraz floatswapped pokazuje podobnie.

image
image
image
image
image
image
 
Dodane : 18/02/2025 6:44 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Po licznych próbach, dzięki manualowi od @steel_rat udało się zintegrować licznik do "pewnego stopnia"

image
  - name: modbus_hub
    type: tcp
    host: 192.168.18.200
    port: 502
    sensors:
      - name: Międzyfazowe L1-L2
        unit_of_measurement: V
        address: 0x150A
        scale: 1
        slave: 2
        data_type: float32

      - name: Międzyfazowe L2-L3
        unit_of_measurement: V
        address: 0x150C
        scale: 1
        slave: 2
        data_type: float32

      - name: Międzyfazowe L3-L1
        unit_of_measurement: V
        address: 0x150E
        scale: 1
        slave: 2
        data_type: float32

      - name: Napięcie L1
        unit_of_measurement: V
        address: 0x1510
        scale: 1
        slave: 2
        data_type: float32

      - name: Napięcie L2
        unit_of_measurement: V
        address: 0x1512
        scale: 1
        slave: 2
        data_type: float32

      - name: Napięcie L3
        unit_of_measurement: V
        address: 0x1514
        scale: 1
        slave: 2
        data_type: float32

      - name: Ia Prąd L1
        address: 0x1516
        slave: 2
        unit_of_measurement: "A"
        data_type: float32

      - name: Ib Prąd L2
        address: 0x1518
        slave: 2
        unit_of_measurement: "A"
        data_type: float32

      - name: Ic Prąd L3
        address: 0x151A
        slave: 2
        unit_of_measurement: "A"
        data_type: float32

      - name: Combined active power, Unit kW
        unit_of_measurement: "kW"
        address: 0x151C
        slave: 2
        data_type: float32

      - name: A-L1 phase active power, Unit kW 
        unit_of_measurement: "kW"
        address: 0x151E
        slave: 2
        data_type: float32

      - name: B-L2 phase active power, Unit kW
        unit_of_measurement: "kW"
        address: 0x1520
        slave: 2
        data_type: float32

      - name: C-L3 phase active power, Unit kW 
        unit_of_measurement: "kW"
        address: 0x1522
        slave: 2
        data_type: float32

      - name: Combined reactive power, Unit kvar
        address: 0x1524
        slave: 2
        unit_of_measurement: "kvar"
        data_type: float32

      - name: A phase reactive power, Unit kvar
        address: 0x1526
        slave: 2
        unit_of_measurement: "kvar"
        data_type: float32

      - name: B phase reactive power, Unit kvar
        address: 0x1528
        slave: 2
        unit_of_measurement: "kvar"
        data_type: float32

      - name: C phase reactive power, Unit kvar
        address: 0x152A
        slave: 2
        unit_of_measurement: "kvar"
        data_type: float32

      - name: Combined power factor
        address: 0x1534
        slave: 2
        unit_of_measurement: "W"
        data_type: float32

      - name: A phase power factor
        address: 0x1536
        slave: 2
        unit_of_measurement: "W"
        data_type: float32

      - name: B phase power factor
        address: 0x1538
        slave: 2
        unit_of_measurement: "W"
        data_type: float32

      - name: C phase power factor
        address: 0x153A
        slave: 2
        unit_of_measurement: "W"
        data_type: float32

      - name: positive total active energy(kWh) 
        address: 0x101E
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: positive A active energy
        address: 0x1020
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: positive B active energy(kWh) 
        address: 0x1022
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: positive C active energy(kWh) 
        address: 0x1024
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: negative total active energy(kWh)
        address: 0x1028
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: negative A active energy(kWh) 
        address: 0x102A
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: negative B active energy(kWh) 
        address: 0x1102C
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: negative C active energy(kWh)
        address: 0x102E
        slave: 2
        unit_of_measurement: "kWh"
        data_type: float32

      - name: Częstotliwość
        address: 0x154E
        slave: 2
        unit_of_measurement: "Hz"
        data_type: float32

Tak oto wygląda mój kod w modbus.yaml, generalnie skopiowane adresy z manuala jeden po drugim.

Zastanawia mnie tylko, dlaczego np. pokazuje zużycie tylko dla L1 - 586kWh i liczy to jako całościowe, L2 niedostępne a L3 pokazuje 0. W rzeczywistości zużycie to ok. 1120kWh.

W manualu natknąłem się na info:

image

Czy to może oznaczać, że licznik jest źle skonfigurowany z menu samego licznika?

Czy te 586kWh jest naliczone od momentu kiedy licznik jest podpięty pod modbus?

 
Dodane : 18/02/2025 10:23 pm
(@steel_rat)
Wpisów: 611
Ekspert
 

Pod tymi rejestrami masz całkowity stan licznika jak i poszczególne fazy.

101EH ImpEp (current)positive total active energy(kWh) float 2 R
1020H ImpEpA (current)positive A active energy(kWh) float 2 R
1022H ImpEpB (current)positive B active energy(kWh) float 2 R
1024H ImpEpC (current)positive C active energy(kWh) float 2 R
1028H ExpEp (current)negative total active energy(kWh) float 2 R
102AH ExpEp A (current)negative A active energy(kWh) float 2 R
102CH ExpEp B (current)negative B active energy(kWh) float 2 R
102EH ExpEp C (current)negative C active energy(kWh) float 2 R

 
Dodane : 19/02/2025 12:30 am
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Miałem błąd w kodzie z "102CH ExpEp B (current)negative B active energy(kWh) float 2 R" - dlatego ta encja była niedostępna.

Zrobiłem okno poglądowe z wszystkimi statystykami energii wyprodukowanej (u mnie 0 ponieważ nie ma PV) oraz energii zużytej z sieci. Całkowite fizyczne wskazanie licznika to 1120kWh, natomiast po modbus pokazuje tylko 593kWh i tylko na L1. Czy orientuje się ktoś od czego to zależne?

image

Dodatkowo mam jeszcze pytanie odnośnie obecnego zużycia mocy, poniżej screen a na nim kolejno: A Phase power factor, kolejno B i C - czy to zużycie samego licznika? Kafelki poniżej to Phase active power, wyświetlają się z minusem ponieważ jak rozumiem ta energia jest pobierana z sieci?

image
 
Dodane : 19/02/2025 10:18 am
(@steel_rat)
Wpisów: 611
Ekspert
 

Dla mnie negative to energia oddana do sieci.

Jak ty masz w ogóle podłączony ten licznik, trzema czy czterema przewodami.

Ten licznik bezpośrednio czy przez przekładniki podłączone. Możliwe że musisz jeszcze wartość przemnożyć przez nie.

Możesz mieć też na odwrót przekładnik podłączony wtedy będzie też moc ujemna podana.

 
Dodane : 19/02/2025 7:50 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Mam podłączony według schematu czterema żyłami przewodu WLZ w sieci TNC, bez przekładników.

 
Dodane : 19/02/2025 8:26 pm
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Udało mi się finalnie z tym licznikiem, więc piszę ostatniego posta podsumowującego dla potomnych.

Wartość zużycia (energia pobrana z sieci) kWh była błędna, ponieważ licznik liczył był podłączony pod modbus w chwili gdy miał już ponad 500kWh a liczył następne kWh dopiero od momentu podłączenia go pod magistralę, dzisiaj byłem na budowie, przywróciłem według instrukcji ustawienia fabryczne włącznie z wyczyszczeniem pamięci licznika i teraz jest pełna synchronizacja energii pobranej z sieci.

Bardzo ważne jest, i tutaj nie wiem czy przypadkiem przy ustawianiu adresu slave dla urządzenia, nie zmieniłem innych parametrów licznika - aby parametr Ct był ustawiony poprawnie, zakres jest bardzo szeroki od 1 do 9999 i jeżeli pomiar prądu podpięty jest bezpośrednio to powinien on wynosić 1.

Następnym ważnym parametrem jest nEt - n.34 to trójfazowe czteroprzewodowe a n.33 to trójfazowe trzyprzewodowe.

Należy pilnować aby parametry konfiguracji dostępne w manualu były poprawnie ustawione z pozycji licznika.

Teraz mam pełny odczyt w poprawny sposób, a jeśli chodzi o moc pobieraną, to nawet na liczniku te wartości są pokazywane jako ujemne, bezpośrednio na liczniku w W, a poprzez modbus w kW, można sobie to przeskalować.

image
Pa
Pb
Pc

Tak czy owak, czy istnieje jakiś template aby pominąć wyświetlany "-" przy aktualnym poborze mocy?

 
Dodane : 20/02/2025 7:44 pm
(@steel_rat)
Wpisów: 611
Ekspert
 

A przyjście z sieci na pewno masz od dołu licznika?

 
Dodane : 21/02/2025 12:01 pm
Gregorski reacted
(@gregorski)
Wpisów: 16
Bywalec
Autor tematu
 

Dodane przez: @steel_rat

A przyjście z sieci na pewno masz od dołu licznika?

Bingo. Zgubiła mnie rutyna przy podłączaniu, faktycznie było pomylone wejście-wyjście na liczniku.

Całość działa poprawnie, dziękuję @steel_rat za pomoc.

image

 

 
Dodane : 22/02/2025 5:56 pm
Udostępnij: