Termostat DIY do testowania :)

krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Ja dane dotyczące numeru kanału, czy histerezy zawsze przechowywałem po swojej stronie. Ale wtedy był problem, że zmieniając dane w cloud nie potrafiłem ich zaktualizować po swojej stronie, stąd ten temat viewtopic.php?p=162984#p162984.

Aktualnie nie ustawiam tych parametrów w setup termostatu a jedynie polegam na Supla::Storage i Supla::Config i ustawiam te parametry metodami z klasy HvacBase.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

krycha88 wrote: Tue Oct 17, 2023 7:49 am Ja dane dotyczące numeru kanału, czy histerezy zawsze przechowywałem po swojej stronie. Ale wtedy był problem, że zmieniając dane w cloud nie potrafiłem ich zaktualizować po swojej stronie, stąd ten temat viewtopic.php?p=162984#p162984.

Aktualnie nie ustawiam tych parametrów w setup termostatu a jedynie polegam na Supla::Storage i Supla::Config i ustawiam te parametry metodami z klasy HvacBase.
Musisz odróżnić te etapy "budowania urządzenia", od zwykłej konfiguracji usera. Ustawienie domyślnego termometru powinno się odbywać przed inicjalizacją SuplaDevice, a więc powinno być zapisane w konfiguracji GG i ustawione na HVAC przed SuplaDevice.begin(). Ale to jest "domyślny" termometr, który potem może być zmieniony przez usera. Tzn. jeśli w runtime będzie użyta metoda setMainTherm... to ona zmieni Config.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Tue Oct 17, 2023 7:54 am Musisz odróżnić te etapy "budowania urządzenia", od zwykłej konfiguracji usera. Ustawienie domyślnego termometru powinno się odbywać przed inicjalizacją SuplaDevice, a więc powinno być zapisane w konfiguracji GG i ustawione na HVAC przed SuplaDevice.begin(). Ale to jest "domyślny" termometr, który potem może być zmieniony przez usera. Tzn. jeśli w runtime będzie użyta metoda setMainTherm... to ona zmieni Config.
Miałem to w taki sposób zrobione i wtedy z tego co pamiętam to nadpisywały się parametry z cloud moimi parametrami które ustawiałem w setup(). Drugi problem to był taki, że jak coś zmieniłem w cloud bez aktualizacji po swojej stronie to miałem rozbieżność parametrów między cloudem a parametrami po swojej stronie.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

krycha88 wrote: Tue Oct 17, 2023 8:24 am Miałem to w taki sposób zrobione i wtedy z tego co pamiętam to nadpisywały się parametry z cloud moimi parametrami które ustawiałem w setup(). Drugi problem to był taki, że jak coś zmieniłem w cloud bez aktualizacji po swojej stronie to miałem rozbieżność parametrów między cloudem a parametrami po swojej stronie.
Gdzie w setup() to było robione? Powinno być przed SuplaDevice.begin().
Jeśli było po, to Twoje ustawienia będą nadpisywać.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Tue Oct 17, 2023 8:26 am Gdzie w setup() to było robione? Powinno być przed SuplaDevice.begin().
Jeśli było po, to Twoje ustawienia będą nadpisywać.
Na pewno było przed SuplaDevice.begin(). Ale nie zmienia to faktu, że wtedy miałem rozbieżność między cloudem a swoimi danymi co było mocno mylące.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

krycha88 wrote: Tue Oct 17, 2023 8:55 am
klew wrote: Tue Oct 17, 2023 8:26 am Gdzie w setup() to było robione? Powinno być przed SuplaDevice.begin().
Jeśli było po, to Twoje ustawienia będą nadpisywać.
Na pewno było przed SuplaDevice.begin(). Ale nie zmienia to faktu, że wtedy miałem rozbieżność między cloudem a swoimi danymi co było mocno mylące.
Bo to co ustawia się "przed" to wartości domyślne, a nie aktualne. Ewentualnie możemy to nazwać "ustawieniami fabrycznymi".

Aktualne wartości są potem przechowywane w Config i aktualizowane przez serwer. Jeśli też następują zmiany lokalnie, to też są traktowane jako zmiana konifguracji, a nie "cech urządzenia".
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Tue Oct 17, 2023 9:57 am Bo to co ustawia się "przed" to wartości domyślne, a nie aktualne. Ewentualnie możemy to nazwać "ustawieniami fabrycznymi".

Aktualne wartości są potem przechowywane w Config i aktualizowane przez serwer. Jeśli też następują zmiany lokalnie, to też są traktowane jako zmiana konifguracji, a nie "cech urządzenia".
to wszystko miałem zrobione i się z tego wycofałem bo miało być lepiej :)
https://gui-generic-builder.supla.io/
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Tue Oct 17, 2023 9:57 am Bo to co ustawia się "przed" to wartości domyślne, a nie aktualne. Ewentualnie możemy to nazwać "ustawieniami fabrycznymi".

Aktualne wartości są potem przechowywane w Config i aktualizowane przez serwer. Jeśli też następują zmiany lokalnie, to też są traktowane jako zmiana konifguracji, a nie "cech urządzenia".
Czy jednak nie planujecie zmienić koncepcji tych ustawień? Te dane które nazywasz fabrycznymi równie dobrze mogą stać się danymi aktualnie ustawionymi na urządzeniu a domyślnymi będą w momencie pierwszej konfiguracji/rejestracji w cloud. Prosty scenariusz konfiguruje urządzenie z poziomu clouda i przenoszę je na inny serwer i wtedy muszę najpierw je zarejestrować do clouda aby zobaczyć czy nie są ustawione inne parametry niż na urządzeniu.

Jednak bym chciał aby parametry ustawione w cloud aktualizowały się również po mojej stronie i w GUI widział te same wartości.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

krycha88 wrote: Tue Oct 17, 2023 2:32 pm
Jeśli urządzenie będzie skonfigurowane i dasz je na inny serwer, to przy rejestracji ustawienia będą wrzucone na ten serwer.

Natomiast urządzenie można przywrócić do ustawień fabrycznych i wtedy Config jest czyszczony.

Moje założenie było takie, że ustawienia fabryczne ustawia się w sofcie urządzenia. Oczywiście GG tą część ma konfigurowalną, więc podejście jest inne.

Ja osobiście w sofcie uniwersalnym (takim jak GG) bym to widział w taki sposób, że te wszystkie ustawienia, które opisują część sprzętową, to jeden temat.
Inny temat to konfiguracja urządzenia (wifi, serwer etc) oraz konfiguracja kanałów.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Tue Oct 17, 2023 3:09 pm Jeśli urządzenie będzie skonfigurowane i dasz je na inny serwer, to przy rejestracji ustawienia będą wrzucone na ten serwer.
Zgadza się, ale od strony konfiguracji urządzenia już nie zobaczę jak urządzenie jest skonfigurowane bez podłączenia go do clouda.
klew wrote: Tue Oct 17, 2023 3:09 pm Moje założenie było takie, że ustawienia fabryczne ustawia się w sofcie urządzenia. Oczywiście GG tą część ma konfigurowalną, więc podejście jest inne.
W GG ustawienia fabryczne są ustawianie w momencie pierwszej konfiguracji urządzenia oraz ręcznym przywróceniu ich. Aby podejrzeć aktualne parametry kanałów, wifi itd. urządzenia nie trzeba uruchamiać trybu konfiguracyjnego. Więc tutaj naprawdę koncepcja wartości domyślnych nie pasuje :)

Fajnie jakby się dało nadpisać metodę np. setMainThermometerChannelNo dodając dodatkowo swoją obsługę

Code: Select all

bool ThermostatGUI::setMainThermometerChannelNo(uint8_t channelNo) {
  bool baseResult = HvacBase::setMainThermometerChannelNo(channelNo);

  if (baseResult && initDone) {
    ConfigManager->setElement(KEY_THERMOSTAT_MAIN_THERMOMETER_CHANNEL, thermostatIndex, HvacBase::getMainThermometerChannelNo());
    ConfigManager->save();
  }

  return baseResult;
}
Ale z tego co widzę, to przy pobieraniu wartości z serwera ona nie jest wywoływana.
https://gui-generic-builder.supla.io/

Return to “Nowości”