Dziś na tapecie zdalne wyłączniki SMARTWARES, Ciekawe urządzenia będące połączeniem wyłączników WiFi z wyłącznikami RF 443 MHz. Kupiłem kilka mając nadzieję, że uzupełnią mój stan posiadania w sterownikach radiowych. Na obecną chwilę są to głównie sterowniki ELRO z dodatkowymi pilotami uczącymi się stałych kodów. Niestety zapas tych wyłączników powoli się wyczerpuję i miałem nadzieję że zastąpią je urządzenia SMARTWARES. A tu niespodzianka - kod transmisji jest diametralnie różny od znanego 24 bajtowego kodu. I nic nie pasuje do niczego. Co gorsze informacji o kodowaniu tego systemu jest w sieci znikoma ilość i do tego nie działająca. Trzeba więc sobie poradzić samemu z tym problemem
Sam opis tego systemu zostawię na kolejne wpisy. Dziś o tym jak za pomocą ESP8266 prawidłowo przeczytać kod z pilota Smartwares. Niby banalna sprawa opanowana do perfekcji dla 24 bitowych kodów z pomocą dobrze znanej biblioteki RCSwitch. Ale w Smartwares zastosowano jakiś pokręcony 32 bitowy kod nie znany nigdzie na świecie. Jedyna dostępna biblioteka dla tego kodu jest autorstwa Arjena Klaverstijna. Jest ale nie działa - w każdym razie nie z moimi urządzeniami. Monitor pokazuje jakieś dziwne kody zmieniające się przy każdym naciśnięciu pilota.
Jest jeszcze jeden program do odczytu kodów transmisji gościa o wdzięcznym nicku lopezelectroeca.
Jest ale w przypadku moich pilotów milczy jak grób. Ale o ile pierwszy z programów jest dla mnie kompletną programową czarną magią (obiekty klasy dziedziczenia i takie tam bzdury) o tyle drugi jest w miarę zrozumiały i do ogarnięcia. A że nie lubię gdy urządzenia próbują decydować za mnie co mam robić postanowiłem nieco pogrzebać w kodzie by zechciał łaskawie wyświetlić generowane przez piloty Smartwares kody.
Założyłem że opis struktury kodu zawarty w bibliotece sf501-remote.h jest poprawny
- preambuła 2800 µS,
- "0" 540 µS
- "1" 1540 µS
Wstawiłem też w program pułapki monitorujące jakie długości impulsów przechodzą przez programowy filtr.
A końcowym efektem działania poprawionego programu jest taki oto wydruk na monitorze
I to by było na tyle....
No może nie do końca. Istotnym elementem w moim kodzie było wyłączenie ustawania portu RX
// pinMode(interruptPin, INPUT_PULLUP);
Moją wersje monitora SMARTWARES Sh4 zamieściłem na githubie.
Teraz pozostaje już tylko nauczyć się jak wysyłać poprawne kody by sterować wyłącznikami SMARTWARES. Ale tym niech się już zajmie nasz ulubiony ciąg dalszy.....
Brak komentarzy:
Prześlij komentarz