Witam.
Chciałem stworzyć prosty termostat w blockly. Całość opiera się o esp który działa na AFE T1 Domoticz MQTT 2020.
Stworzyłem wirtualny termostat, przypisałem idx pod przekaźnik, drugi pod przełącznik bistabilny.
W załączniku schemat w blockly. Całość działa dobrze, gdy przełącznik jest off to przekaźnik się nie włącza nie zależnie od temperatury, gdy na on to ładnie steruje przekaźnikiem w zależności jaką wartość ustawię na wirtualnym termostacie.
Funkcję przełącznika chciałem dodać w sytuacji: wchodzę w danym momencie dnia do pomieszczenia), wyłączam termostat z przełącznika żeby wychłodzić pomieszczenie. Na noc musi być włączony więc dodałem drugą regułę żeby przełącznik wracał to pozycji ON i tak się dzieje, ale tylko w domoticzu. AFE nie odbiera sygnału że w domoticzu stan przełącznika jest na pozycji ON.
Problem mam kiedy by ktoś zapomniał że wyłączył termostat, o godzinie powiedzmy 20 domoticz przełącza przycisk na pozycję ON i termostat zaczyna sterować. Następnego dnia ktoś przychodzi do pomieszczenia i chce wyłączyć termostat, naciska przełącznik, a skoro nie wiedział że on już znajduje się na pozycji OFF, tak naprawdę powraca do pozycji ON. Skutek jest taki że przez cały dzień chodzi ogrzewanie, niestety grzejniki są takie że nie widać czy chodzą.
Jak ustawić domoticza/AFE żeby rozpoznawało status przełącznika a nie tylko wysyłało polecenie off/on w zależności od pozycji w której znajduje się przełącznik fizyczny.
Tak właściwie o jakim wyłączniku mówimy. Który nie zmienia swojego stanu?bjsk to masz podłączone wszystko.
Tu przyczyna leży po stronie oprogramowania nie sprzętowej, teoretycznie czujnik, przekaźnik oraz przełącznik mogły by być podłączone do różnych urządzeń.
Ale podać nie zaszkodzi.
Sonoff R2 1.3v
Przekaźnik standardowo Gpio12, przełącznik: GND -> przełącznik -> Gpio3, czujnik Gpio2.
W ustawieniach AFE, przy ustawieniu przycisku 2 jest odznaczone żeby sterował przekaźnikiem. Przekaźnik i przycisk ma osobny nr idx.
A powiedz mi jeszcze ten przycisk to jakiś zewnętrzny, mono czy bistabilny. Komunikacja jest po MQTT czy HTTP. Jak masz jaki włącznik bistabilny to zmienić jego stan zdalnie raczej nie możesz.
W pierwszym poście było, mqtt oraz zewnętrzny bistabilny. Może być też i dzwonkowy. Chodzi mi o to żeby przełączenie/naciśnięcie przycisku zmieniało wartość w domoticzu. Czyli jakby wysyłało sygnał change/toggle zamiast ON/OFF.
@radek wszystko pięknie ale żeby uzyskać to co chcesz i nie ważne czy przycisk będzie mono czy bistabilny trzeba w AFE odseparować przycisk od przekaźnika.
Potrzebujesz niezależny przycisk np bistabilny i przekaźnik sterowany skryptem blockly.
Ustaw w AFE żeby przycisk nie załączał przekaźnika " Funkcja - Brak "
Trzeba też zmodyfikować ten układ bloczków
IF czujnik < termostat and przełącznik ON
set Ogrzewanie ON
ELSEIF czujnik > termostat and przełącznik ON
set Ogrzewanie OFF
ELSEIF przełącznik OFF
set Ogrzewanie OFF
Od początku miałem tak ustawione. Jeden idx przełącznik, a drugi idx przekaźnik.
Sytuacja wygląda tak:
W nocy termostat jest włączony, rano ktoś przychodzi i z przycisku wyłącza therostat. Wieczorem z reguły włączany jest terostat, następnego ranka po przestawieniu przełącznika nic się nie dzieje, dopiero przełączenie go drugi raz wyłącza termostat.
Problem występuje wtedy kiedy przełącznik jest w pozycji OFF ( bo w rano ktoś go wyłączył z palca), reguła w nocy załącza sterowanie czyli na serwerze zmienia się pozycja z OFF na ON, chociaż w AFE dalej jest OFF. Więc teraz po przełączeniu go na ON fizycznie, AFE wysyła sygnał mqtt ON, więc na serwerze się nic nie dzieje bo już ma taki status.
PS. Spotkał się ktoś przypadkiem że po podłączeniu czujnika d18b20 pokazuje wartość -127?
Którą wersję T1 masz wgraną ? Problem z czujnikiem miałem w wersjach przed 2.4.0
Nie rozumiesz chyba różnicy między oddzielnymi idx a brakiem sterowania przekaźnika przez przycisk . Pokaż ten drugi skrypt , który aktywuje termostat i ustawienia przycisku w AFE bo trudno inaczej coś wywnioskować
Problem obszedłem. Stworzyłem dwa przełączniki przełącznik wirtualny i fizyczny który ma idx przypisane do urządzenia.
Wirtualny steruje termostatem, a fizyczny poprzez regułę steruje wirtualnym.
I doskonale rozumiem czym to się różni, w ustawieniach urządzenia jak napisałem wyżej jest to odseparowane.
W załączniku schematy, odnośnie włączenia o danej godzinie to poprostu dana godzina = ON, ale na czas testu wyłączyłem ten skrypt, więc on nie zaburzał działania.
Co do czujnika to wersja 2.4.0, opornik 4,7K
PS. Czym w AFE różni się typ przełącznika (mono/bistabilny), przy jednej i drugiej opcji temat mqtt wysyłany jest taki sam ON/OFF.
Monostabilny załączą się impulsem np dzwonkowym i drugim wyłącza , a bistabilny po zwarciu GPIO do masy jest ON , przy rozwarciu OFF
AFE wykrywa ten czujnik temp ?
Dziwne bo @adrian pisał, że blokuje wskazania -127
Przy sterowaniu przekaźnikiem to jasne, ale jeśli chodzi o temat mqtt to przy jednym i drugim wygląda tak samo, tylko że przy dzwonkowym z racji tego że jest styk połączony na krótki okres czasu to temat ON a później OFF jest praktycznie w tym samym momencie.
Adres czujnika jest poprawnie wykrywany, a sam czujnik zwraca cały czas:
{"device":{"type":"ds18b20","name":"czujnik"},"command":"get","data":{"temperature":{"value":-127.000,"unit":"C"}},"status":"success"}
Może jest zablokowane wysyłanie, bo na MQTT nie widzę żeby wysyłał jakiekolwiek wartości, ale ręcznie da się odczytać. Od 2 godzin w sumie nie wysłał żadnego poprawnego odczytu.
To samo urządzenie na ESPEasy pokazuje poprawne wartości.