Błędny pierwszy odczyt na drugim kanale

User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Przed usunięciem

Code: Select all

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

Code: Select all

uint8_t last_val;
double last_val_dbl1;
double last_val_dbl2;
SUPLA.... Nareszcie w domu.
Asica10
Posts: 63
Joined: Thu Feb 28, 2019 8:12 pm

Post

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
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

SUPLA.... Nareszcie w domu.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Zybi wrote: Mon Sep 16, 2019 11:50 pm
pzygmunt wrote: Mon Sep 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ę.
Najlepsze suple dla Twojego domu :mrgreen:
Zybi
Posts: 1511
Joined: Sun Jun 26, 2016 4:24 pm

Post

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
Posts: 63
Joined: Thu Feb 28, 2019 8:12 pm

Post

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.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Asica10 wrote: Mon Sep 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...
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”