Termostat DIY do testowania :)

zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Tue Dec 19, 2023 1:02 pm
hvac = new Supla::Control::HvacBase(output);
z Output tez próbowałem. Ale zaraz to zrobie jeszcze raz. Może w końcu wyjdzie bez crusha :D
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Tue Dec 19, 2023 12:52 pm
zzrr wrote: Tue Dec 19, 2023 12:50 pm próbowałem też nic nie wpisywać, wtedy błędów nie podkreśla ale w Loop jak już chcę wyciągnąć wartość to mam taki komunikat błędu "element klasa "Supla::Control::HvacBase" nie ma składowej "getTemeratureSetpointHeat""
Pokaż kod
@klew spójrz na to getTemeratureSetpointHeat :? Ta literówka się ciągnęła a ja nawet biblioteki na wszelki wypadek zamieniałem. Teraz to mi się tak pobałaganilo że w ogóle mi urządzenie nie startuje :D
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Tue Dec 19, 2023 1:02 pm Ma być bez "auto", aby przypisało wskaźnik do zmiennej globalnej, do której się odwołujesz w loop.
Jak dodasz "auto", to nazwa "hvac" jest zmienną lokalną, która przestaje istnieć po wyjściu programu poza setup
Poszło.

Ale to za ciosem ;)
hvac->addAction(Supla::TURN_ON, relay_0, Supla::SWITCH_TO_MANUAL_MODE_HEAT);
hvac->addAction(Supla::TURN_OFF, relay_0, Supla::SWITCH_TO_MANUAL_MODE_AUTO, true);

na jaki obiekt trzeba dać wskazanie żeby mi się wykonywała akcja przy zmianie w aplikacji w telefonie harmonogramu Ręczny, Program?
To powyżej "SWITCH_TO_MANUAL_MODE_AUTO" i to drugie nie działa
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Program tygodniowy to "weekly schedule"
Najlepsze suple dla Twojego domu :mrgreen:
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Tue Dec 19, 2023 7:08 pm Program tygodniowy to "weekly schedule"
No ale jak wpisuję to hvac->addAction(Supla::TURN_ON, relay_0, Supla::SWITCH_TO_WEEKLY_SCHEDULE_MODE, true); to nie działa.
Musi być jakaś opcja MODE?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

zzrr wrote: Tue Dec 19, 2023 7:12 pm
klew wrote: Tue Dec 19, 2023 7:08 pm Program tygodniowy to "weekly schedule"
No ale jak wpisuję to hvac->addAction(Supla::TURN_ON, relay_0, Supla::SWITCH_TO_WEEKLY_SCHEDULE_MODE, true); to nie działa.
Musi być jakaś opcja MODE?
W pliku src/supla-/actions.h są wszystkie warianty
Najlepsze suple dla Twojego domu :mrgreen:
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Tue Dec 19, 2023 7:14 pm
W pliku src/supla-/actions.h są wszystkie warianty
Sprawdziłem w actions.h i events.h i próbuję różne i żaden z próbowanych nie zadziałał. Tzn. Zadziałał wariant do Grzanie lub Standby. Ale teraz szukam na Manual i Harmonogram

W logach takie coś jest jak jest SCHEDULE
HVAC send: IsOn 0, Mode HEAT, tHeat 2100, tCool 0, flags 0x11
a jak manual to to. Flaga inna. Ale do czego to przyłatać? ;)
HVAC send: IsOn 0, Mode HEAT, tHeat 1680, tCool 0, flags 0x1

Te dwie niżej działają.
hvac->addAction(Supla::TURN_ON, relay_1, Supla::ON_HVAC_HEATING, true);
hvac->addAction(Supla::TURN_OFF, relay_1, Supla::ON_HVAC_STANDBY, true);
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

zzrr wrote: Tue Dec 19, 2023 7:18 pm
klew wrote: Tue Dec 19, 2023 7:14 pm
W pliku src/supla-/actions.h są wszystkie warianty
Sprawdziłem w actions.h i events.h i próbuję różne i żaden z próbowanych nie zadziałał. Tzn. Zadziałał wariant do Grzanie lub Standby. Ale teraz szukam na Manual i Harmonogram

W logach takie coś jest jak jest SCHEDULE
HVAC send: IsOn 0, Mode HEAT, tHeat 2100, tCool 0, flags 0x11
a jak manual to to. Flaga inna. Ale do czego to przyłatać? ;)
HVAC send: IsOn 0, Mode HEAT, tHeat 1680, tCool 0, flags 0x1

Te dwie niżej działają.
hvac->addAction(Supla::TURN_ON, relay_1, Supla::ON_HVAC_HEATING, true);
hvac->addAction(Supla::TURN_OFF, relay_1, Supla::ON_HVAC_STANDBY, true);
Przepraszam, na odwrót to przeczytałem. Myslałem, że relayem chciałeś mode zmieniać.
Aktualnie termostat generuje tylko takie zdarzenia:
ON_HVAC_HEATING,
ON_HVAC_COOLING,
ON_HVAC_STANDBY,
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

a ja mam parę pytań technicznych ;-). Nie mam fizycznego przycisku do każdej funkcji, obsługuję termostat obrotowym enkoderem. O ile

Code: Select all

hvac->turnOn();
włącza termostat, to jak go wyłączyć? Kolejna sprawa, o ile

Code: Select all

hvac->turnOnWeeklySchedlue()
włącza Harmonogram (tryb Program), to w jaki sposób go wyłączyć (przejść w tryb maualny dla danego trybu (Grzanie/Chłodzenie)), na okrętkę można bo jak miałem na przykład włączony harmonogram dla grzania, przełączam układ w tryb chłodzenia i mam tryb Manual dla chłodzenia. Tak wiem, mogę to zrobić z aplikacji, lub z clouda, ale ja chcę przełączać to lokalnie, bo wiadomo internet to jest internet, operator strzeli focha i ten internet będzie działał tak a nie inaczej, z drugiej strony w odległej lokalizacji, gdzie jest postawiony router LTE, to potrafi się on przywiesić. RTC w urządzeniu jest w razie utraty zasilania i nie przywróceniu połączenia z siecią.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

veeroos wrote: Wed Dec 20, 2023 11:15 am a ja mam parę pytań technicznych ;-).
Najprościej będzie, jeśli użyjesz tych metod z "runAction":
https://github.com/SUPLA/supla-device/b ... se.cpp#L73

Czyli enkoder/przycisk powinien być spięty z termostatem przez metody:

Code: Select all

enc->addAction(Supla::JEDNA_Z_AKCJI_Z_LINKU_POWYŻEJ, hvac, Encoder::ON_STATE_0);
te eventy "Encoder::ON_STATE_0" musisz sobie sam zdefiniować i generować je w klasie enkodera, gdy ma określony stan.
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Nowości”