2 minuty czytania

adrian

Jestem związany zawodowo z informatyką; kiedyś pracowałem jako programista, a teraz czerpię radość z hobbystycznego kodowania. Moja pasja skupia się na nowych technologiach, zwłaszcza tych, które mają potencjał ułatwić życie ludziom oraz wspierać ochronę środowiska naszej planety

40 komentarzy

  1. isom pisze:

    @adrian jak na razie nie mogę zmienić GPIO dla termometru , czy to zamierzone ?

  2. adrian pisze:

    Na razie jest 4. Mogę dowolnie zmienić. Dajcie znać

  3. isom pisze:

    Ok zmienię  czujnik na GPIO 14 i zobaczę dalej

  4. isom pisze:

    Chwilowo nie widzi odczytów , jutro sprawdzę na innym czujniku
     temp1.PNG

  5. isom pisze:

    @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.
     

  6. adrian pisze:

    Kolejna wersja do ściągnięcia

    • dodana funkcja wyłączenia przekaźnika po zadanej temperaturze
    • kosmetyczne zmiany związane z konfiguracją czujnika DS18B20 – zgłoszone przez @isom wyżej
    • poprawione zgłoszone i znane defekty.
    • modyfikacje techniczne, związane z przejściem z wersji 1 na 2 AFE
    • aktualny stan prac

    Link do najnowszej wersji firmware w pierwszym poście

     

  7. isom pisze:

    @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 

  8. ketonek pisze:

    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?

    • adrian pisze:

      @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?

  9. ketonek pisze:

    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)

  10. adrian pisze:

    Kolejna wersja do ściągnięcia

    • dodana funkcja termostatu – zostało to zrobione inaczej niż w wersji pierwszej AFE. 
      • Dodana funkcja Regulatora, która jest właśnie Termostatem.
      • W przyszłości w tym regulatorze będzie wybierało się dowolny czujnik: temperatury, wilgotności, natężenia światła itp aby sterować przekaźnikiem
    • zwiększona ilość czujników DS18B20 do 8szt (@ketonek)
    • będę musiał zmienić ponownie, jak działa funkcja zabezpieczenia termicznego – w zasadzie inny sposób konfiguracji – będzie osobne okno do konfiguracji
    • aktualny stan prac

    Link do najnowszej wersji firmware w pierwszym poście

     

  11. isom pisze:

    @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
     

  12. adrian pisze:

    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

  13. adrian pisze:

    Kolejna wersja do ściągnięcia (już  zbliżam się ku końcowi)

    • Zmodyfikowana całkowicie funkcjonalność zabezpieczenia termicznego 
    • Dodana możliwość włączania / wyłączania i sprawdzania stanu Zabezpieczenia Termicznego z wykorzystaniem APIs
    • Dodana możliwość włączania / wyłączania i sprawdzania stanu Regulatora (Termostatu) z wykorzystaniem APIs
    • Dodane pełne wsparcie HTTP Generic oraz Domoticz API
    • Trochę zmian kosmetycznych 
    • Poprawione zgłoszone defekty (jeszcze nie ruszyłem problemu z niedziałającym przyciskiem przy braku połączenia z MQTT Brokerem – zgłoszone przez @isom tutaj)
    • Stan prac

    Wersja może wymagać przywrócenia do wartości początkowych.

  14. isom pisze:

    @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 !

  15. isom pisze:

    @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

  16. isom pisze:

    @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 ? 

    • adrian pisze:

      @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ć

      • Regulator 3 zawsze będzie włączał przekaźnik bo 25-26 jest większe niż zero
      • Regulator 2 w zasadzie nie powinien nic robić, ale chyba (i to musze sprawdzić) wyłącza ten przekaźnik, bo wartość przy wystartowaniu regulatora jest „wyłącz" przekaźnik (jest tak w kodzie) – a raczej wartość początkowa powinna być taka sama jak wartośc domyślna przekaźnika po uruchomieniu urządzenia

      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.

       

  17. isom pisze:

    @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ę 

    • adrian pisze:

      @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

      • DS18B20 Drugi będzie miał temp większą niż 30st lub
      • DS18B20 Pierwszy będzie miał temp większą niż zero

      Wyłączy przekaźnik permanentnie jeśli 

      • DS18B20 Pierwszy będze poniżej zera – wartość z DS18B20 Drugi w zasadzie nie mam znaczeniana w permanentnym wyłączenu przekaźnika

      Przy tych ustawienia, bedą tez występować takie skutki uboczne

      • Przekaźnik włączy i zaraz wyłączy się gdy: DS18B20 Drugi > 30st i DS18B20 Pierwszy będzie mniejszy niż 0 – będa pstryki krótsze / dłuże w zależności jak będa wprwadzone czasy odczytów z czujników
      • Przekaźnik wyłączy się i zaraz włączy jeśli DS18B20 Drugi jest mniejszy od zera a DS18B20 Pierwszy temp > 0 – pstryki krótsze / dłuże w zależności jak będa wprwadzone czasy odczytów z czujników

      Generalnie te regulatory działają tak, że uruchamiają się sekwencyjnie:

      • sprawdza warunki regulatora 1 – włącza/wyłącza przekaźnik w zależności od ustawień a w kolejnym kroku
      • sprawdza warunki regulatora 2 – włącza/wyłącza przekaźnik w zależności od ustawień itd.

      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.

      • Opcja 1: Oba ustawienia włącz/wyłącz muszą jednocześnie być spełnione w regulatorze i tylko wtedy włączy/wyłaczy przekaźnik, to oznacza, że 
        • Reg 3: włączy przekaźnik jeśli temp będzie więszka niż 24
        • Reg 3: wyłaczy przekaźnik temp  będzie poniżej 0
      • Opcja 2: Sprawdzanie sekwencyjnie ustawień, musi być spełnione jedno z nich, ale kończy sprawdzanie jeśli pierwsze ustawienie  będzie spełniał kryteria wtedy włączy/wyłączy. NIe przetwarza kolejnych ustawień. Czyli ustawienie „włącz" jest ważniejsz od ustawienia „wyłącz" (tak teraz jest zrobione i było w wersji 1.x) 
        • Reg 3: włączy jeśli temp będzie większa niż 0
        • Reg 3: wyłączy jeśli temp będzię mniejsza niż 0
      • Opcja 3: Sprawdzanie sekwencyjnie ustawień, musi być spełnione jedno z nich. Sprawdza wsyzstkie ustawienia, ale przekaźnik włączy/wyłączy wg ustawień ostatniego warunku, który będzie kontrolował zachowania przekaźnka. Czyli ustawienie „wyłącz" jest ważniejsz od ustawienia „włącz"
        • Reg3: włączy jeśli będzie temp większa niż 24
        • Reg3: wyłaczy jeśi temperatura będzie mniejsza niż 24

      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

       

  18. isom pisze:

    @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ł.

  19. adrian pisze:

    Kolejna wersja do ściągnięcia 

    • Poprawione zgłoszone defekty
    • @isom
      • z tym przyciskiem nie działającym podczas braku połączenia z MQTT Brokerem – walczyłem i walczyłem na Wemos i wszystko mi działało. Możesz przy okazji sprawdzić u siebie
      • ten proble z Termostatem co zgłosiłes popawiłem, natomiast nie mam teraz, jak sprawdzić bo drugi czujnik DS18B20 mam uszkodzony.
    • Stan prac

    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ść

  20. isom pisze:

    @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 ?
     

    • adrian pisze:

      @isom

      • można mieszać przekaźniki i czujniki między regulatorami – hm… nie wiem, czy masz coś specyfczinego na myśli. W  wersji 1 termostat był przypisany do konkretngo przekaźnika. Tutaj to przebudowałem i każdy termostat funkcjonuję swoim własnym życiem i można mieszac dowolnie. Oczywiście trzeba wiedzieć co się robi
      • wg mnie zrealizujesz swoja potrzeba na tej wersji, ale na 100% nie jestem pewien. Dlaczego, nie jestem na 100% pewien bo, to że oprócz kiedy ma się włączyć / wyłączyć to w czasie wartości tych czujników się zmieniają i trzeba je uwzględnić w całej logice. Nie wiem, jak one się bedą zmieniać w czasie.

      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

      • Włącz, czujnik dół, większy 999 (nigdy nie wystąpi – regulator 1 nigdy nie włączy przekaźnia)
      • Wyłącz, czujnik dół, większe 35

      Regulator 2

      • Włącz, czujnik góra, mniejszy 40
      • Wyłacz, czujnik góra, więszy 999 (nigdy nie wystąpi – regulator 2 nigdy nie wyłączy przekaźnia)

      Ż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:

      • Jeśli czujnik dół jest większy niż 35 to jaki są minimalne / max wartości czujnika góra (mniej więcej)
      • Jakie moga być wartości czujnika dół, gdy czujnik góra ma te 40st

      Najważniejsze to, czy może wystąpić taka sytuacja, że 

      • czujnik dół będzie większy od 35
      • czujnik góra mniejszy 40

      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

      Zrzut ekranu 2020 09 27 215946
  21. isom pisze:

    @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

    • adrian pisze:
      Dodane przez: @isom

      @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 . 

      Tak, owczywiśce, ale czy wystąpi taka sytuacja np.

      • czujnik dół będzie większy np 36
      • czujnik góra 39

      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ć

    • adrian pisze:
      Dodane przez: @isom

      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. 

      reg12
      Dodam że staram się żeby oba termometry wskazywały albo powyżej 28 , albo poniżej 26

       

      Jeśli i jeszcze mózg pracuje to:

      Włączy się w tylko w tych dwóch sytuacjach

      • Czujnik jeden większy niż 27 i czujnik dwa większy niż 26 (reg 1 go uruchomi) lub 
      • Czujnik dwa większy niż 56 i czujnik jeden większy niż 8 (reg 2 go uruchomi)

      I bedzie tak długo włączony dopóki nie wystąpi jedna z sytuacji wyłączenia

      • Czujnik jeden mniejszy niż 8 i czujnik dwa mniejszy niż 56 (reg 1 go wyłączy) lub 
      • Czujnik dwa mniejszy niz  26 i czujnik jeden mniejszy niż 27 (reg 2 go wyłączy)

      Przekaźnik będzie pstrykał gdy:

      • Czujnik jeden większy niż 27 i czujnik dwa mniejszy niż 26 (reg 1 go włączy, Reg 2 go ponownie wyłączy)
      • Czujnik jeden mniejszy niz 8 i czujnik dwa większy od 56 (reg 1 go wyłaczy, Reg 2 go ponownie włączy)
  22. isom pisze:

    @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.
     

  23. isom pisze:

    @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.
     
     

    • adrian pisze:

      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ę

  24. adrian pisze:

    @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

     

  25. isom pisze:

    @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 

    • adrian pisze:

      @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

  26. adrian pisze:
    • Wypuściłem wersję produkcyjną
    • Dokumentację będę aktualizował sukcesywnie 
    • Wersja do pobrania na stronie AFE Firmware
    • W przypadku defektów, które nie zostały znalezione będe poprawiał je na bieżąco. Prosze je zgłaszać tutaj.

    Dzięki za pomoc w testowaniu!

    Zamykam wątek

Dodaj komentarz