Błędny pierwszy odczyt na drugim kanale

Awatar użytkownika
pzygmunt
Posty: 18280
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Przed usunięciem

Kod: Zaznacz cały

union {
		uint8_t last_val;
		double last_val_dbl1;
		double last_val_dbl2;
	};
Po usunięciu

Kod: Zaznacz cały

uint8_t last_val;
double last_val_dbl1;
double last_val_dbl2;
Asica10
Posty: 63
Rejestracja: czw lut 28, 2019 8:12 pm

Wielkie dzięki. Działa jak należy.

Czy można w jakiś sposób zmiejszyć częstotliwość wysyłania danych do serwera, ale tak by w aplikacji caly czas były wartości anie kreski? W tym momencie moge uśpić modul max na ok 20-25s
Awatar użytkownika
pzygmunt
Posty: 18280
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Zybi pisze: pn wrz 16, 2019 11:50 pm
pzygmunt pisze: pn wrz 16, 2019 10:03 pm Z tej unii można zrezygnować.
I to jest lepsze rozwiązanie, bo jednak poprawka jw. zakłóca działanie kanału przekaźnika - testowałem na Sonoff-ie Basic.
Co się dzieje z tym przekaźnikiem? Patrzę na kod i nie widzę co mogłoby zaburzać jego pracę.
Widzimy się na Supla Offline Party vol. 2 :!:
Zybi
Posty: 1511
Rejestracja: ndz cze 26, 2016 4:24 pm

Przyczyny jeszcze nie znam. Testowałem to bardzo późno i zostawiłem temat, bo rezygnacja z unii poszła bezproblemowo.
Może jeszcze wrócę do tego.
Asica10
Posty: 63
Rejestracja: czw lut 28, 2019 8:12 pm

Po zrezygnowaniu z tej uni problem sie rozwiazal.

Problem pojawia się znowu po dodaniu czujnika dystansu 1 odczyt kreski w aplikacji, po drugim jest ok. Ktoś wie jak tym razem rozwiązać problem?
z góry dziekuje.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Asica10 pisze: pn wrz 23, 2019 2:42 pm Po zrezygnowaniu z tej uni problem sie rozwiazal.

Problem pojawia się znowu po dodaniu czujnika dystansu 1 odczyt kreski w aplikacji, po drugim jest ok. Ktoś wie jak tym razem rozwiązać problem?
z góry dziekuje.
Musiałbyś zrobić pierwszy odczyt wartości przed rejestracją urządzenia w chmurze.
Poszukaj metody "begin_thermometer" w SuplaDevice.cpp. Możesz dopisać analogiczną metodą "initDistanceSensor" i wywołać ją w tej samej pętli. Powinna sprawdzić, czy kanał jest sensorem odległości, po czym odczytać wartość z sensora i zapisać ją do kanału metodą channelSetDoubleValue.
Ewentualnie możesz tą inicjalizację zrobić w metodzie "addDistanceSensor" i tam odczytać wartość z sensora i przypisać zamiast wartości "-1".
Trzecia opcja to dopisanie sensora odległości do "begin_thermometer" - tam i tak już jest czujnik ciśnienia, wagi, wiatru...
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „Pomoc”