Sonoff Bridge RF 433

Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

czw cze 11, 2020 5:09 pm

Zainspirowany pomysłem @Duch__ viewtopic.php?f=24&t=6137 oraz bazując na najnowszej bibliotece SuplaDevice rozwijanej przez @klew https://github.com/klew/arduino a także projekcie @krycha88 zwanym Primary GUI v2 viewtopic.php?f=11&t=5233 napisałem pierwszą wersję firmware pod Suplę dla tego urządzenia pod Arduino IDE.
SonoffBridgeRF.jpg
SonoffBridgeRF.jpg (40.65 KiB) Przejrzano 1060 razy
Uprzedzam, że to moja pierwsza publikacja kodu C/C++ więc proszę o wyrozumiałość ale także o konstruktywną krytykę ;)

Nie dodawałem do urządzenia żadnych zmian sprzętowych, poza wlutowaniem goldpina x4 aby podłączyć programator.
W następnym poście kilka zrzutów z GUI (niestety, nie zawsze GUI wczytuje się poprawnie, zwłaszcza na urządzeniu mobilnym, ale do rozkminienia).

Bridge RF 443 v1.0.0
Kompilowany na płytce ESP w wersji 2.7.1. Biblioteka SuplaDevice od klew z linku powyżej.
Poniżej spakowany szkic.
Bridge_RF_433.src.7z
(15.37 KiB) Pobrany 62 razy
Skompilowana i spakowana binarka.
Bridge_RF_433.bin.7z
(326.39 KiB) Pobrany 60 razy
Ostatnio zmieniony pt cze 12, 2020 10:37 pm przez Goral64, łącznie zmieniany 8 razy.
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

czw cze 11, 2020 5:10 pm

Poniżej kilka zrzutów ekranu z GUI.
z1-3.jpg
z1-3.jpg (106.87 KiB) Przejrzano 1058 razy
z4-6.jpg
z4-6.jpg (130.46 KiB) Przejrzano 1058 razy
z7-9.jpg
z7-9.jpg (111.95 KiB) Przejrzano 1058 razy
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

czw cze 11, 2020 5:16 pm

Urządzenie działa w obie strony. Odbiera kody RF z pilotów, urządzeń RF (pod warunkiem, że są stałe, 24 bitowe) i wysyła stany do serwera Supli. Odbiera także sterowanie z Supli i wysyła kody RF do odbiorników.
GUI umożliwia dodanie urządzenia kreatorem w aplikacji mobilnej.
Maksymalna liczba zapamiętanych kodów to 60. Jeden kanał zajmuje od 1 do 2 kodów. Można zdefiniować tyle kanałów na ile wystarczy kodów, czyli od 30 do 60. Kanały i kody definiuje się w GUI.
Kody można wpisać "z palca" albo "automatycznie". Uruchamiany jest tryb nauki i w tym trybie kod RF jest pobierany z urządzenia nadawczego. Są piloty i czujniki, których kody Bridge rozpoznaje 100 na 100. Niestety, są też takie, których Bridge nie do końca rozumie przy rozkodowaniu, a nawet jak dostanie "z palca" prawidłowy kod, to gdy go wyśle, urządzenie odbiorcze nie potrafi zareagować. Czasem udaj się znaleźć dobry kod, a czasem jest kaszana. Mam pilota, który czasem jest dobrze odkodowany, a czasem 4 czy więcej kanałów odbierane są jako jeden kod :(
Inny pilot i jego odbiorniki działają za każdym razem.
Urządzenie tworzy póki co tylko 2 rodzaje kanałów: przekaźnik (Relay) i czujnik (Sensor). W GUI są one jeszcze podzielone na 4 rodzaje:
Przekaźniki (ON + OFF) - do sterowania używane są dwa osobne kody, osobny kod ustawia stan wysoki (ON), osobny kod stan niski (OFF),
Przekaźniki (ON/OFF) - do sterowania naprzemiennie używany jest jeden kod (toggle),
Czujniki binarne (ON + OFF) - podobnie jak przekaźniki (ON + OFF),
Czujniki binarne (ON lub OFF) - czujniki wysyłają tylko jeden kod, którym sygnalizują albo stan wysoki (ON) albo stan niski (OFF).

W GUI można dodawać kanały i kody do nich (kody nie mogą się powtarzać w ramach urządzenia). Można edytować kody w kanale jak i usunąć kanał wraz z kodami. Przy przekaźnikach po kliknięciu na odpowiednią ikonę można wysłać do odbiornika kod przypisany do ikonki (stan nie jest wysyłany do Supli).
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
Awatar użytkownika
pzygmunt
Posty: 9582
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

czw cze 11, 2020 5:50 pm

Brawo
t0mek
Posty: 61
Rejestracja: sob gru 02, 2017 11:24 am

czw cze 11, 2020 6:34 pm

Wreszcie się doczekałem! Na czym testowałeś? Jakie urządzenia? Mam rolety na włącznikach 433 i czekałem od początku na taki temat. Ps: Zmienno kodowe nie będą działać? Zamawiam sonoff :D
Super robota!
Pozdrawiam
Tomek
elmaya
Posty: 1016
Rejestracja: śr cze 27, 2018 5:48 pm
Lokalizacja: Sevilla

czw cze 11, 2020 6:43 pm

I applaud you, if this is the first one you publish this is going to get interesting
Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

czw cze 11, 2020 7:07 pm

t0mek pisze:
czw cze 11, 2020 6:34 pm
Wreszcie się doczekałem! Na czym testowałeś? Jakie urządzenia? Mam rolety na włącznikach 433 i czekałem od początku na taki temat. Ps: Zmienno kodowe nie będą działać? Zamawiam sonoff :D
Super robota!
Mam gniazda SITE model RCS-K01 z pilotem RCT-01. Ten działa praktycznie 100/100. Kody sczytują się dobrze, pilot jest zrozumiały a i kod wysyłany przez bridge jest odbierany. Można tym sterować 5 gniazdkami (5 kanałów ON + OFF). Do tego mam jeszcze gniazda ELRO AB601SB z pilotem AB601R. Można tym sterować 8 gniazdami (8 kanałów ON-OFF). Tutaj jest ciężko. Bridge potrafi wszystkie kanały odebrać z jednym kodem :( Mimo, że gniazdka rozumieją pilota. Jak zapiszesz w Bridge poprawiony kod, to nie zawsze gniazdko go rozumie.
Do tego kupiłem kontaktrony Sonoffa, żeby potestować z bridge. Jednak są to nadajniki z jednym kodem. Czyli jak się oddali kontaktron od magnesu to wysyłany jest kod, że "obwód rozwarty", jak się go przybliży nie generuje kodu, że "obwód zwarty". Kupiłem tez PIR-a Sonoffa i też ładnie go bramka odbiera. No ale to też tylko jest generowany kod jak wykryje ruch, więc trzeba by jakiś timer, który po jakimś czasie przywracałby stan "bezruchu" do następnego wykrycia ruchu.
Zmiennokodowe nie są obsługiwane.
Bridge można zhakować na różne sposoby. Można pominąć chipa obsługującego kody RF i przesyłać sygnał prosto do ESP i tam przetwarzać. Wtedy jest więcej możliwości. Można też podmienić firmware w tym chipie, aby obsługiwał także inne kody. Ale to już tematy na inną bajkę.
Mi przede wszystkim chodziło o firmware na niemodyfikowany bridge.
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

pt cze 12, 2020 8:41 am

W uzupełnieniu dodam, że dane konfiguracyjne zapisywane są w EEPROM.
Zapis do EEPROM połączony jest z restartem urządzenia, tak aby biblioteka SuplaDevice mogła pracować na zmienionych danych. Tak więc jeśli dodamy, usuniemy czy zmodyfikujemy kanał operacja Zapisz umieści te dane w pamięci, ale żeby SuplaDevice zaczęła z nich w pełni korzystać trzeba je zapisać do EEPROM i zrestartowac urządzenie. Odpowiedni przycisk pojawi się na stronie głównej jeśli zostaną wprowadzone jakieś zmiany. Jeśli chcemy odrzucić wprowadzone zmiany należy wykonać sam restart.
Jeśli będziemy tylko dodawać kanały lub tylko modyfikować w nich kody to dodadzą się one do Supli bez problemu. Jeśli usuniemy jakiś kanał, dodamy w to miejsce inny wtedy nastąpi w Supli konflikt kanałów i trzeba najpierw usunąć urządzenie z Supli aby dodało się ponownie z odpowiednimi kanałami w odpowiedniej kolejności.
W wersji, która jest udostępniona pozostawiłem na razie przycisk Podgląd EEPROM. Aby się go pozbyć wystarczy usunąć z pliku config.h linijkę z

Kod: Zaznacz cały

#define DEVEL_MODE
A tak wygląda fragment podglądu EEPROM.
zrzut.2020-06-11.18.49.33.png
zrzut.2020-06-11.18.49.33.png (14.62 KiB) Przejrzano 1003 razy
Przy ustawionym DEVEL_MODE mamy też dostęp do dwóch linków:
/eeprom_format - formatuje całą używaną pamięć EEPROM jak przy pierwszym uruchomieniu firmware na urządzeniu
/eeprom_clear - czyści informacje o ustawieniu kanałów i wczytanych kodach, zostawia informacje logowania do WiFi i Supli
Operacja wykonuje się tylko w pamięci, więc aby odniosła skutek w EEPROM trzeba zapisać EEPROM i zrestartować urządzenie.
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
Duch__
Posty: 745
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

pt cze 12, 2020 4:24 pm

Brawo!
8x SRW-01, 2x ROW-02, SUPLA TOUCH DL, 16xDS na ESP (GUI), Sonoff S20 CWU, AIRLY
Awatar użytkownika
Goral64
Posty: 747
Rejestracja: pt gru 27, 2019 6:22 pm

pt cze 12, 2020 4:27 pm

Duch__ pisze:
pt cze 12, 2020 4:24 pm
Brawo!
Głównie dzięki Tobie :)
RPi4: Supla Cloud + Supla Scripts + Proxy + Let's Encrypt
1x MEW-01, 1x LIW-01, 2x SBW-02, 2x PNW-01, 1x ROW-01, 1x ROW-02, 2x ROW-04m, 1x ROW-07,
2x Sonoff BRIDGE RF 433
ODPOWIEDZ

Wróć do „Gotowy sprzęt”