Ja bym jednak chciał tutaj o tym podyskutować. Już wiem skąd ten komentarz w tej funkcji się wziąłklew wrote: Mon Jan 19, 2026 7:36 pmProponuję prowadzić dyskusję w jednym miejscumalarz wrote: Mon Jan 19, 2026 7:17 pmjak rozumiem, nadpisać jednak readValuesFromDevice i zapisywać w niej stan do jakiegoś nowego boola
a jak wartość tej zmiennej wrzucać do VirtualBinary? Czegoś nie umiem/nie rozumiem i wolę się dopytać tutaj. Najchętniej bym jakiś podobny przykład obejrzał.
Przy okazji jak już temat VB ujrzał światło dzienne (pytanie do innego tematu), to czy można jakoś zapisywać historię VB w cloudzie? Czy trzeba dodać sobie dodatkowego KPOPa i tam zapisywać 0/1 aby to uzyskać?
Po prostu czytaj do bool.
W swojej klasie (tej nowej) ustawiaj tego boola na vb i tyle.
Vb nie ma aktualnie historii, ale prędzej czy później będzie ona dodana
Code: Select all
double getHumi() override {
// ugly method overriding
// it should be in readValuesFromDevice() method (it's private)
// but this method is much shorter
if (sht.readStatusRegister().HeaterStatus) {
heaterChannel.set();
SUPLA_LOG_DEBUG("HECA heater is ON");
} else {
heaterChannel.clear();
SUPLA_LOG_DEBUG("HECA heater is OFF");
}
return humidity;
}
Code: Select all
In file included from C:\Users\malarz\Documents\Arduino\NAM\NAM.ino:64:
C:\Users\malarz\Documents\Arduino\NAM\heca.h: In member function 'void Supla::Sensor::HECA::readValuesFromDevice()':
C:\Users\malarz\Documents\Arduino\NAM\heca.h:55:32: error: 'void Supla::Sensor::SHT3x::readValuesFromDevice()' is private within this context
55 | SHT3x::readValuesFromDevice();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from C:\Users\malarz\Documents\Arduino\NAM\NAM.ino:63:
c:\Users\malarz\Documents\Arduino\libraries\SuplaDevice\src/supla/sensor/sht3x.h:53:8: note: declared private here
53 | void readValuesFromDevice() {
| ^~~~~~~~~~~~~~~~~~~~
exit status 1
Compilation error: 'void Supla::Sensor::SHT3x::readValuesFromDevice()' is private within this context
I ponawiam pytanie dot.
Jak mam ustawiać tego boola na vb (moja klasa nie dziedziczy po VB a po SHT31)W swojej klasie (tej nowej) ustawiaj tego boola na vb i tyle.
Innym rozwiązaniem jest oczywiście dodanie do klasy SHT31 funkcji:
1. zwracającej sht.readStatusRegister().HeaterStatus
2. wywołującej sht.writeAlertHigh
3. wywołującej sht.writeAlertLow
4. wywołującej sht.clearAll
i zbudowanie nowej klasy na bazie VB albo z parametrem wskazującym na obiekt SHT31, albo tworzącym sobie własny obiekt klasy SHT31, z którego tę nową funkcję . Być może to ostatnie miałeś na myśli. Ale w tym przypadku jak pisałem, nie wydaje mi się aby to miało większy sens.
