czy tu nie da się skomplować energy_meter skoro są : https://github.com/SUPLA/supla-espressi ... ty_meter.c oraz https://github.com/SUPLA/supla-espressi ... ty_meter.h?
Tak aby podłączyć to pod piny D1i D2 ???


Faktycznie, bardzo fajne rozwiązanie a i sprzęt ogólnodostępny w PL i pasuje na szynę DIN od razu.krycha88 wrote: Mon Nov 25, 2019 8:50 pmBardzo ciekawa propozycja i prawdopodobnie najbardziej niezawodnaRobert Błaszczak wrote: Mon Nov 25, 2019 8:32 pm Sensownym rozwiązaniem zdaje się być zastosowanie liczników z interfejsem Modbus (np.: https://www.orno.pl/pl/category/product ... -MID--100A). Mam taki licznik spięty z takim konwerterem https://pl.aliexpress.com/item/32789859586.html. Konwerter podpinam do drugiego konwertera RS232 / USB i bez problemu czytam na komputerze rejestry licznika energii.
Protokół Modbus jest w miarę opisany przez producenta, więc wystarczyłoby oprogramować ESP, który czytałby co określony interwał rejestry licznika energii i wysyłał do Supli. Modbus to magistrala dwużyłowa, na której spokojnie może być kilkanaście liczników. Niestety moja wiedza w zakresie programowania jest jeszcze zdecydowanie zbyt słaba.
Ps.
Jeśli któryś z kolegów piszących programy chciałby się tematem pobawić, to mogę mu wysłać licznik energii wraz konwerterem RS-232/RS-485 oraz Wemosem D1 mini.![]()
Code: Select all
typedef struct {
// 3 phases
unsigned _supla_int16_t freq; // * 0.01 Hz
unsigned _supla_int16_t voltage[3]; // * 0.01 V
unsigned _supla_int16_t current[3]; // * 0.001 A
_supla_int_t power_active[3]; // * 0.00001 kW
_supla_int_t power_reactive[3]; // * 0.00001 kvar
_supla_int_t power_apparent[3]; // * 0.00001 kVA
_supla_int16_t power_factor[3]; // * 0.001
_supla_int16_t phase_angle[3]; // * 0.1 degree
} TElectricityMeter_Measurement; // v. >= 10
#define EM_VAR_FREQ 0x0001
#define EM_VAR_VOLTAGE 0x0002
#define EM_VAR_CURRENT 0x0004
#define EM_VAR_POWER_ACTIVE 0x0008
#define EM_VAR_POWER_REACTIVE 0x0010
#define EM_VAR_POWER_APPARENT 0x0020
#define EM_VAR_POWER_FACTOR 0x0040
#define EM_VAR_PHASE_ANGLE 0x0080
#define EM_VAR_FORWARD_ACTIVE_ENERGY 0x0100
#define EM_VAR_REVERSE_ACTIVE_ENERGY 0x0200
#define EM_VAR_FORWARD_REACTIVE_ENERGY 0x0400
#define EM_VAR_REVERSE_REACTIVE_ENERGY 0x0800
#define EM_VAR_ALL 0xFFFF
#define EM_MEASUREMENT_COUNT 5
// [IODevice->Server->Client]
typedef struct {
unsigned _supla_int64_t total_forward_active_energy[3]; // * 0.00001 kW
unsigned _supla_int64_t total_reverse_active_energy[3]; // * 0.00001 kW
unsigned _supla_int64_t total_forward_reactive_energy[3]; // * 0.00001 kvar
unsigned _supla_int64_t total_reverse_reactive_energy[3]; // * 0.00001 kvar
// The price per unit, total cost and currency is overwritten by the server
// total_cost == SUM(total_forward_active_energy[n] * price_per_unit
_supla_int_t total_cost; // * 0.01
_supla_int_t price_per_unit; // * 0.0001
// Currency Code A https://www.nationsonline.org/oneworld/currencies.htm
char currency[3];
_supla_int_t measured_values;
_supla_int_t period; // Approximate period between measurements in seconds
_supla_int_t m_count;
TElectricityMeter_Measurement m[EM_MEASUREMENT_COUNT]; // Last variable in
// struct!
} TElectricityMeter_ExtendedValue; // v. >= 10
#define EM_VALUE_FLAG_PHASE1_ON 0x01
#define EM_VALUE_FLAG_PHASE2_ON 0x02
#define EM_VALUE_FLAG_PHASE3_ON 0x04
// [IODevice->Server->Client]
typedef struct {
char flags;
unsigned _supla_int_t total_forward_active_energy; // * 0.01 kW
} TElectricityMeter_Value; // v. >= 10
Tez kombinowalem z mnoznikiem ale niestety gubi nieliniowomichalbajda wrote: Tue Dec 03, 2019 7:34 pm Odnośnie gubienia impulsów u mnie jak dotąd maksymalny pobór prądy był na poziomie 450-500W więc na pewno nie jest to kwestia nie nadążania Wemos'a za impulsami. Po zmianie impulsów z 1000 na 818 (bo wyliczyłem po różnicach odczytów) wskazania na Supli i liczniku pokrywają się już w miarę ok.
Wczoraj zakupiłem podlicznik ORNO OR-WE-519, zobaczymy czy lepszej jakości licznik daje bardziej "przyswajalne" impulsy dla Wemos'a.
Problem był, że Wemos gubił? Czy dioda nie wszystko łapała?o_rany wrote: Tue Dec 03, 2019 11:01 pm Na sofcie i hardwarze Roberta (wemos) pojedynczy licznik podlaczony pod wyjscie impulsowe fizycznego licznika prądu, oraz na sofcie od Slawka na sonoffie oraz canwingu.
Intensywnie testowalem na tych 3 licznikach 6 miesiecy grzewczych w minionym sezonie. Kreciłem potencjoetrem, zmianialem przeliczniki, robilem przeslone z foli dymionej na diode, zmienialem odleglosc od diody.... - niestety wszedzie podobne problemy.
you have to add "EEPROM.begin ();" and "EEPROM.commit ();" to save the impulses on Esp8266 Flash.klew wrote: Tue Dec 03, 2019 11:26 pmProblem był, że Wemos gubił? Czy dioda nie wszystko łapała?o_rany wrote: Tue Dec 03, 2019 11:01 pm Na sofcie i hardwarze Roberta (wemos) pojedynczy licznik podlaczony pod wyjscie impulsowe fizycznego licznika prądu, oraz na sofcie od Slawka na sonoffie oraz canwingu.
Intensywnie testowalem na tych 3 licznikach 6 miesiecy grzewczych w minionym sezonie. Kreciłem potencjoetrem, zmianialem przeliczniki, robilem przeslone z foli dymionej na diode, zmienialem odleglosc od diody.... - niestety wszedzie podobne problemy.
Jeśli chcesz, możesz spróbować licznika impulsów z Arduino IDE (np. z tą biblioteką: https://github.com/klew/arduino/tree/develop )
Ja mam pod Arduino Mega podpięte7 podliczników z wyjściem impulsowym i jak na razie nie zauważyłem, aby coś gubił.
Jestem ciekaw, czy na Wemosie z tym softem też będzie gubił czy nie![]()
Robiłeś jakieś swoje zmiany czy na żywca wrzucałeś te biblioteki, które podałeś? Jestem początkującym jeśli chodzi o Arduino czy ESP/WEMOS dlatego bazuje na gotowych bibliotekach, których nie trzeba przerabiać.klew wrote: Tue Dec 03, 2019 11:26 pm Jeśli chcesz, możesz spróbować licznika impulsów z Arduino IDE (np. z tą biblioteką: https://github.com/klew/arduino/tree/develop )
Ja mam pod Arduino Mega podpięte7 podliczników z wyjściem impulsowym i jak na razie nie zauważyłem, aby coś gubił.
Da się wrzucić te biblioteki, które podałeś na Wemos D1?Jestem ciekaw, czy na Wemosie z tym softem też będzie gubił czy nie
Ja dopisywałem licznik impulsów do tej biblioteki. Aktualnie też ją trochę przepisuję i rozbudowuję.michalbajda wrote: Wed Dec 04, 2019 7:46 pm Robiłeś jakieś swoje zmiany czy na żywca wrzucałeś te biblioteki, które podałeś? Jestem początkującym jeśli chodzi o Arduino czy ESP/WEMOS dlatego bazuje na gotowych bibliotekach, których nie trzeba przerabiać.
Da się wrzucić te biblioteki, które podałeś na Wemos D1?Jestem ciekaw, czy na Wemosie z tym softem też będzie gubił czy nie