Router z Openwrt, D...
 
Powiadomienia
Wyczyść wszystko

Router z Openwrt, Domoticz, MQTT i Bramka RF.

15 Wpisów
4 Użytkownicy
1 Reactions
5,282 Wyświetleń
kpisiek
(@kpisiek)
Wpisów: 73
Kontrybutor
Autor tematu
 

W związku, że automatyka domowa coraz szybciej staje się standardem i moje lenistwo, które poprawia komfort życia -  tak więc lenistwo, które za mną przemawiało - postawiłem na zmiany w moim gospodarstwie domowym.. Do zabaw wykorzystałem router w moim przypadku Lenovo D2 1200AC posiadający 512MB pamięci,a dzięki USB dodatkowe 32GB na przestrzeń - skryptów  (wcześniej TP-Link WDR-4300 750N 2xUSB 128MB RAM). Zrezygnowałem z Supla ponieważ działała głównie online, a było trzeba mi systemu offline z dostępem po WAN.

Padł wybór na router z USB w/w, którego zakupiłem za 120 zł w promocji Ebay - leciał do mnie 2 tygodnie Chiny -> Holandia -> Polska. Obecnie do wyhaczenia na Ebay za 140 zł z darmową wysyłką. |

Wybór z uwagi na pamięć i procesor 2 rdzeniowy. 

Co dalej? Jestem zwolennikiem otwartego oprogramowania Openwrt (w tym Gargoyle, DD-WRT), które udowadnia przeciętnemu Kowalskiemu - że ograniczone możliwości nie posiada router, a jego użytkownik. Oprócz tego, że mamy dostęp do w pełni odblokowanego routera - to największą rodzynką, moim zdaniem jest skrypt Adblock - który blokuje wszelkie dziadostwo (szpiegi, niechciane strony, reklamy od strony DNS) nie pobierając transferu (to dobra informacja dla użytkowników GSM, którzy posiadają limity).

Jednak wracając do Smartnego Domu. Na routerze zainstalowałem bez problemu i zbędnych poradników Domoticz (póki co tylko on wspierany). Zaraz po instalacji skrypt pojawił się pod adresem routera IP:8080. 

Trochę problemów sprawił serwer MQTT, bo było go trzeba zainstalować z uwagi na BRIDGE RF. Polski poradnik Cezarego z Eko one - zawierał podstawowe informacje - lecz nie wystarczające do pracy z domoticzem i bridge rf. Należało doinstalować (podczas instalacji pakiet mosquitto-ssl, który zawierał manager haseł). Całą operację należało wykonać z konsoli shell (np przez aplikację putty lub telnet).

https://eko.one.pl/?p=openwrt-mosquitto - poradnik Cezarego jak założyć Brokera, przed zamknięciem shella wpisać polecenie mosquitto_passwd -c /etc/mosquitto/passwd logindonald

Oraz wymazać plik konfiguracji mosquitto.conf i utworzyć oto taki prosty:

port 1883
allow_anonymous false
password_file /etc/mosquitto/passwd

a następnie wsłuchać się, w konsoli co piszczy w trawie, w moim przypadku (nasłuchiwanie -t "#" nasłuchuje całego mosquitto - robi to tak samo domoticz)

mosquitto_sub -h localhost -p 1883 -t "#" -u "logindonald" -P "hasloduck"

---
mając pewność, że serwer mosquitto stoi, domoticz stoi - trzeba było skonfigurować Bridge RF, na niezależnym oprogramowaniu i jedynym w miarę mądrym - Tasmota Bridge RF (ubolewam, że ESPEasy nie wspiera oraz Espurna która jest mało czytelna i chyba najgorsza z modów OpenMQTTgateway). 

proces zmiany oprogramowania jest pod adresem:
https://github.com/arendst/Sonoff-Tasmota/wiki/Sonoff-RF-Bridge-433

oczywiście, są tam 2 firmware - jeden dla układu ESP (wifi i ta opcja nas interesuje), oraz dla układu EFM - układ odpowiedzialny za kompatybilność z pilotami różnych marek

nas interesuje oprogramowanie TASMOTA (sonoff-pl.bin)
https://s2.ifotos.pl/img/tasmotajp_qwqaher.jpg

od razu uprzedzam - nie będą nam działać przyciski od 1 do 16 z uwagi, nie wiem dlaczego - MQTT wysyła komunikat nieczytelny nawet dla mnie, a właściwie musimy wywołać żądane działanie

w czym problem? problem taki, że Bridge RF tasmota po kliknięciu kanału 1 wysyła, RFKey1 Learned Send(skopiowany klucz, a nie wyznaczone polecenie), z kolei wciskając przycisk na pilocie uzyskujemy oczekiwaną treść

Aktywny
{"RfReceived":{"Sync":9980,"Low":370,"High":960,"Data":"001492","RfKey":1}}
{"idx":22,"nvalue":0,"svalue":"5266","Battery":63,"RSSI":10}
{
"Battery" : 63,
"RSSI" : 10,
"description" : "",
"dtype" : "Usage",
"id" : "82022",
"idx" : 22,
"name" : "Przekaznik RF",
"nvalue" : 0,
"stype" : "Electric",
"svalue1" : "5266",
"unit" : 1
} {"RfKey1":"Learned sent"}

sam Bridge RF konfigurujemy w taki sposób, aby Konfiguracja MQTT zawierała informacje naszego serwera czyli w tym przypadku routera, ze wcześniej skonfigurowanym loginie i haśle z poziomu konsoli shell.

patrz screen -> http://prntscr.com/n4smt4

następnie ustawiamy domoticz - tj logujemy się na domoticza i tworzymy połączenie z MQTT oraz sprzęt Dummy
patrz screen -> http://prntscr.com/n4snj0
patrz screen -2 -> https://prnt.sc/n4sovr

następnie tworzymy wirtualne urządzenie (na dummy) - ale nie tworzymy przycisku, tylko w tym przypadku Licznik Energi - który pojawi się nam w zakładce użytkowe 
patrz screen --> http://prntscr.com/n4sr4e

mając taką konfigurację spisujemy IDX (identyfikator urządzenia), który będzie nam potrzebny do Bridge RF Tasmota
- patrz screen -> http://prntscr.com/n4ssns

wchodzimy do naszej tasmoty i ustawiamy konfigurację Domoticza i wpisujemy idx wszędzie - inaczej nie będzie nam działać kontrola z pilota na poszczególne urządzenia WI-FI 

patrz screen -> http://prntscr.com/n4st3j

konfigurację Tasmoty pod kątem domoticz mqtt mamy za sobą, co dalej... czas na naukę pilota z konsoli Bridge RF (przechodzimy do Konsola w Bridge RF), poleceniem rfkey1 2 - programujemy 1 przycisk w tasmocie, wpisując rfkey2 2 programujemy drugi przycisk w tasmocie itd

po wpisaniu nie trzeba w panicznie bezpośrednim sąsiedztwie mieć pilota ale maks pół metra i u mnie działało bez problemu

20:28:44 CMD: rfkey2 2
20:28:44 MQT: stat/bridgerf1/RESULT = {"RfKey2":"Start learning"}
20:28:48 MQT: stat/bridgerf1/RESULT = {"RfKey2":"Learned"}
20:28:57 MQT: tele/bridgerf1/RESULT = {"RfReceived":{"Sync":9960,"Low":380,"High":960,"Data":"001492","RfKey":1}}
20:28:57 MQT: domoticz/in = {"idx":22,"nvalue":0,"svalue":"5266","Battery":63,"RSSI":8}

I jak widzimy - komenda wywołała nam polecenie nauki klawisz 2 - learning - nauka , zaraz 4 sekundy później Bridge RF nauczyło się klucza z pilota i teraz co najważniejsze - po ponownym naciśnięciu pilota - tasmota musi nam wysłać polecenie domoticz/in oraz parametr svalue (w moim przypadku 5266) - nie może być ta wartość zerowa - należy ponownie wywołać naukę pilota, lub sprawdzić czy konfiguracja MQTT i Domoticza w tasmocie jest tak jak wyżej wspominałem. 

nie przejmujcie się, że macie tam napis battery - lepsze to, niż zakładać internetowy serwer node i inne do transkrypcji komunikatów MQT - jeżeli domoticz odbierze ten komunikat to zobaczycie w użytkowych informację - 5266 Watt 

patrz screen -> http://prntscr.com/n4sxyx

świetnie - jeżeli jest tak jak Ci piszę (mamy konfigurację dwukierunkową), to możemy stworzyć zdarzenie Blocky aby sterować poszczególnym urządzeniem 

więc wchodzimy w zakładkę konfiguracja -> więcej opcji -> zdarzenia i tworzymy zdarzenie 

Skrypt Blocky rozpoznaje nam kod 5266(musimy go wpisać), sprawdza czy mamy załączone czy wyłączone urządzenie i wywołuje odwrotne działanie przekaźnika -widać na skrypcie poszczególne urządzenia. Czas ustawiony 0.1 - ustawiony na 0 w ogóle nie reaguje, zapisujemy pod dowolną nazwą (zaznaczamy Zdarzenie aktywne) i od teraz cieszymy się bramką RF z pilotem RF, który steruje nam urządzenia RF ( w moim przypadku Kanał 1 to kanał z 4CH bez modułu RF)

Oczywiście z Domoticz w androidze dalej steruję tym co chcę (ja zdalnie, żona lokalnie - obawiała się problemów z brakiem internetu, że automatyka przestanie działać).  RF sterują mi po szczególnymi urządzeniami (dodatkowo).

Mamy serwer lokalnie (router) , ale możemy zarządzać przesyłem danych będąc u kumpla popijając napoje procentowe. Z podglądem do wszelkich zdarzeń. 

Macie pomysł jak usprawnić, przyśpieszyć działanie zachowując lokalne działanie bez internetów - proszę dać znać. Nałożymy poprawki na artykuł.

 
Dodane : 29/03/2019 8:44 pm
isom reacted
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

dzięki kolego @kpisiek dobra robota , szkoda tylko że na routerze 🙂 za 150 zł można mieć malinę w wersji 3b+ do tego mały SSD i robisz co chcesz a wsparcie nieporównywalne. Odpal na tym routerze MotionEye  tylko z jedną kamerą a zobaczysz dlaczego tak uważam.

 
Dodane : 29/03/2019 10:47 pm
(@mirmil99)
Wpisów: 180
Pomocny
 

no i dobrze;)

a teraz pytanie, dlaczego musimy wpisac wszedzie ten sam idx (inaczej nie będzie nam działać kontrola z pilota na poszczególne urządzenia WI-FI) co to dokladnie oznacza? oraz czy mozemy uczyc/sterowac 16 kanalami?

 
Dodane : 29/03/2019 11:14 pm
kpisiek
(@kpisiek)
Wpisów: 73
Kontrybutor
Autor tematu
 
Dodane przez: mirmil99

no i dobrze;)

a teraz pytanie, dlaczego musimy wpisac wszedzie ten sam idx (inaczej nie będzie nam działać kontrola z pilota na poszczególne urządzenia WI-FI) co to dokladnie oznacza? oraz czy mozemy uczyc/sterowac 16 kanalami?

zauważyłem, że jak czegoś tam nie wpisałem to domoticz nie zawsze wyłapywał pakiet

Dodane przez: isom

dzięki kolego @kpisiek dobra robota , szkoda tylko że na routerze 🙂 za 150 zł można mieć malinę w wersji 3b+ do tego mały SSD i robisz co chcesz a wsparcie nieporównywalne. Odpal na tym routerze MotionEye  tylko z jedną kamerą a zobaczysz dlaczego tak uważam.

myślę nad tym, bo w sumie malinka już mi chodzi od kilku lat po głowie - ale jakoś nie potrafię zmotywować się

 
Dodane : 31/03/2019 9:36 am
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

Bardzo dobra robota. Sam ostatnio też migrowałem z leciwego WDR4300 na Newifi 3 - ta sama ścieżka, tyle, że ja zapłaciłem 136zł.

Pomimo dużego potencjału tego routera, automatykę pozostawiam na Raspberry, bo:

  1. Ja akurat używam OpenHAB i mocno się do niego przywiązałem.
  2. OH stoi na Raspberry Pi 3 i wykorzystuję 8 lokalnych GPIO (za chwilę dodam kolejnych 4), a na routerze tego nie zrobię.
  3. Funkcjonalnie to są różne sprawy i nie ma zysku z integrowania wszystkiego na jednym urządzeniu, ale są zagrożenia (aktualizować trzeba obydwa, a restarty routera zwykle są częściej niż OH - tak wiem, że na w statystykach EKO.ONE.PL niektórzy mają czas nieprzerwanej pracy ponad 2 lata, ale to raczej nie świadczy o bardzo rzetelnym administrowaniu tym sprzętem).
  4. Koszty eksploatacji Raspberry są znikome (mniejszy pobór prądu niż Newifi), a wsparcie światowe wszelkich rozwiązań jest wręcz nieskończone.

Nie zmienia to faktu, że podziwiam Twój kawał dobrej roboty.

 
Dodane : 02/04/2019 8:16 am
(@mirmil99)
Wpisów: 180
Pomocny
 

ba to byla na tyle wartosciowa robota, ze az zakupilem na wschodzie RF Bridge;)!!!, do tej pory nie bardzo widzialem sensowne zastosowanie, ten wpis duzo zmienil...

i tez sie przesiadam na Raspberry, doslownie na dniach, ale powod jest troszke inny, u mnie zwyczajnie w domu pozenilem juz tyle urzadzen/zasad/zaleznosci, ze trudno teraz byloby bez tego ogarniac chalupe, a aktualnie Domo stoi na virtualnym Ubuntu na dysku sieciowym Qnapa, coz dysk moze zawsze "strzelic", czyli dojrzalem juz do backupu...

nie chce zakladac kolejnego watku, to moze tu podpytam, jaki system polecacie na raspberry? podstawa oczywiscie bedzie automatyka, ale aby komputerek sie nie nudzil, to na pewno bedzie tam Kodi i teraz czy instalowac predefiniowane np: OSCM, LibreElec, czy klasyczny Stretch (Kodi ma zajmowac interfejs graficzny zaraz po starcie) lub moze cos innego jest bardziej wygodne?

 

 

 

 
Dodane : 02/04/2019 8:36 am
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

Ja bym odradzał dokładanie wszystkiego do Raspberry Pi 3. Sam używam go tylko do OpenHAB i o ile na początku rzeczywiście malinka się głównie nudziła, to teraz już trochę ma roboty. Zajętość procesora ciągła to 5% a chwilowa dochodzi do 70%, ale głównym hamulcem jest dostępność RAM, gdyż na świeżo po restarcie jest to niby tylko 40% zajętości, ale po miesiącu ciągłej pracy przekracza 80%. W sumie próbuję ustalić co jest przyczyną, bo mnie to trochę złości, ale na razie zrobiłem obejście ewentualnego problemu regułą, kiedy zajętość RAM przekroczy 90% to wykonaj restart usługi OpenHab2.

Moim zdaniem automatyka domowa musi być przede wszystkim niezawodna, a to powoduje, że nie powinno się tam wrzucać usług rozrywkowych, dla których niezawodność nie jest kluczowym wymaganiem, a jednocześnie mają one wysokie wymagania mocowe. Nie mówię, że to się nie uda, ale na pewno będzie powodowało chwilowe zacięcia, co może negatywnie wpłynąć na wykonywanie reguł. Poza tym nastąpi szybsze zużycie karty pamięci.

 
Dodane : 02/04/2019 10:09 am
(@mirmil99)
Wpisów: 180
Pomocny
 

moze na RAM taka linijka wystarczy?, wpisana do crona...

<sync && echo 3 > /proc/sys/vm/drop_caches>

coz co do reszty to sie poobserwuje, najwyzej skoncze na minidlna i tez bedzie fajnie;D

nadal czekam na propozycje, ktory soft wybrac na maline?;)

 
Dodane : 02/04/2019 10:30 am
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

Dzięki z propozycję oczyszczania kesza, nie pomyślałem o tym - sprawdzę.

Co do propozycji, to ja działam na gotowej dystrybucji OpenHabian i bardzo sobie chwalę. Za wyjątkiem tego RAMu nie mam absolutnie żadnych problemów, działa to bardzo stabilnie i jest responsywne pomimo wielu różnych technologii stosowalnych w moim projekcie do sterowania, zbierania danych itd.

Do tego OpenHAB jest całkowicie darmowy, zarówno serwer, jak i aplikacja na wszelkie platformy, a przede wszystkim ma ogromne wsparcie społeczności.

 

 
Dodane : 02/04/2019 11:20 am
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Jak już to raczej  

sudo sysctl -w vm.drop_caches=3

a dlaczego ? bo w którymś momencie może być 

bash: /proc/sys/vm/drop_caches: Brak dostępu

Tylko po co sokoro w razie zwiększonego zapotrzebowania na pamięć operacyjną kernel i tak zwolni cache i bufory aby zmieścić inne programy, a niewykorzystany ram to zmarnowany ram. 

 

 
Dodane : 02/04/2019 11:41 am
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

Teoretycznie masz @isom rację, ale w praktyce coś jest lekko nie tak, bo zajętość pamięci ciągle narasta, a nie spada.

Trudno to dokładnie zbadać, bo trzeba długo poczekać na uzyskanie dużej zajętości, a jak już taka jest, to przeważnie brak czasu na zajęcie się zgłębianiem, a trzeba odzyskać utracone funkcjonalności.

Mój problem jest bardziej złożony, ponieważ zebrane statystyki nie przedstawiają rzeczywistego przebiegu problemu.

Na wykresie widać maksymalną zajętość 48%, a tymczasem komenda free -m podała, że było 96% i system zaczął ubijać procesy.
 
Dodane : 02/04/2019 12:40 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Fakt jak ciągle narasta to jakiś problem jest , ale nie lecz skutków tylko przyczynę fabryka RBPi jest uboga może wrzuć 

sudo apt-get install htop

uruchamiasz z terminala

htop

Szybko powinieneś przefiltrować co tak gryzie ten ram  

 
Dodane : 02/04/2019 1:04 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

A jak nie dasz rady to proponuję domoticza 🙂 pomogę 🙂 oczywiście mam humor od wczoraj 

a tak serio to archiwalny przegląd mojej maliny bo jestem poza siecią lan 

grafana rbpi
 
Dodane : 02/04/2019 1:07 pm
(@mirmil99)
Wpisów: 180
Pomocny
 

to Ty nie potrzebujesz maliny, Tobie kalkulator wystarczy;P

 
Dodane : 02/04/2019 1:21 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

no gdyby miał własne GPIO to spokojnie by mi wystarczył

 
Dodane : 02/04/2019 1:56 pm
Udostępnij: