Wątek poświęcony AFE Firmware T1 z obsługą czujników DS18B20
- Najnowsza wersja do ściągnięcia: AFE Firmwre T1 2.3.0 (wersja produkcyjna)
- Dokumentacja do AFE Firmware w wersji 2
Klucz AFE Pro na testy: 1a923-trial- Aktualizacja z wersji jeden T1 1.x do wersji T1 2.x będzie wymagała konfiguracji od „zera”
Wersja 2.3 będzie zawierać:
- Obsługę do 4 przekaźników – zrobione
- Obsługę do 5 x LED -zrobione
- Obsługę do 5 x przycisków – zrobione
- Pomiar temperatury z N [wpdiscuz-feedback id=”pvf5z91ee6″ question=”Ile proponujecie tych czujników na jednym GPIO?” opened=”0″](na razie 8) [/wpdiscuz-feedback]czujników temperatury DS18B20 – podłączonych do jednego GPIO – zrobione
- Dedykowaną integrację dla Domoticz (v4 oraz v2020) po HTTP oraz MQTT oraz standardowe API HTTP i MQTT dla innych systemów – zrobione
- Wyłączenie przekaźnika przy zadanej temperaturze– zrobione
- 4 x termostaty działające niezależnie dla każdego przekaźnika – zrobione
- Inne funkcjonalności jak
- obsługę wejścia ADC (vPro) – zrobione
- LWT – zrobione
- automatyczne wyjście z konfiguracji – zrobione
- autentykację do panelu konfiguracyjnego – zrobione
- Aktualne defekty poprawiane w wersji T1. 2.3.0
- Inne do zrobienia
- aktualizacja z poprzednich wersji AFE – zrobione
Konfiguracje (aktualizowane na bieżąco):
- Wspierane jest API HTTP i MQTT, a oraz dedykowane dla API Domoticz HTTP lub MQTT
- W standardowym API MQTT wysyłany jest JSON w formacie
Czujnik DS18B20
- Możliwe jest podłączenie do 8 czujników DS18B20 na jednym GPIO
- Każdy czujnik ma swój unikalny adres
- Informacje z czujnika temperatur zwracane są AFE API w formacie JSON
{"temperature":{"value":23.062,"unit":"C"}}
HTTP API
Nowe komendy dla wersji HTTP
Sterowanie Regulatora
http://adres-ip-urzadzenia/?device=regulator&name=NAZWA_REGULATORA&command=KOMENDA
Komendy:
- on
- off
- toggle
- get
NAZWA_REGULATORA – konfigurowane w AFE
Sterowanie Zabezpieczenia termicznego
http://adres-ip-urzadzenia/?device=thermalProtector&name=NAZWA_ZABEZPIECZENIA&command=KOMENDA
Komendy:
- on
- off
- toggle
- get
NAZWA_ZABEZPIECZENIA – konfigurowane w AFE
Czujnik DS18B20
http://adres-ip-urzadzenia/?device=ds18b20&name=NAZWA_CZUJNIKA&command=KOMENDA
Komendy:
- get
NAZWA_CZUJNIKA – konfigurowane w AFE
MQTT API
Oprogramowanie wysyła informacje na wiadomości zdefiniowane w konfiguracji AFE
W wersji T1 definiowane są dodatkowe tematy dla
- czujnika DS18B20
- Zabezpieczenia termicznego
- możliwe jest włączanie / wyłączanie oraz sprawdzanie w jakim stanie jest zabezpieczenie termiczne
- Regulatora (termostat)
- możliwe jest włączanie / wyłączanie oraz sprawdzanie w jakim stanie jest regulator
MQTT Domoticz API
Wersja T1 umożliwia
- wysłanie wskazań temperatur z czujników DS18B20
- Włączanie / Wyłączanie regulatora (termostatu)
- Włączanie / Wyłączanie zabezpieczenia termicznego
Konfigurację przeprowadza się wprowadzając IDX urządzenia z Domoticz
HTTP Domoticz API
Wersja T1 umożliwia
- wysłanie wskazań temperatur z czujników DS18B20
- Włączanie / Wyłączanie regulatora (termostatu)
- Włączanie / Wyłączanie zabezpieczenia termicznego
Konfigurację przeprowadza się wprowadzając IDX urządzenia z Domoticz
Komendy sterujące HTTP:
- włączenie / wyłączenie regulatora
http://adres-ip-urzadzenia/?device=regulator&name=NAZWA_REGULATORA&command=KOMENDA&source=domoticz
- włączenie / wyłączenie zabezpieczenia termicznego
http://adres-ip-urzadzenia/?device=thermalProtector&name=NAZWA_ZABEZPIECZENIA&command=KOMENDA&source=domoticz
Jak zawsze chętnie skorzystam z pomocy prze testowaniu tej wersji. Bardzo, bardzo dziękuję.
@adrian jak na razie nie mogę zmienić GPIO dla termometru , czy to zamierzone ?
@isom
nie jest zamierzone, defekt do poprawy
Na razie jest 4. Mogę dowolnie zmienić. Dajcie znać
Ok zmienię czujnik na GPIO 14 i zobaczę dalej
Chwilowo nie widzi odczytów , jutro sprawdzę na innym czujniku
temp1.PNG
@isom nie odnajduje Ci tego czujnika. Powinien pojawić się jego adres.
Pewnie trzeba będzie dodać to pole adres z brakiem wartości – lub jakiś komunikat bo nie jest wiadome, że nie został odnaleziony czujnik
…. i chyba miałeś spację przed nazwą czujnika w komendzie http
@adrian tak podejrzewałem, wymieniłem rano czujnik i ruszyło od strzała, ale pomysł z oknem gdzie pojawią się same zera tak jak pokazuje debugger gdy czujnik jest zły albo źle podłączony, to bardzo dobra opcja. Nie wiem czy będzie miała sens przy kilku czujnikach, ale przy jednym na pewno tak.
@isom zdecydowanie muszę coś dodać, bo teraz nie jest intuicyjne, dzięki za potwierdzenie, że pyknęło z nowym czujnikiem
Kolejna wersja do ściągnięcia
Link do najnowszej wersji firmware w pierwszym poście
@adrian U mnie ta wersja działa zgodnie z założeniami , przynajmniej na jednym czujniku bo czekam na dostawę a produkcyjnych nie chcę demontować. Fajnie wymyśliłeś okno „skanuj GPIO" . Dla mnie możesz wdrażać termostat.
Dobra robota
Podłączone 3 czujniki pod jeden GPIO, na razie wszystko działa. Czy istnieje techniczna możliwość podglądu temperatur w samym AFE? Ile teoretycznie maksymalnie termometrów będzie można zaimplementować w AFE?
@ketonek tak technicznie jest możliwośc, napisz co masz dokładnie na myśli – a ja dam znać czy to krótka piłka ,czy na później
co do ilości czujników,
AFE 2.x robię tak, że podczas kompilacji firmware wpisuje ile ma być konkrentych elemntów i tyle będzie obsługiwać dot. przekaźników, przycisków, LED, większości czujników – dla niekórych z wymienionych są ograniczenia np. ilośc dostępnych GPIO, ilość dostępnych adresów czujników itp.
W przypadku DS18B20 w AFE 2 jest jeszcze mniej ograniczeń bo to samo GPIO i adresy są dość unikalne 64bit i ciężko jest trafić czujniki z tym samym adresem, wieć może ich być dużo – ile sugerujesz?
Fajnie by było mieć zakładkę z wypisanymi temperaturami, adresami(może własne nazwy poszczególnych czujników), zresztą w przypadku stanów przycisków/przekaźników to chyba też byłoby pomocne. Na chwilę obecną potrzebuje obsługę 8 czujników (chodzi ja nodemcu V3)
Kolejna wersja do ściągnięcia
Link do najnowszej wersji firmware w pierwszym poście
Link prowadzi do 2 bety
@ketonek poprawione, dzięki za wyłapanie i danie mi znać
@adrian w tej wersji panel konfig nie zapamiętuje zmiany GPIO dla przycisku , przycisk przypisany do wybranego GPIO działa, ale w panelu cały czas jest GPIO 0.
Regulator (termostat) działa według ustawionych temperatur i zachowuje się zawodowo przy normalnym połączeniu i bez połączenia z Brokerem, natomiast przy braku połączenia z WIFI już niestety nie działa.
Sytuacja dokładnie odwrotna jest z przyciskiem i przekaźnikiem , bez połączenia z WIFI fizyczny przycisk załącza i wyłącza przekaźnik, natomiast przy braku połączenia z brokerem przycisk już nie załącza przekaźnika. Nie wiem czy ma to związek z tym że w panelu konfig przycisk jest widziany pod GPIO 0, a w rzeczywistości soft reaguje na przypisane GPIO, ale nie udało mi się zmusić przycisku do pracy przy braku połączenia z brokerem .
Strasznie dużo jest tych prób łączenia z wifi
brak-wifi.PNG
Dzięki @isom za znaleziska wszystko zapisałem sobie do zrobienia.
Kolejna wersja powinna być bardziej stabilna, bo głowne funkcje już przerobiłem na wersję 2
Kolejna wersja do ściągnięcia (już zbliżam się ku końcowi)
Wersja może wymagać przywrócenia do wartości początkowych.
@adrian rewelka . Bardzo podoba mi się możliwość załączenia termostatu i termika z APIs, wszystko oprócz wiadomego przycisku działa .
Co prawda sprawdzam na jednym czujniku , ale przypuszczam że musi działać tak samo na większej ilości bo to powtarzalny kod przecież.
Pytanie Wcześniej aktywacja wer PRO była możliwa od strzała teraz dopiero po połączeniu z wifi , jakie ma to znaczenie ? albo dlaczego taka zmiana ?
Świetna robota Dzięki !
@isom hey, pro tylko z WiFi – aktywacja nie powinna nigdy zadziałać bez wifi – jesteś tego pewien?
@adrian Pewnie , że masz rację ! Zakręciłem się bo testowałem termostat bez wifi, a potem chciałem włączyć PRO i pierwszy raz widziałem komunikat, że to można włączyć tylko przy połączeniu z Internetem.
Sorki za zamieszanie
@adrian Testuję sobie soft z większą ilością czujników i regulatorów i mam jak dla mnie dziwne zachowania przekaźników sterowanych regulatorami.
Dodałem sobie trzy regulatory tak jak na foto
REGx3.PNG
Jak widać drugi ma tylko włączyć a trzeci tylko wyłączyć przekaźnik , oba termometry wskazują temp powyżej wartości wyłącz i poniżej załącz tzn temp 25-26 stopni
Przy każdym odczycie temperatur klepie przekaźnik tzn włącza się na ułamek sek i wyłącza. Pierwszy regulator działa ok
Robiłem też próby bez miksowania termometrów co tak naprawdę nie ma sensu bo wtedy wystarczy jeden regulator ale zachowanie jest identyczne jak przy miksie termometrów.
Czy brane są pod uwagę wartości 0.0000 i dlatego ?
@isom ale żeś wymyślił przypadek – przez 10m patrzyłem się w to jak łysy w grzebień 😉
wydaje mi się, że wiem gdzie jest problem, ale musze to sprawdzić
Prawdopodobnie regulatory będa działały jeśli drugi czujnik DS18b20 choć raz przekroczy 30 stopnii i odpali włącz Regulator dwa. Po tym oba regulatory powinny się zsynchronizować
Tak czy inaczej jest to defekt.
Jakbyś mógł sprawdzić tę teżę, że jak DS18B20 drugi przekroczy 30 stopni i włączy przekaźnik to czy już później będzie działac – nie mam w tym momencie 2 czujników DS.
@adrian zrobiłeś fajny soft to sobie chcę zdublować moje reguły , które usprawniają grzanie wody, dlatego takie kombinacje.
Sprawdziłem te regulatory przy przekroczeniu 30 stopni przez drugi czujnik regulator 2 załącza przekaźnik i tak już zostaje mimo że temperatura spada poniżej progu wyłączenia przez trzeci regulator czyli wartość 0 w trzecim regulatorze trzyma włączony przekaźnik.
Jak ustawię w trzecim zamiast 0 np 80 stopni to dopiero zadziała wyłączenie
Jak nie jasno się wyrażam to pytaj proszę
@isom oki i dzięki, to potwiedza moje przypuszczenie, gdzie jest problem – rozwiąże to przy kolejnej wersji w weekend.
Co do trzeciego regulatora, bo nie jestem pewien, czy w tym co napisałeś jest jakiś podtext. On działa tak jak założyłem.
– ustawienia są dość dziwaczne. On będzie działał tak, że włączy przekaźniką zawsze przy temp > 0 i wyłączy przy temperaturze mniejszej niż 0 – w tych ustawieniach ignoruje ustawienie wyłącz poniżej 24st. (piszę o samodzielnie działającym regulatorze 3)
W przypadku dwóch działających regulatorach 2 i 3 całość będzie działać tak
Włączy przekaźnik permanentnie jeśli jeden z tych czujników
Wyłączy przekaźnik permanentnie jeśli
Przy tych ustawienia, bedą tez występować takie skutki uboczne
Generalnie te regulatory działają tak, że uruchamiają się sekwencyjnie:
No i ciekawa kwestia, którą pobudziłes w mojej głowie. Jak ma działać sprawdzanie warunków w tych regulatorach od strony kodu. Są trzy opcje i każda spowoduje inne działanie regulatora w niektórych sytuacjach jak 3 Regulator. Dodaje od razu zachowanie Reg 3 w zależności od sposobu napsiania obsługi regulatora.
Każdy ma swoje plusy i minusy 😉
Nie wiem, czy to co napisałem będzie w miarę zrozumiałe.
Może daj mi od drugiej strony info, jaki efekt chciałbys otrzymać na jednym przekaźniku kontrolowanym przez dwa czujniki temperatury. Wtedy spróbuje zrobic odpowiednio konfigurację dwóch regulatorów.
Pzdr.a
@adrian Jest już dla mnie jasne, że regulatory nie ignorują ustawień 0.000 . Byłem prawie pewny, że jak zostawiam 0 to ten parametr jest ignorowany, a każda zmiana chociaż o jeden stopień dopiero aktywuje parametr wł/wył. Opcją która mnie kręciła było włączenie przekaźnika jednym czujnikiem ( góra zbiornika CWU) a wyłączenie tego przekaźnika wskazaniami drugiego czujnika ( dół zbiornika CWU) . Opiszę dokładnie o co chodzi. Zasobnik w oryginale ma jeden czujnik umiejscowiony na 1/3 wysokości , czyli na górze woda ma około 60 st a na samym dole 30 st , na wysokości czujnika około 45 st . Zaczyna się korzystanie z wody i świeża zimna woda jest dopuszczana od dołu, czyli po zużyciu 1/3 zasobnika już uruchamia się grzanie, gdzie jeszcze na górze woda ma około 50 stopni. Przeniesienie czujnika wyżej powoduje że mniejsza ilość wody zostaje zagrzana i cały dół zasobnika jest zimny. Dalej praw fizyki związanych z wodą nie będę opisywał, bo już chyba wiadomo o co mi chodzi. Jeśli czujnik góra < 40 st włącz przekaźnik , wyłącz jak czujnik dół > 35st
Nie oczekuję, że będziesz robił softy pod konkretne moje potrzeby, rób swoje, ja będę sobie radził z tym tak, jak będzie pozwalał soft.
Gdyby nie fakt, że ustawienia w konfiguracji pozwalają na mixowanie miedzy czujnikami i przekaźnikami pewnie bym nawet tego nie próbował.
Kolejna wersja do ściągnięcia
W pakiecie do ściągnięcia wersja PL, EN, 1mb, 4mb, 8266, 8285, Debug i bez-debuga
Wersję wgrywam do swoich domowych urządzeń i będę testował stabilność
@adrian zanim zacznę testy zapytam:
Czy można mieszać czujniki + przekaźniki ?
Co dostajesz w terminalu jak aktywujesz przycisk bez połączenia z brokerem?
Rozumiem, że mojej koncepcji nie zrealizuję w taki sposób jak chciałem ?
@isom
Tak ustawiłbym regulatory żeby osiągnąc ten warunek:
Jeśli czujnik góra < 40 st włącz przekaźnik , wyłącz jak czujnik dół > 35st
Regulator 1
Regulator 2
Żebym zrozumieć, jak to będzię działac to przydałaby się jakieś wykresy, jak temperatury tych dwóch czujników będą zmieniały się w czasie w zależności od warunków, przykładowo:
Najważniejsze to, czy może wystąpić taka sytuacja, że
to jest konfliktowy warunek i reg 1 będzie wyłączał przekaźnik i zaraz po tym Reg 2 go włączał – jeśli będa miały takie same czasy odczytów temperatur.
Co do przycisku, jak nie mam połaczenia do brokera to przełącza mi przekaźnik, jesli jest z nim skojarzony. Nie wiem, czy o to pytasz. Załączam zrzut. Wyłączyłem mosquitto i wciskam przycik
@adrian Dzięki za obszerny opis , w moim przypadku zawsze czujnik dół będzie miał niższą temp od góry a wynika to z budowy zasobnika i praw fizyki .
Przycisk działa , sprawdziłem na kilku GPIO i dostaję to samo co Ty w terminalu. Cała reszta jak pamięć stanów , LWT i przekaźniki są Ok.
Nurtują mnie te regulatory ustawiłem tak jak na foto poniżej i wydaje mi się, że to powinno banglać a nie chce . Jak wiesz dlaczego to wyjaśnij.
Pzdr
reg12.png
Dodam że staram się żeby oba termometry wskazywały albo powyżej 28 , albo poniżej 26
Tak, owczywiśce, ale czy wystąpi taka sytuacja np.
wtedy będzie źle się ten układ zachowywal – fizyka dalej działa
Co do tych ustawień – to musze pomyślec jak to będzie działać
Jeśli i jeszcze mózg pracuje to:
Włączy się w tylko w tych dwóch sytuacjach
I bedzie tak długo włączony dopóki nie wystąpi jedna z sytuacji wyłączenia
Przekaźnik będzie pstrykał gdy:
@adrian taka sytuacja żeby jednocześnie czujnik dół był 36 a góra 39 nigdy nie może wystąpić , albo będzie tak że czujnik dół będzie 22 a góra wtedy 39 i to powinien być stan załączenia przekaźnika , albo jeżeli dół będzie 36 to góra wtedy około 55-60 ale wtedy przekaźnik ma być już wyłączony. Bo przy 35 powinien zrobić off . Natomiast bezwładność układu może doprowadzić że z 35 wzrośnie o ten stopień czy dwa.
@adrian luknij na to
https://drive.google.com/file/d/1TOlYaV3qjIqJ9yhrHOe8SI0MeC4FK1br/view?usp=sharing
Testowałem na ustawieniach z fotki powyżej i potem na tych co widać zachowanie identyczne.
cześć @isom Twój fiilmik uświadomił mi, że musze jeszcze dorobić kilka rzeczy do tych regulatorów. Jakoś w głowie nie kliknęło mi, że „ludzie" bedą, włączać, wyłączać te regulatory, a w międzyczasie jeszcze ręcznie wł/wył przekaźnik – to teraz może powodować rozsynchroniozwanie się ich działania.
musze to przerobić, bardzo dziękuję
@isom zmodyfikowałem trochę te regulatory na bazie tego co mi pokazałeś (uświadomiłeś). Jak znajdziesz chwilę zaktualizować urządzenie z przykładu i zobaczyć, jak zmieni się zachowanie to byłoby ekstra. Dalej nie obiecuję, że będzie działać wg tego co potrzebujesz, bo jest troche niuansów, ale krok po korku do celu
@adrian na tej wersji regulatory działają tak jak im zlecę , nie zauważyłem nieprawidłowości, testowałem co prawda krótko , ale najpierw zostały ustawienia z filmiku i dokładnie taka sama procedura nie wykazała nieprawidłowości , potem przestawiłem regulatory tak jak na mojej fotce kilka postów wcześniej i też zachowanie było poprawne . Pomęczę to jeszcze w wolnych chwilach , ale w porównaniu z poprzednimi wersjami ta jest ok
@isom gitara – dzięki że dajesz znac – to co nagrałeś dało mi do myślenia. Nie zawsze można sobie wszystko wyobrazić.
W weekend złoże sobie urządząnko z kilkoma DS18 – tymczasem w domu mam tę wersję poinstalowana w jednym czujnikiem i używam – wprawdzie – nie mam potrzeby używania regulatora więc testowania tylko ogólnej stabilności
Dzięki za pomoc w testowaniu!
Zamykam wątek