W 2017 roku połączyłem Raspberry Pi z moim gazowym kotłem kondensacyjnym Vaillant. Połączenie nadal działa, zupełnie bezawaryjnie, chociaż zostało też nieco zmodernizowane. Sześć lat temu używałem pierwszej wersji adaptera, z tzw. pokrętłem, czyli kapryśnym potencjometrem do „strojenia” sygnału. Co więcej adapter komunikował się przez port szeregowy z Raspberry Pi, co było dodatkowym utrudnieniem, ze względu na ograniczenia tego interfejsu. Myślę, że nadszedł już moment, żeby napisać, jak to można poprawić.
eBus adapter 2.2
W 2021 roku nawiązałem kontakt z Geraldem, prywatnym sprzedawcą na eBay’u, który oferował płytki eBus adaptera w wersji 2.2. Wtedy był to dość duży przeskok technologiczny, a sam sprzedawca, bardzo miły człowiek, zaoferował udostępnienie gotowego adaptera do testu.
Przy okazji postanowiłem pozbyć się jednego Raspberry Pi, które obsługiwało wyłącznie eBus z poprzednią wersją adaptera i zastąpić je przez ESP8266, komunikujące się przez WiFi z moim głównym Raspberry Pi, gdzie jest zainstalowany ebusd, zbierane są dane, a także obsługiwana jest logika „inteligentnego domu”.
Zaletą takiej konfiguracji jest prostota – jeżeli w kotłowni mamy zasięg WiFi, to umieszczamy tam urządzenie, podłączamy do prądu z użyciem „ładowarki do telefonu”, a resztą zajmuje się komputer, np. Raspberry Pi, podłączony do tej samej sieci.
Oczywiście nasz ESP8266 wymaga wstępnego przygotowania, które polega na wgraniu przeznaczonego dla niego oprogramowania ebusd i konfiguracji. Natomiast proces programowania jest dobrze opisany na stronie projektu, a konfiguracja odbywa się przez przeglądarkę www.
Jak widać na zrzucie ekranu, cały czas używam starej wersji z 2020 roku, ale ponieważ rozwiązanie jest niezawodne i w pełni funkcjonalne, to nie było potrzeby dotykania czegokolwiek.
eBUS adapter v5
Skoro nie było potrzeby zmian, to skąd pomysł na ten tekst? Wymieniam akurat dwa inne kilkuletnie adaptery w wersji 1.0 na nową wersję, żeby bezproblemowo móc nie tylko odczytywać, ale także sterować ogrzewaniem, bez żmudnego ustawiania pokrętła potencjometru.
Obecna, piąta wersja adaptera eBUS jest bardzo uniwersalna. Sercem układu jest mikrokontroler ESP32, który odpowiada także za komunikację. Co więcej, istnieje już tylko jedna wersja układu, z uniwersalnymi wyprowadzeniami, która może obsłużyć zarówno transmisję WiFi (bez potrzeby łączenia z żadnym dodatkowym układem), ethernet (przez układ Wiz5500, np. USR-ES1) oraz szeregową (przez USB lub bezpośrednio). Co więcej, adapter można wprost nałożyć na piny Raspberry PI, co także zapewni transmisję szeregową. Jak widać, twórca bardzo przyłożył się do pracy i postawił sobie za cel pozbycie się różnych wersji adaptera.
Dzięki temu, że integralną częścią interfejsu jest układ ESP32, nie ma już potrzeby samodzielnego wgrywania oprogramowania. Układ jest więc dostarczany gotowy do użycia.
Na stronie projektu dostępna jest bardzo dobra dokumentacja adaptera, która wyjaśnia zasadę działania, jak i wyprowadzenia połączeń. Jest także możliwość zamówienia gotowego układu w bardzo przystępnej cenie, natomiast zwykle trzeba poczekać na wyprodukowanie kolejnej partii, co czasem może potrwać nawet kilka miesięcy.
eBUS adapter v5 i USR-ES1
Do sterowania ogrzewaniem będę używał eBUS adaptera zarówno przez WiFi, jak używając komunikacji przewodowej. Aby obsłużyć połączenie Ethernet, najlepiej jest użyć modułu USR-ES1. Jest on oparty o układ W5500, a dodatkowo pasuje sprzętowo do eBUS v5. Wystarczy więc go nałożyć na adapter i włączyć w konfiguracji właściwą opcję.
Obudowa do eBUS v5
Oczywiście sam adapter to nie wszystko. Trzeba go jeszcze jakoś opakować przed podłączeniem. Jak zawsze do tego celu użyłem własnoręcznie zaprojektowanej obudowy.
Samo urządzenie ma niewielkie rozmiary, więc obudowa jest mniej więcej wielkości pudełka od zapałek. Jedna z opcji posiada miejsce na wkręt do zamocowania na ścianie, bo z mojego doświadczenia wynika, że często jest to bardzo praktyczne. Projekt obudowy gotowy do druku, jak zawsze udostępniam do pobrania.
Uruchomienie i konfiguracja – Ethernet
Uruchomienie interfejsu eBUS v5 je bardzo proste. Podłączamy urządzenie do prądu, łączymy się z siecią WiFi utworzoną przez ESP32 będący sercem adaptera i wchodzimy na stronę konfiguracyjną (http://192.168.4.1).
Jak widać po „eBUS signal: no signal„, urządzenie nie jest jeszcze podłączone do magistrali eBUS, ale w pierwszej kolejności chcemy wykonać inicjalną konfigurację. Jeżeli chcemy przełączyć się na łączność przewodową przez moduł USR-ES01, to musimy przejść do zakładki Pins i wybrać konfigurację odpowiadającą interfejsowi Ethernet i nacisnąć Save.
Następnie możemy już włączyć interfejs Ethernet w zakładce Configuration. Wybieramy adres IP, podjemy maskę i bramę a także nazwę naszego hosta i to wszystko.
Po zapisaniu zmian i podłączeniu przewodu lub restarcie, powinna być już możliwość uruchomienia interfejsu konfiguracyjnego www przez nowy adres IP.
Warto w tym miejscu zaznaczyć, że gdybyśmy zostawili pole z adresem IP puste, to zostałby on przydzielony przez DHCP. Warto jednak pamiętać, że zazwyczaj zależy nam na stałym adresie IP, czy to nadanym ręcznie czy przez stałą dzierżawę DHCP. Dlaczego? Ponieważ z adresem urządzenia będzie łączył się program, który będzie wykonywał odczyty parametrów kotła lub też zmieniał parametry. W moim przypadku jest to ebusd oraz skrypty działające na Raspberry Pi.
Konfiguracja – WiFi
Oczywiście mam świadomość, że nie każdy ma w kotłowni lub dogodnym do podłączenia miejscu sieć Ethernet. Pewnie więcej osób będzie wykorzystywać połączenie WiFi, nawet jeżeli kabel wprowadza mniejsze opóźnienia i daje lepszą stabilność.
Domyślnie adapter EBUS uruchamia się w trybie Access Pointa i ten tryb możemy też konfigurować.
Natomiast poza bardzo specyficznymi zastosowaniami i początkową konfiguracją, ten tryb nie będzie raczej wykorzystywany. Większość osób wybierze raczej tryb WiFi station i połączy eBus adapter z istniejącą siecią domową. Tutaj także możemy zdać się na przydział adresu IP przez sieć router dzięki protokołowi DHCP lub też wpisać adres IP ręcznie. Ja oczywiście preferuję tę drugą opcję.
Co dalej?
Mamy już sprzęt uruchomiony i wstępnie skonfigurowany, należy więc go podłączyć fizycznie do magistrali eBUS, czyli do naszego kotła grzewczego albo innego kompatybilnego urządzenia. Jak to zrobić na przykładzie kotła kondensacyjnego Vaillant ecoTec VC 146 już opisywałem, więc pewnie nie warto się powtarzać.
Kolejnym krokiem będzie instalacja ebusd, o czym także można przeczytać w tym samym tekście. Do tego tematu może jednak wrócę, żeby pokazać dokładne opcje dla połączenia sieciowego, ale to już raczej temat na osobny tekst.
Do czego takie połączenie potem można będzie wykorzystać? Np. do dostosowywania poziomu grzania domu do obecności domowników, sterowania dostarczaniem ciepła podczas wyjazdów na ferie, czy chociaż opisywanego wcześniej pomiaru zużycia gazu.
Myślę, że wkrótce wrócę do sterowania parametrami pracy ogrzewania przy pomocy adaptera eBUS i skryptów shell lub Nodejs. O ile czas pozwoli i będzie zainteresowanie.
A czemu po prostu nie ustawiasz statycznego dzierżawy IP w routerze? W sumie nigdy nie testowałem czy ustawienie statycznego IP, powoduje iż urządzenie jest widoczne w routerze jako klient np. w liście klientów DHCP
Bo to jeden dodatkowy krok – DHCP musi działać gdy urządzenie startuje. Oczywiście tracę centralne zarządzanie. Kwestia podejścia i preferencji.
Czesc link do obudowy nie dziala.
Faktycznie, utknął w oczekiwaniu na publikację. Ponowiłem i mam nadzieję, że wkrótce się pojawi.
Cześć,
Niedawno rozpocząłem zabawę z adapterem. Udało mi się wszystko ładnie połączyć.
Mam zagwozdkę związaną ze zrozumieniem, jak działa ustawianie parametrów. Posiadam piec z regulatorem VRC 700. Regulator ustawia parametry pracy pieca (nie ma większego znaczenia które). W momencie podłączenia adaptera ebusd również ustawia te parametry (a przynajmniej daje taką możliwość).
Jak zatem od strony pieca to wygląda, gdy dwa urządzenia zapisują wartość danego rejestru? Jest jakaś priorytetyzacja danych z ebus?
Innymi słowy, jeżeli poprzez ebus zmienię wartość jakiegoś rejestru, a następnie zrobię to samo korzystając z regulatora, która wartość będzie obowiązująca?
Czesc, czy podlaczenie eBUS adaptera daje mozliwosc resetowania zdalnie bledow ktore pojawia sie na kotle / pompie ciepla?