Page 23 of 41

Re: Licznik energii elektrycznej

Posted: Sun May 05, 2019 9:21 pm
by Przemo_06_92
makrz wrote:
Sun May 05, 2019 7:44 pm

Ten soft już pobierałem, i ten program co jest na screen-ie to w ogóle mi nie odpowiada, ustawię odpowiednie wartości i kolejność plików do wgrania i port na którym jest wemos i w ogóle nic się nie wgrywa a na nodemcu idzie ale jak pisałem po wgraniu nie widać sieci...
A takie głupie pytanie zadam. Czy te trzy kwadraciki zaptaszkowałeś?
Tak, zaznaczyłem i właśnie wtedy nie idzie a jak odznaczę to skomunikuje się z wemosem a gdy próbuję wgrać pliki zaznaczając te kwadraciki to na dole nad przyciskiem start pisze stop na brązowym tle i po wszystkim :(

Re: Licznik energii elektrycznej

Posted: Sun May 05, 2019 10:02 pm
by makrz
Przemo_06_92 wrote:
Sun May 05, 2019 9:21 pm
makrz wrote:
Sun May 05, 2019 7:44 pm

Ten soft już pobierałem, i ten program co jest na screen-ie to w ogóle mi nie odpowiada, ustawię odpowiednie wartości i kolejność plików do wgrania i port na którym jest wemos i w ogóle nic się nie wgrywa a na nodemcu idzie ale jak pisałem po wgraniu nie widać sieci...
A takie głupie pytanie zadam. Czy te trzy kwadraciki zaptaszkowałeś?
Tak, zaznaczyłem i właśnie wtedy nie idzie a jak odznaczę to skomunikuje się z wemosem a gdy próbuję wgrać pliki zaznaczając te kwadraciki to na dole nad przyciskiem start pisze stop na brązowym tle i po wszystkim :(
Ja używam tej wersji. Nigdy nie miałem z nią problemów.

Re: Licznik energii elektrycznej

Posted: Mon May 06, 2019 5:11 pm
by slawek
makrz wrote:
Sun May 05, 2019 8:35 pm
Jednak jest jakiś problem. Nie widać modułu w cloudzie i resetuje się w kółko. "Protocol version error"
Rzeczywiście był bug - pobierz teraz i sprawdź - podmieniłem plik

Re: Licznik energii elektrycznej

Posted: Mon May 06, 2019 7:35 pm
by makrz
slawek wrote:
Mon May 06, 2019 5:11 pm
makrz wrote:
Sun May 05, 2019 8:35 pm
Jednak jest jakiś problem. Nie widać modułu w cloudzie i resetuje się w kółko. "Protocol version error"
Rzeczywiście był bug - pobierz teraz i sprawdź - podmieniłem plik
Teraz jest OK. Dzięki.

Re: Licznik energii elektrycznej

Posted: Mon May 06, 2019 10:49 pm
by o_rany
Jakiś czas temu pojawiła się opcja wpisania stanu poczatkowego licznika (cloud).

Zrobilem to dopiero dzis: spisalem stan faktyczny z licznika prądu, pomniejszylem o stan Suplowego (aby mi wyszedl taki jak byl w momencie uruchomienia liczydla) następnie wpisalem wynik w clouda.

Cos nie zagrało bo ta różnica + zuzycie weszlo mi na aktualny miesiąc.... Zle zrozumialem stan początkowy czy bug?

Re: Licznik energii elektrycznej

Posted: Tue May 07, 2019 7:33 am
by pzygmunt
Jak historia pomiarów zaczyna się od tego miesiąca to tak właśnie będzie przeczytaj mojego posta odnośnie obliczania bieżącego zużycia. W kolejnym miesiącu będzie już ok.

Re: Licznik energii elektrycznej

Posted: Tue May 07, 2019 8:02 am
by djack2017
W strukturze "TElectricityMeter_ExtendedValue" są elementy:
_supla_int_t measured_values;
_supla_int_t period; // Approximate period between measurements in seconds
_supla_int_t m_count;
Możesz (pzygmunt) dokładniej opisać co one oznaczają?
I w związku z tym, czy aby wysłać rozszerzoną strukturę te wartości muszą być określone?

Re: Licznik energii elektrycznej

Posted: Tue May 07, 2019 8:18 am
by pzygmunt
tak

Re: Licznik energii elektrycznej

Posted: Tue May 07, 2019 8:49 am
by djack2017
A możesz jednak coś więcej napisać na pierwsze pytanie.
Choćby o m_count, która występuje w funkcji srpc_evtool_v1_emextended2extended , którą nie do końca jeszcze czuję.

Re: Licznik energii elektrycznej

Posted: Tue May 07, 2019 9:11 am
by pzygmunt
m_count określa ilość pomiarów w tablicy m[].
Nie może być większe od EM_MEASUREMENT_COUNT
period określa przybliżony czas pomiędzy pomiarami w m[].
measured_values - każdy bit określa jakie dane przesyłasz EM_VAR_*

Funkcja srpc_evtool_v1_emextended2extended służy do "upchnięcia" TElectricityMeter_ExtendedValue w TSuplaChannelExtendedValue

W nagłówku swojej płytki musisz dodać poniższą definicję

Code: Select all

#define ELECTRICITY_METER
Następnie

Code: Select all

void ICACHE_FLASH_ATTR supla_esp_board_set_channels(
    TDS_SuplaDeviceChannel_C *channels, unsigned char *channel_count) {
  *channel_count = 1;

  channels[0].Number = 0;
  channels[0].Type = SUPLA_CHANNELTYPE_ELECTRICITY_METER;

  supla_esp_em_get_value(0, channels[0].value);
}
Następnie dodajesz implementację funkcji

Code: Select all

char ICACHE_FLASH_ATTR supla_esp_board_get_measurements(
    unsigned char channel_number, TElectricityMeter_ExtendedValue *value) {
};
W niej podstawiasz odpowiednie wartości do value i zwracasz 1 jeśli od ostatniego wywołania nastąpiły jakieś zmiany w odczycie lub jest to pierwsze wywołanie od czasu restartu układu. W każdym innym przypadku zwracasz 0.
Nie musisz nic konwertować. Wszystko sprowadza się do kilku linijek jak powyżej.