KPOP w supla-device

User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Ta metoda sprawdza czy zostało jeszcze coś do wysłania.
Ja używam jej przy urządzeniach śpiących, aby wiedzieć kiedy wszystko co miało być wysłane, zostało wysłane i można szykować się do snu
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

klew wrote: Fri Mar 08, 2024 7:21 pm Coś się zapętlił na wysyłaniu konfiguracji. Z głowy nie zgadnę co tam się stało, ale jakiś błąd tam musi być.
Poszukam i poprawię
Znalazłem winnego. Niechcący przekroczyłem 20 znaków w prefiksie.
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Odnośnie ilości znaków, to powinno to być zabezpieczone. Dzięki za info.

Duch__ wrote: Sat Mar 09, 2024 11:18 am
klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
kpop->setUnitAfterValue(wejscie_opis[1]);

Itd. najlepiej pewnie w jakiejś pętli to zrobić.
Ustawianie wywołaj po Supla-device.begin()
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

klew wrote: Sat Mar 09, 2024 11:34 am Odnośnie ilości znaków, to powinno to być zabezpieczone. Dzięki za info.

Duch__ wrote: Sat Mar 09, 2024 11:18 am
klew wrote: Fri Mar 08, 2024 8:06 am Tylko jeśli będziesz to robił za każdym razem, to pozbawisz użytkownika możliwości zmiany nazwy w Cloud (bo urządzenie zawsze nadpisze).

Jak przypisać w takim razie nazwę defaultową by procesor sam ją generował przy uruchomieniu?

Mam zestaw nazw wpisanych w zmiennych typu String np.

wejscie_opis[1] = "ABC"
wejscie_opis[2] = "DEF"
wejscie_opis[3] = "GHI"

Jak to wpisać do kanału tak by procesor to zrobił za mnie? Nazwy będą pobierane z innego urządzenia przy uruchomieniu procka.
kpop->setUnitAfterValue(wejscie_opis[1]);

Itd. najlepiej pewnie w jakiejś pętli to zrobić.
Ustawianie wywołaj po Supla-device.begin()

Dla:

Code: Select all

gpm_channel_1->setUnitAfterValue(SATEL_wejscie_opis[1]);
umieszczonego w loop dostaję taki błąd:

Code: Select all

exit status 1
no matching function for call to 'Supla::Sensor::GeneralPurposeMeasurement::setUnitAfterValue(String&)'
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Tam trzeba przekazać char*, a nie String. Jakiś .c_str(), trzeba dodać
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Czy zmiana wartości setUnitBeforeValue lub setUnitAfterValue wiele razy w czasie pracy programu powoduje jakiś zapis tych wartości we flashu procesora, a tym samym jej degradacje? Jeśli tak to można to jakoś wyłączyć by nie zapamiętywał tego we flashu?
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 135 times
Been thanked: 137 times

Post

Duch__ wrote: Sun Mar 10, 2024 4:00 am Czy zmiana wartości setUnitBeforeValue lub setUnitAfterValue wiele razy w czasie pracy programu powoduje jakiś zapis tych wartości we flashu procesora, a tym samym jej degradacje? Jeśli tak to można to jakoś wyłączyć by nie zapamiętywał tego we flashu?
Tak, te wartości są zapisywane do pamięci flash.
Aktualnie tego nie można wyłączyć, trzeba by kod przerabiać.
Natomiast flash ma z reguły 100000 zapisów. Dodatkowo ten obszar używany do konfiguracji używa jakiegoś wear leveling, więc powinno być więcej zapisów dostępnych zanim uszkodzimy flash
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

To lipa bo już zacząłem generować komunikaty tekstowe before i after, następnie wyświetlałem na telefonie online jak zmienne :? Nawet fajnie to działało.

Jeśli wartość nowa jest taka sama jak stara (porównanie) to nie robi zapisu, tak?
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Duch__ wrote: Sun Mar 10, 2024 8:12 am To lipa bo już zacząłem generować komunikaty tekstowe before i after, następnie wyświetlałem na telefonie online jak zmienne :? Nawet fajnie to działało.

Jeśli wartość nowa jest taka sama jak stara (porównanie) to nie robi zapisu, tak?
Bardzo fajny pomysł!!.
Taki suplowy, jak obejść system żeby coś zrobić;).
Dlatego uważałem, że KOP byłby lepszy od KPOP i KLOP. Można by wysłać cokolwiek, również wyniki z pomiarów i liczników, ale nie było by to ograniczeniem. Jednak zdecydowano inaczej.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79

Return to “supla-dev”