Byłoby super jeżeli byś dodał taką możliwośćklew wrote: Mon Dec 18, 2023 8:22 am Natomiast biorąc pod uwagę to, że ludzie często "tworzą" urządzenie w kilku krokach (dodają termostat, sprawdzają w Cloud, poprawiają ustawienia, itp.), to spróbuję to zmienić tak, aby zmiana w GG była aktualizowana na serwer bez konieczności usuwania urządzenia czy zmiany funkcji. Tylko trzeba pamiętać o tych potencjalnych błędach w konfiguracji wynikających z innych ustawień.
Termostat DIY do testowania :)
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
https://gui-generic-builder.supla.io/
Klew coś robię źle. Jeśli możesz napisz coś więcej. Próbuje utworzyć obiekt z klasy HvacBase i z niego pobrać lipa. Próbuję bezpośrednio z hvac też pokazuje cały czas 0. Jeśli możesz...klew wrote: Mon Dec 18, 2023 8:16 am Jeśli urządzenie pracuje w trybie "program", to pobierasz po prostu:Jeśli chciałbyś odczytać to co wynika z programu, ale gdy termostat nie pracuje w trybie program, to będzie tam kilka kroków do zrobienia, ale nie wiem czy tego chcesz, więc daj znaćCode: Select all
int getTemperatureSetpointHeat(); int getTemperatureSetpointCool();![]()
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
zzrr wrote: Mon Dec 18, 2023 9:04 pmKlew coś robię źle. Jeśli możesz napisz coś więcej. Próbuje utworzyć obiekt z klasy HvacBase i z niego pobrać lipa. Próbuję bezpośrednio z hvac też pokazuje cały czas 0. Jeśli możesz...klew wrote: Mon Dec 18, 2023 8:16 am Jeśli urządzenie pracuje w trybie "program", to pobierasz po prostu:Jeśli chciałbyś odczytać to co wynika z programu, ale gdy termostat nie pracuje w trybie program, to będzie tam kilka kroków do zrobienia, ale nie wiem czy tego chcesz, więc daj znaćCode: Select all
int getTemperatureSetpointHeat(); int getTemperatureSetpointCool();![]()
Code: Select all
Supla::Control::HvacBase *hvac = nullptr;
// gdzieś w setup
hvac = new Supla::Control::HvacBase(....);
....
// gdzieś w loop ?
int16_t currentHeatSetpoint = hvac->getTemeratureSetpointHeat();
Najlepsze suple dla Twojego domu 
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
Normlanie jak przy tworzeniu klasy Hvac:zzrr wrote: Tue Dec 19, 2023 11:42 am @klew dzięki. A parametr tu gdzie kropki to co ma być?
hvac = new Supla::Control::HvacBase(....);
Code: Select all
explicit HvacBase(Supla::Control::OutputInterface *primaryOutput = nullptr,
Supla::Control::OutputInterface *secondaryOutput = nullptr);
Najlepsze suple dla Twojego domu 
Ja to próbowałem wpisać. Cała klasę oglądam od góry do dołu. Ale widocznie jednak troche wiedzy brakuje. Spróbuje jeszcze razklew wrote: Tue Dec 19, 2023 12:14 pm Normlanie jak przy tworzeniu klasy Hvac:może być nic, a można podać od razu wyjście(a)Code: Select all
explicit HvacBase(Supla::Control::OutputInterface *primaryOutput = nullptr, Supla::Control::OutputInterface *secondaryOutput = nullptr);
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""
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
Pokaż kodzzrr 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""
Najlepsze suple dla Twojego domu 
Code: Select all
Supla::Control::HvacBase *hvac = nullptr;
// Supla::Control::OutputInterface *primaryOutput = nullptr;
// Supla::Control::OutputInterface *secondaryOutput = nullptr;
Code: Select all
void setup()
{
Serial.begin(115200);
new Supla::Clock;
auto output = new Supla::Control::InternalPinOutput(OUTPUT_GPIO);
auto hvac = new Supla::Control::HvacBase(output);
new Supla::Html::HvacParameters(hvac);
DeviceAddress ds1addr = {0x28, 0xD9, 0xF6, 0xA, 0x0, 0x0, 0x0, 0x6D};
// DeviceAddress ds2addr = {0x28, 0xFF, 0x54, 0x73, 0x6E, 0x18, 0x01, 0x77};
// new Supla::Sensor::DS18B20(DS18B20_GPIO, ds1addr);
// new Supla::Sensor::DS18B20(DS18B20_GPIO, ds2addr);
hvac = new Supla::Control::HvacBase();
DsTemp = new Supla::Sensor::DS18B20(DS18B20_GPIO, ds1addr);Code: Select all
if (millis() - mil_hvac >= 2000)
{
mil_hvac = millis();
// int tempera = nowa;
// int temperatureSetpoint = getTemperatureSetpointHeat();
int16_t currentHeatSetpoint = hvac->getTemeratureSetpointHeat();
Serial.print("temperatura z HVAC ");
Serial.println(String(currentHeatSetpoint));-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
Ogólnie ta aplikacja powinna się crashować, a nie niekompilować
Może masz jakąś starą wersję biblioteki SuplaDevice gdzie jeszcze tych metod nie ma?
W setup popraw tą linijkę:
Code: Select all
hvac = new Supla::Control::HvacBase(output);
Jak dodasz "auto", to nazwa "hvac" jest zmienną lokalną, która przestaje istnieć po wyjściu programu poza setup
Najlepsze suple dla Twojego domu 
