Eastron sdm72d-m

Bardzo dziękuję…
Wgrałem ten bin do wemosa… ale o ile w pliku tasmota-sensors.bin jest możliwość wybrania mojego licznika do tx i rx i wygląda to tak:


to w tym pliku, nie ma możliwości wybrania żadnego licznika, a po wybraniu tx i rx, dla generic-nic nie pokazuje…

w nim nie ma do wyboru żadnego licznika.

Czytam, czytam i jednak bez własnej kompilacji się nie obędzie…

Proponuję najłatwiejszą (moim zdaniem) metodę z użyciem wspomnianego wyżej projektu TasmoCompiler. Potrzebne jest jedynie konto na GitHub.



Po chwili gdy kontener w chmurze uruchomi serwer z WebUI TasmoCompiler, pozostanie zezwolić przeglądarce na otworzenie nowego okna.

Można działać prowadzony jak za rączkę:

W kroku 4 dodajemy parametry użytkownika, które dokładają interesujące nas funkcje dodatkowe do oprogramowania:

#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifndef USE_SML_M
#define USE_SML_M
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif

#define USE_SDM72                                // Add support for Eastron SDM72-Modbus energy monitor (+0k3 code)
  #define SDM72_SPEED          9600              // SDM72-Modbus RS485 serial speed (default: 9600 baud)
   #define SDM72_IMPEXP                            // Show additonal import/export active energy and power in MQTT and Web (+0k5 code)

Mamy po chwili skompilowany plik bin do pobrania (1) oraz ewentualnie plik z ustawieniami user_config_override.h (2) dla zapisania na przyszłość.

Po wgraniu pliku bin i skonfigurowaniu modułu pod SDM72 przechodzimy do konsol, gdzie mamy dodatkową zakładkę dla edycji skryptów.

Zakładka edytuj skrypt - pozwala na skopiowanie skryptu z dokumentacji dotyczącej SDM72 i zapisanie go.

Nie mam możliwości dalszego testowania skryptu z uwagi na to, że nie mam tego licznika. Prawdopodobnie wiersz nr 5 odpowiada za konfigurację odczytu GPIO i mapę rejestrów.

+1,25,mN1,0,9600,SDM72D,26,1,01040000,01040002,01040004,01040006,01040008,0104000a,0104000c,0104000e,01040010,01040012,01040014,01040016,01040018,0104001a,0104001c,0104001e,01040020,01040022,0104002a,0104002e,01040030,01040034,01040038,0104003c,0104003e,01040046,01040048,0104004A,01040156,01040158,0104018c,01040500,01040502

Może teraz będzie łatwiej postawić kolejne kroki i ktoś mocniejszy w skryptach czy samym ModBus rozwikła jego zapisy.

Garść pomocy może znajdzie w tym temacie, na innym forum:

Wiesz co…bardzo Ci dziękuję…biorę się za lekturę, pewnie będę dopytywał, ale mam co robić…bardzo dziękuję.

A więc tak:
Po trudnościach z złożeniem konta, trochę inne okienka się otwierały, ale w końcu poradziłem.
Wykompilowałem sobie ten plik, w kroku 4 podałem też te wartości które podałeś…
Wyszło mi coś takiego:

A więc już jest dobrze…
Później dodałem ten skrypt, jednak nic nie wyświetla,są same zera…


Być może trzeba coś pozmieniać, ale jeszcze nie wiem co…
I teraz najlepsze…coś mnie podkusiło żeby zamiast mojego licznika sdm72, wybrać licznik sdm630…
I pojawiło się coś takiego…

Już wcześniej próbowałem na niepodłączonym liczniku wybrać sdm630 i widziałem że pokazuje inne dane, ale nie myśłałem że je odczyta…
A więc mimo że inny licznik, to czyta z niego: napięcie, prąd, moc…na poszczególnych fazach, nie czyta tylko energii…
Może teraz komuś coś przyjdzie do głowy, bo gdyby "połączył jeden z drugim)…to było by wszystko co potrzeba.

1 polubienie

Myślę, że tu jest kluczowa informacja:

Dziękuję…lektura na weekend.

… a tak jojczyłeś :+1: :wink:

Teraz porównaj czy te odczyty są realne i zgodne z licznikiem. Gdy porównasz z dokumentacji adresy rejestrów dla tych dwóch liczników - to sam poprawisz różnice.

Gdyby mnie kol. @angler nie poprowadził, to nic by z tego nie było…
Już wcześniej wiedziałem że można komilować tasmote, ale nie wiedział bym jak…, jeszcze raz dzięki…
Na jakim kolwiek forum jest tak, że początkujący zawsze ma pod górkę, chyba że ktoś pokaże co i jak, to potem jest łatwiej…

Te dczyty, które sa przy sdm72…

są poprawne…

Te z odczytu 3 faz, gdy ustawię sdm630,

-też są poprawne… sprawdzane z mew01…tylko jak to połączyć…o to jest pytanie.

Pod każdym z obrazkow zalącz skrypty, do jest dość proste do rozszyfrowania… spróbuje

Ale jak skrypty ?, bo takie odczyty są po wybraniu licznika w konfiguracji, ja nie dawałem żadnych skryptów.

To kto to napisał?

Podaj skrypty dla licznika SDM72 i osobny dla SDM630, te z dokumentacji Tasmota. Nadal nie rozumiesz co robisz, bo nie wiesz co ten skrypt robi. Tak jak jest napisane w dokumentacji:

Skrypt odczytuje dane z konkretnych rejestrów Modbus i publikuje do MQTT, tak aby było to zrozumiałe dla innych systemów i przy okazji wyświetla wyniki na WebUI urządzenia Tasmota.

Dodałem ten skrypt który mi podałeś, ale też napisałem że nic nie zmienił, poza tym że wyświetlają się same zera…

>D
>B
->sensor53 r
>M 1
+1,25,mN1,0,9600,SDM72D,26,1,01040000,01040002,01040004,01040006,01040008,0104000a,0104000c,0104000e,01040010,01040012,01040014,01040016,01040018,0104001a,0104001c,0104001e,01040020,01040022,0104002a,0104002e,01040030,01040034,01040038,0104003c,0104003e,01040046,01040048,0104004A,01040156,01040158,0104018c,01040500,01040502
1,010404ffffffff@i0:1,Voltage P1,V,voltage_phase1,2
1,010404ffffffff@i1:1,Voltage P2,V,voltage_phase2,2
1,010404ffffffff@i2:1,Voltage P3,V,voltage_phase3,2
1,010404ffffffff@i3:1,Current P1,A,current_phase1,2
1,010404ffffffff@i4:1,Current P2,A,current_phase2,2
1,010404ffffffff@i5:1,Current P3,A,current_phase3,2
1,010404ffffffff@i6:1,Power P1,W,power_phase1,2
1,010404ffffffff@i7:1,Power P2,W,power_phase2,2
1,010404ffffffff@i8:1,Power P3,W,power_phase3,2
1,010404ffffffff@i9:1,Power Apparent P1,VA,power_apparent_phase1,2
1,010404ffffffff@i10:1,Power Apparent P2,VA,power_apparent_phase2,2
1,010404ffffffff@i11:1,Power Apparent P3,VA,power_apparent_phase3,2
1,010404ffffffff@i12:1,Power Reactive P1,VAr,power_reactive_phase1,2
1,010404ffffffff@i13:1,Power Reactive P2,VAr,power_reactive_phase2,2
1,010404ffffffff@i14:1,Power Reactive P3,VAr,power_reactive_phase3,2
1,010404ffffffff@i15:1,Power Factor P1,,power_factor_phase1,2
1,010404ffffffff@i16:1,Power Factor P2,,power_factor_phase2,2
1,010404ffffffff@i17:1,Power Factor P3,,power_factor_phase3,2
1,010404ffffffff@i18:1,Average Voltage,V,voltage_avg,2
1,010404ffffffff@i19:1,Average Current,A,current_avg,2
1,010404ffffffff@i20:1,Current Total,A,current_total,2
1,010404ffffffff@i21:1,Power Total,W,power_total,2
1,010404ffffffff@i22:1,Power Apparent Total,VA,power_apparent_total,2
1,010404ffffffff@i23:1,Power Reactive Total,VAr,power_reactive_total,2
1,010404ffffffff@i24:1,Power Factor Total,,power_factor_total,2
1,010404ffffffff@i25:1,Frequency,Hz,frequency,2
1,010404ffffffff@i26:1,Energy Imported,kWh,energy_imported,3
1,010404ffffffff@i27:1,Energy Exported,kWh,energy_exported,3
1,010404ffffffff@i28:1,Energy Total,kWh,energy_total,3
1,010404ffffffff@i29:1,Energy Reactive Total,kVArh,energy_reactive_total,3
1,010404ffffffff@i30:1,Net Energy,kWh,energy_net,3
1,010404ffffffff@i31:1,Import Power,W,power_import,2
1,010404ffffffff@i32:1,Export Power,W,power_export,2
#

Zapisy tych skryptów są w miare zrozumiałe. Jesli widzial bym skrypt i wynik jego dzialania to chyba to rozkminie.

01040000,01040002,01040004,01040006,01040008,0104000a,0104000c,0104000e,01040010,01040012,01040014,01040016,01040018,0104001a,0104001c,0104001e,01040020,01040022,0104002a,0104002e,01040030,01040034,01040038,0104003c,01040

…to jest odczyt kolejnych adresów modbuss
01 - ID licznika
04 - kod funkcji - read input
0000
0002 …itd adresy ( nie nr, rejastrów)

Następnie… w kolejności odczytywania mam wyniki na stronce

1,010404ffffffff@i0:1,Voltage P1,V,voltage_phase1,2
1,010404ffffffff@i1:1,Voltage P2,V,voltage_phase2,2
1,010404ffffffff@i2:1,Voltage P3,V,voltage_phase3,2
1,010404ffffffff@i3:1,Current P1,A,current_phase1,2
1,010404ffffffff@i4:1,Current P2,A,current_phase2,2
1,010404ffffffff@i5:1,Current P3,A,current_phase3,2

1, - ???,
010404ffffffff - odpowiedź od licznika 01 ID, 04 - kod funkcji ,04 ilość bajtów
ffffffff -maska na 4 bajty (bo to jest float )
@i0:1 - kolejny nr. telegramu
Voltage P1 - opis wyświetlany na panelu
V = jednostka
current_phase1 - oczywiste , ale nie wiem dlaczego tak
,2 - ilość miejsc po rzecinku ???

A czy zastanawiałeś się dlaczego same zera? Musisz zrozumieć jak działa Modbus, bo tylko ty masz ten sprzęt i będziesz mógł dostarczyć nizbędne dane dla @RobinI30 (naszego speca od tego ptotokołu). Tak aby odczytać, które ramki przesyłane z licznika odpowiadają za dany, mierzony parametr. Jak się to odszyfruje, to można będzie zastąpic zera wynikami pomiarów.
Edit:
Przyda się też informacja jak masz skonfigurowane GPIO w ESP z Tasmota.

Jak już wspomniałem, jestem laikiem “kombinatorem”…coś co dla Was jest oczywiste, dla mnie nie jest…
Ale tak…
Przy normalnym wgraniu “tasmoty” i wybraniu sdm72 w konfiguracji, wyświetla takie dane:

Natomiast przy kompilacji pliku i po dodaniu tego skryptu, który mi podał też kol. @angler,

#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifndef USE_SML_M
#define USE_SML_M
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif

#define USE_SDM72 // Add support for Eastron SDM72-Modbus energy monitor (+0k3 code)
#define SDM72_SPEED 9600 // SDM72-Modbus RS485 serial speed (default: 9600 baud)
#define SDM72_IMPEXP // Show additonal import/export active energy and power in MQTT and Web (+0k5 code)

-wyświetla takie dane…

Natomiast po wgraniu “zwykłej” tasmoty i wybraniu sdm630, pokazuje takie dane:

Gpio…jest prosto…
tx- jest do wybrania-sdm72 tx
rx-jest do bybrania-sdm72 rx… albo
tx-sdm630 tx
rx-sdm630 rx

Dobra, dziś nie mam już cierpliwości. Może jutro będę miał więcej…

1 polubienie

SDM72 i SDM72-v2 to dwa różne liczniki.
Kluczowe z skrypcie jest jaki masz ustawione ID licznika (adres)

… przekonałeś mnie

Wiem że są rózne…ale ja nic więcej nie ustawiam, tylko to co podałem…
Wgrywam tasmote do wemosa, podpiętego do konwertera…gnd, vcc, tx,rx, z konwertera wychodzą dwa kabelki A i B które są podpięte do licznika A i B…
Ustawiam sieć, wybieram konfigurację, ustawiam tx i rx i to wszystko…
I w zależności który licznik wybiorę w konfiguracji (tx, rx…sdm72, sdm630), to takie dane pokazuje…

@Grzegorz_Szmyd jak tam czytam Twoje kombinowanie to było trzeba wgrać ESPHome, zastosować gotowy component Eastron SDM Energy Monitor — ESPHome i cieszyć się odczytami z licznika :slight_smile:

Hm…może i tak zrobię, tylko…też muszę gdzieś poczytać jak to zrobić, albo ktoś mi pomoże…