Wpis z mikrobloga

Jakiś czas temu @Szloch robił tutaj AMA na temat inteligentnych domów/budynków i przy tej okazji podczepiłem się do niego żeby podpytać o ogrzewanie, ponieważ większość instalacji inteligentnego budynku, które są wykonywane integrację centralnego traktuje po łebkach na zasadzie - czujniki temperatury + sterowanie zaworami i ewentualnie podanie zewnętrznego sygnału do kotła (jeśli producent dopuszcza taką możliwość). Takie rozwiązanie oczywiście działa ale daleko jest mu do pełnej integracji.

W takich przypadkach pojawia się również problem, kto będzie zarządzał np. pompą cyrkulacyjną, zasobnikiem wody, ponieważ są to elementy zewnętrzne względem kotła i mogą być sterowane z instalacji lub przez sam sterownik kotła.

Jako, że profesjonaliści odpuszczali te elementy to sam czaiłem się od dłuższego czasu na ten temat. W końcu się do tego zabrałem. Koszty integracji wyglądają następująco:
- Moduł ebus-usb zakupiony tutaj, koszt z przesyłką 89€
- Raspberry pi 2B z kartą pamięci i donglem wifi (ethernet jeszcze niezarobiony) - w sumie ~150 PLN
- OpenHab 2 [dalej OH2] jako element obsługujący komunikację z różnymi standardami, reguły oraz dostarczający interfejs użytkownika - koszt *0 PLN*.

Zanim podniosą się lamenty tych, którzy wiecznie siedzą na aliexpress i jadą na cebuladeals. Za 550 PLN nie dostaniecie nawet modułu "internetowego" pozwalającego na użycie jakiejś dziadowskiej aplikacji od producenta kotła na telefonie.

Efekt moich starań można zobaczyć na obrazku poniżej:
http://new.tinygrab.com/b261b9985ee8d30da15373d81d0aed082462dfa3f8.png

Oprócz tego oczywiście potrzebny jest kociołek oraz sterownik, ale to raczej każdy dom ma. W moim przypadku jest to Vaillant + calormatic. Jest to o tyle istotne że zarówno kocioł jak i sterownik komunikują się przy pomocy magistrali szeregowej typu ebus (max 24 V). Ten sam standard jest wykorzystywany w kotłach Wolf. Innym standardem jest OpenTherm (np. kotły Termet) oraz optolink (kotły Viessmann). Nieważne z czego skorzystasz, ważne żeby ktoś odwalił już kawał ciężkiej roboty i rozpracował protokół, jeśli nie jest on udokumentowany przez producenta (a zazwyczaj nie jest). Sam skorzystałem z ebus, bo w razie niepowodzenia ze złożeniem adaptera z rezystorów i innego elektronicznego badziewia (a tak się stało) mogłem kupić u kogoś gotowca. Wyżej wspominany OpenHab obsługuje oba standardy to jest optolink oraz ebus, były również przymiarki do opentherma.

Instalacja hardware jest bardzo prosta. Najpierw otwieramy kociołek, dobieramy się do płyty głównej. W moim przypadku na płycie był podłączony już sterownik więc miałem wpięte kable które spiąłem ze sobą i wrzuciłem z powrotem. Puste złącze ebus wygląda tak:
http://img.bricoleurdudimanche.com/IMG/jpg/1415182363.jpg

Na drugim końcu żyły kablawpinamy do koplera (kolejność bez znaczenia). Po tym wpinamy kabelek USB i gotowe. Sam tak szybko to wszystko spinałem za pierwszym razem, że nie doczytałem instrukcji i przez godzinę zastanawiałem się czemu nie działa komunikacja. Otóż pod jedną z dziurek na koplerze (Threshold) jest potencjometr, którym trzeba dostroić urządzenie zależnie od użytego kabla oraz jego długości. Po ustawieniu tego w końcu zacząłem widzieć jakieś bity latające tu i ówdzie i świecącą diodkę DATA. (ʘʘ)
https://www.eservice-online.de/media/image/thumbnail/12001ebuskopplerusb_720x600.jpg

Po stronie raspa i openhaba było prawie z górki. Projekt jest na etapie pracy nad dwoma wersjami - 1.8/1.9 oraz 2.0 (alfa). Ta ostatnia wersja jest jeszcze niestabilna, ale ze względu na to, że używa środowisko które bardzo dobrze znam (Apache Karaf) nie mogłem się oprzeć żeby z niego nie skorzystać. Część bindingów została już sportowana do 2.0, niestety byłem chyba jedną z pierwszych osób korzystających z integracji z ebusem v 1.8 pod 2.0 więc trafiłem na błędy (całe szczęście łatwe do usunięcia).
Trochę upierdliwe było również rozpracowanie konfiguracji, ponieważ przykłady nie pokazują w jaki sposób odczytywać na bieżąco danych. Problematyczne jest również wysyłanie danych (z tym dalej walczę). Wczoraj jak ostatni debil siedziałem w kotłowni przez pół nocy kręcąc potencjometrem w te i wewte jak przy Amidze myśląc że od tego zaczną latać datagramy (a tu lipa - większość to komendy a broadcast na szynie ma tylko kilka informacji).

Teraz lecimy z konfiguracją. OH2 ma podział konfiguracji na, powiedzmy, domeny lub inaczej obszary (nie mylić z obszarami budynku - to definiujemy jako grupy). Jedną z nich jest sitemap - czyli definicja interfejsu użytkownika oraz ogólnie przyjętej prezentacji, drugą istotną konfiguracją wykorzystaną w moim przykładzie jest things w którym definiuje się "rzeczy" oraz zmienne.

Okrojona konfiguracja rzeczy:

Group GroundFloor "Parter"
Group FirstFloor "Poddasze"
Group Weather "Pogoda"

// ...
Group WeatherChart
Number Weather
Temperature "Temperatura zewnętrzna [%.1f °C]" (Weather, WeatherChart) { ebus="id:controller.tempoutside.tempoutside, cmd:controller.tempoutside, refresh: 60" }
Number HeatingInside "Temperatura wewnętrzna [%.1f C]" (Heating, HeatingChart) { ebus="id:controller.temproom.temproom, cmd:controller.temproom, refresh: 60" }
// i tak dalej...`

Okrojona konfiguracja sitemap:

Group item=GroundFloor icon="groundfloor"
Group item=FirstFloor icon="firstfloor"
Group item=Garage
Group item=Garden

// ... itd itp

Text label="Ogrzewanie" icon="heating" {
Text item=Heating_Temp_Flow
Text item=Heating_Temp_Return
Frame {
Text item=Heating_Temp_Max icon="temperature" valuecolor=[>24="red",>21="green",<=21="blue",<=18="gray"]
Text item=Heating_Temp_Min icon="temperature" valuecolor=[>24="red",>11="green",<=21="blue",<=18="gray"]
Text item=Heating_LastUpdate icon="clock" visibility=[Heating_LastUpdate>30] valuecolor=[Heating_LastUpdate>120="orange", Heating_LastUpdate>300="red"]
}
Frame {
Switch item=Heating_Chart_Period icon="chart" label="Okres prezentacji" mappings=[0="Hour", 1="Day", 2="Week"]
Chart item=Heating_Chart period=h refresh=600 visibility=[Heating_Chart_Period==0, Heating_Chart_Period=="NULL"]
Chart item=Heating_Chart period=D refresh=3600 visibility=[Heating_Chart_Period==1]
Chart item=Heating_Chart period=W refresh=3600 visibility=[Heating_Chart_Period==2]
}

Text item=Heating_Pump_Modulation icon="none"
Text item=Heating_Curve icon="none"
}

Jak widać definicja GUI jest dość prosta, acz na tyle uniwersalna że pozwala wygenerować widoki dla przeglądarki jak i dla urządzeń mobilnych. Dla niecierpliwych dodam informację, że jest też aplikacja natywna ios/android która wykorzystuje API HTTP openhaba.

Z dodatkowych możliwości, które możecie uzyskać wraz z OH należy dodać - obsługę zapisywania danych, chociażby w formacie rrd (można odczytać biblioteką rrd4j lub RRDtool), silnik reguł pozwalający na reagowanie na dowolne zdarzenia, które są emitowane przez końcówki. Przykładowe regułki możliwe do uzyskania:
- wyłącz wentylację mechaniczną kiedy ktoś otworzy okno na dłużej niż minutę (kontaktron + rekuperacja)
- nie grzej wody w zasobniku jeśli alarm jest uzbrojony (alarm + co)
- zwiększ krzywą grzewczą/temperaturę zasilenia instalacji CO nad ranem w celu rozgrzania domu przed pobudką (tylko co)
- zamknij okna dachowe przy uzbrojeniu alarmu (siłowniki fakro + zwave)
.. i tak dalej. Najlepsze w tym wszystkim jest to, że nie wymaga to praktycznie żadnego nowego kabla i pozwala zintegrować istniejące rzeczy kosztem dongli usb. Nie żebym był jakimś fanem systemów bezprzewodowych (fibaro to gui do zwave dlatego ssie ;P), zauważam jedynie możliwość łatwej integracji wielu standardów branżowych przy pomocy oprogramowania, bo podejście oparte na sprzęgach systemowych typu hardware-hardware jest bardziej upierdliwe. Nawet w sieciach komputerowych dąży się do ich definiowania przy pomocy rozwiązań programowych.

To tyle. Więcej relacji będzie jak uda mi się zintegrować alarm i dopisać jakieś ciekawe regułki. :
)

#budujzwykopem #inteligentnydom #zainteresowania #budownictwo #raspberrypi #zywotsplatcha #integracjasplatcha #java
  • 5
@Maxxtom: rpi kupowałem w Botlandzie, dongla wifi oddzielnie w kamami (tp-link, 30 PLN). Generalnie każdy sklep się na da.

Kamami jest w Legionowie, powiedzmy że mam po drodze do wawy więc po pierdoły mogę podjechać zamiast bulić za kuriera. Botland najtańszy nie jest, spokojnie znajdziesz coś za 160 PLN na allegro. Sam brałem w zestawie z zasilaczem i obudową oraz kartą pamięci 32 GB.
Później i tak będę musiał to przerzucić
@splatch: Jesli mial bym tyle hajsu ze stac by mnie bylo na inteligentny dom i wszystkie gadzety z tym zwiazane, to raczej zainwestowal bym w panele fotowoltaiczne + pompe ciepla. Do tego wentylacja i rekuperator i mamy bezobslugowe ogrzewanie/klimatyzacje. Na start wychodzi drozej, ale pozniej koszta nizsze niz przy kotle na jakiekolwiek paliwo i komfort przede wszystkim jest duzo wyzszy a chyba na tym najbardziej zalezy uzytkownikom inteligetnych domow
@ETplayer: Faktem jest, że pompa jest tańsza w eksploatacji, jakkolwiek nie można zapominać o jej ograniczeniach - tj. maksymalna i już nieopłacalna ekonomicznie temperatura czynnika grzewczego uzyskanego z takiego źródła to 45-50C, co ledwo wystarcza na to żeby mieć gorącą (nie mówię ciepłą) wodę. Optymalne temperatury czynnika grzewczego to 35C, co wystarcza na zasilenie podłogówki / ogrzewania płaszczyznowego.
Komfort to jest wtedy gdy po powrocie z wyjazdu możesz podnieść temperaturę w