poniedziałek, 13 lutego 2023

SMARTWARES sh4 send code Ok


Po sprawnym odczytaniu kodu z pilotów SMARTWARES  sh4 (czytaj poprzedni post) przyszła kolej by coś z tymi odczytanymi kodami zrobić. Najlepiej gdyby dało się je inteligentnie wysłać do  zakupionych wyłączników. Mam ich kilka więc warto się nieco potrudzić by je jakoś sensownie wykorzystać w mojej domowej sieci automatyki. Ale gotowego programu nadawczego nie znalazłem. Trzeba będzie porzeźbić coś samemu aby zastąpić firmowego pilota  moim ulubionym ESP8266. Dziś o rzeźbieniu transmitera dla wyłączników SMARTWARES i co z tego wynikło. 

Nie jest oczywiście do końca prawdą, że programu do transmisji kodów systemu SMARTWARES nie ma. Jest - jest częścią programu   Arjena Klaverstijna . Nie wiem czy działa - może z częścią nadawczą są takie same problemy jak z częścią odbiorczą gdzie wyraźnie coś szwankuje z poprawnością dekodowania nadawanych przez piloty ciągów. Ale że umiem już "dostroić" odbiornik tak by prawidłowo odebrać kody SMARTWARES to mogę tę samą technikę zastosować w nadajniku. Potrzebuję tylko kodu w opstaci zrozumiałej dla mnie.

Postanowiłem sobie taki kod wykroić z programu    Arjena Klaverstijna . Usunąłem wszelkie odniesienia obiektowe i klasowe pozostawiając czysty szeregowy kod, nad którym jestem w stanie zapanować.     

Efekt mojej ciężkiej pracy można zobaczyć tu.

Kod o dziwo zadziałał natychmiast i to bez żadnych zmian w długościach impulsów. Co 3 sekundy wyłącznik SMARTWARES to załączał to wyłączał się. Pięknie. Oznacza to, iż analiza kodu dokonana przez Ariena jest prawidłowa a nieprawidłowe działanie części odbiorczej musi wynikać z jakiegoś błędu w kodzie. Szkoda, że analiza tego kodu przekracza moje umiejętności.

Podobnie jak w kodach 24 bitowych najwygodniejszą formą zadawania kodów jest postać typu "command" to jest w postaci ciągu cyfr reprezentujących wszystkie dane potrzebne do zadziałania wyłącznika.

Trzeba było uzupełnić kod odbiornika by wyświetlał odbierany ciąg z pilota w postaci "command".

Dodałem do programu trzy linijki (to te na zielono)

      if (bitCounter == _numBits - 1) {

        _message = message;

        remoteId = message >> 16;

....................................................................

  Serial.print(" / State: ");

  Serial.println(state);

  Serial.print(" command ");

  Serial.println(_message);

 co w efekcie pozwoliło mi odczytać kody pilota w postaci ciągu cyfr



Przetworzone na HEX ciągi cyfr dają niejaki pogląd jak tworzony jest kod modułów SMARTWARES. Poniżej kody z mojego dwukanałowego pilota 



------------------------------------------

4A9B0001 #      1251672065 DEC

 kod 4A9B# (19099 DEC)      kanał 1       stan 0

4A9B0011 #       1251672081   DEC

 kod 4A9B# (19099 DEC)      kanał 1      stan 1

2 ------------------------------------------

 4A9B0002  #    1251672066  DEC

kod 4A9B# (19099 DEC)      kanał 2       stan 0

4A9B0012  #        1251672082  DEC

 kod 4A9B# (19099 DEC)      kanał 2       stan 1

ALL  ------------------------------------------

 4A9B0021  #        1251672097 DEC

kod 4A9B# (19099 DEC)      kanał - oba (wszystkie?)       stan 0

4A9B0031  #        1251672113  DEC

kod 4A9B# (19099 DEC)      kanał - oba (wszystkie?)       stan 1

Jak to dokładnie jest z tymi kodami? jeszcze nie wiem - zobaczymy w działaniu.

No to mam komplet nadajnika / odbiornika i mogę moduły SMARTWARES dodać do swojej kolekcji elementów wykonawczych domowej automatyki.

A w zanadrzu mam jeszcze moduły WiFi SMARTWARES SH5 !!!!

Oj będzie ciekawie  - trzeba więc podkręcić nasz ulubiony ciąg dalszy by zobaczyć co z tego wyniknie.





  

Brak komentarzy:

Prześlij komentarz