Odbiornik sygnałów z nadajników Exta Life

  • 60 Odpowiedzi
  • 5431 Wyświetleń
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #30 dnia: Września 29, 2021, 22:52:58 »
Cześć koledzy,
tak  jak dobrze admin wnioskuje, to ten Clicker2 chodzi na firmwarze mojego autorstwa, w chwili obecnej wykorzystuje dwa radia MRF (jeden dla Life, drugi dla Free).
Zbiera to całą komunikację z urządzeń Exty. Ma możliwość podglądu latających komunikatów w eterze przy użyciu command lina i konsoli. Docelowo ma to przerzucać
pakiety komunikacji radiowej (odbieranie i wysyłanie) do aplikacji na dużym PCecie, ale kiedy dokończe ? Sam nie wiem.

Admin, trochę wjechałeś mi na ambicję z tymi modułami ESP. No więc właśnie siedzę i rozpakowuje nowe zakupione zestawy, czyli:
1. ESP32-GATEWAY
2. ESP32-POE-ISO-EA-IND
3. ESP32-DEVKITC-32D
4. ESP32S2-SAOLA-1R
5. ESP32-PICO-KIT
6. ESP32S2-SAOLA-1M
7. ESP32-DEVKITC-32UE
Może jako bardziej obeznani z tematem, to podpowiecie który pierwszy ma iść na warsztat?

Ja raczej zacznę od tego który ruszy z SDK od Espressifa. Dalej będzie to trzeba pożenić z modułem MRF (radio) a dalej to już tylko ograniczać będzie fantazja co będzie potrzeba.

Chłopaki ja wam radze odłóżcie te sniffery od szyny SPI, to się na nic nie zda i szkoda na to trochę czasu. Dane które są wystawiane na szynę SPI są już zakodowane, a te które są odbierane są jeszcze w postaci zaszyfrowanej, wiec grabowanie tego bez funkcji crypt/decrypt nie jest warte poświęconego czasu.

W docelowym snifferze będzie to zaimplementowane z użyciem ESP32+MRF

Pozdrawiam,
Gadulowaty
Produkcja:RPi5,EFC-01; Sensory:MEM-21,RCK-21,9xRCM-21,2xRCR-21,RCW-21; Odbiorniki: 2xROB-21, 5xROG-21,11xROP-21,11xROP-22,1xRDP-21,11xSRP-22; Nadajniki: 2xP-457/36,4xP-457/4,P-457/8,P-521L,1xRNK-22,1xRNK-24 | Developer:RPi4,EFC-01,RCK-21,ROB-21,ROP-22,ROG-21,RCM-21

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #31 dnia: Września 30, 2021, 12:08:01 »
Admin, trochę wjechałeś mi na ambicję z tymi modułami ESP. No więc właśnie siedzę i rozpakowuje nowe zakupione zestawy, czyli:
1. ESP32-GATEWAY
2. ESP32-POE-ISO-EA-IND
3. ESP32-DEVKITC-32D
4. ESP32S2-SAOLA-1R
5. ESP32-PICO-KIT
6. ESP32S2-SAOLA-1M
7. ESP32-DEVKITC-32UE
Może jako bardziej obeznani z tematem, to podpowiecie który pierwszy ma iść na warsztat?
Ło matko, ale sobie zabawek na dzień chłopaka nakupowałeś ;) Nie wiedziałem, że są też bardziej zaawansowane płytki z ESP32, ale to w sumie logiczne, bo ja używam wyłącznie development boards, czyli takie do prototypowania i eksperymentów - są najmniejsze i najtańsze (zamawiam z Aliexpress po 17 zł za sztukę, a przed podatkiem EU były po 14 zł. Z darmową dostawą oczywiście :) ).
Osobiście posiadam 3 wersje płytek ESP32:
* DEVKIT V1 (w sumie to samo co DEVKIT C)
* NodeMCU ESP32
* DEVKIT-C
Jakieś różnice pomiędzy nimi pewnie są - DEVKIT-C podobno ma lepszy zasięg WiFi, ale nie stwierdziłem tego w praktyce :) Za to ewidentnie działa lepiej (zasięg WiFi) z zasilaczem USB niż zasilane z z portu USB tyle że poprzez dość długi kabel. Niby ma być to samo, a jednak nie jest. Zasadniczą różnicą jest to, że NodeMCU działa z ESP32S czyli jakąś ulepszoną wersją ESP32.
Cytuj
Ja raczej zacznę od tego który ruszy z SDK od Espressifa.
Do tej pory SDK Espressif'a (zakładam, że masz na myśli Espressif IDF) omijałem szerokim łukiem, bo o programowaniu na tym poziomie wiem tyle co nic. Przerwania, rejestry to nie moja bajka (jeszcze  :P). Gdy zacząłem się bawić w testy SPI to zaprzągnąłem do pracy płytki DEVKIT1 oraz NoceMCU, ale podejrzewam, że wszystkie które kupiłeś będą współpracowały. Mnie udało się skompilowąć przykłądy do SPI dla obu płytek i komunikacja między płytkami działa, więc wygląda, że IDF na obu działa. Przy okazji - może Ty jesteś bardziej obeznany z tematem, ale mnie nie udało się odpalić IDF w Windows. Podczas buildu wywala miliony błędów. Pewnie jakiś szczegół, ale nie nawidzę takich sytuacji. Mamy XXI wiek a doprowadzenie środowiska developerskiego do pionu nadal jest wyzwaniem jak zdobycie Mont Everest. Wybrałem VSCode jako moje IDE bo zaprzyjaźniłem się z nim w ramach budowania integracji z HA i pisania kodu dla ESPhome i na szczęście okazało się, że wtyczka IDF dla VSCode zawiera taski do tworzenia projektu dla przykładów i te projekty domyślnie mają wygenerowaną obsługę devcontainer i w devcontainer udało mi się odpalić build. Niestety to też wymagało drobnych zmian, bo ścieżki do gcc są ustawione na Windowsowe z jakiegoś pododu, więc musze jednorazowo zrobić podmianę w pliku konfiguracyjnym (kasuję wpis ze ścieżką do gcc) i zaczyna się kompilować. Używam devcontainer z Dockerem + WSL2, więc tracę możliwość wgrywania softu do ESP32 bespośrednio z VSCode devcontainer (WSL2 nie obsługuje USB hosta) i debugowania kodu, ale flashuję z Windows wygenerowany kod i jest ok. Z debugowaniem jest gorzej bo na razie nie wiem jak to zrobić, ale może i to kiedyś jakoś ogarnę.
Cytuj
Dalej będzie to trzeba pożenić z modułem MRF (radio) a dalej to już tylko ograniczać będzie fantazja co będzie potrzeba.
No na to właśnie liczę, że uda się pożenić z radiem Exta Life. A potem mam nadzieję, że fantazja podpowie ci, żeby zrobić forwardowanie zdarzeń jakimś protokołem sieciowym do świata zewnętrznego. Wiem, że w IDF jest obsługa MQTT - nie trzebaby pisać własnego protokołu. To mogłaby być pierwsza wersja. Idealnie byłoby wykorzystać bibliotekę ESPhome do komunikacji, ale nie wiem czy to będzie proste, bo ESPhome podobnie jak Python wykorzystuje programowanie asynchroniczne, a IDF to chyba zwykłe synchroniczne. Ale nie znam się wystarczająco więc nie wiem.
Cytuj
Chłopaki ja wam radze odłóżcie te sniffery od szyny SPI, to się na nic nie zda i szkoda na to trochę czasu. Dane które są wystawiane na szynę SPI są już zakodowane, a te które są odbierane są jeszcze w postaci zaszyfrowanej, wiec grabowanie tego bez funkcji crypt/decrypt nie jest warte poświęconego czasu.
Ja tam jednak będę rozpracowywał temat mimo wszystko. Ufam, że kiedyś znajdzie się sposób na szyfrowanie :) A poza tym może się czegoś nowego nauczę. Na razie udało mi się z sukcesem odpalić komunikację po SPI między dwoma ESP, ale tylko gdy oba pracowały na sofcie IDF. Gdy w jednej zrobiłem obsługę SPI poprzez ESPhome to odbirnik (slave) z nieznanego mi powodu jakoś nie chce zagadać do mastera SPI w ESPhome. Poza tym zauważyłem, że gdy odepnę kabel i przerwę transmisję to po podłączeniu kabla transmisja ustaje. To podpowiada mi, że może być problem żeby ESP32 slave zagadał z płytką Exta Life po SPI. Ale kroczek po kroczku do celu. Może jakoś się uda.
Cytuj
W docelowym snifferze będzie to zaimplementowane z użyciem ESP32+MRF
No i zapowiada się super. Dla mnie to jeszcze zdecydowanie zbyt odległy temat. Skonfigrowanie tego transcivera - częstotliwość, modulacje itp to już jest problem, tym większy że najpierw trzeba wiedzieć na co go ustawić aby gadał z ExtaLife, ale wierzę, że Tobie się uda, bo masz już to rozpracowane :)
Ja będę się starał, aby tą część realizował klocek Exta Life i jego STM.

Trzymam kciuki za powodzenie akcji "Gadulowaty meets ESP32" ;)
« Ostatnia zmiana: Września 30, 2021, 12:10:36 wysłana przez admin »
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #32 dnia: Września 30, 2021, 13:00:45 »
Miło się czyta wasze wypowiedzi ale jeszcze sporo czarnej magii jak dla mnie...
@admin - ja bardziej poszedłem w Tasmota niż ESPHome.
W kompilacji Tasmota korzystałem z chmurowej platformy https://www.gitpod.io/ - polecam jako fajne IDE.
Może będzie łatwiej stworzyć nietypowe binarki pod ESP.
Może Tasmota ma już biblioteki pod obsługę tego radyjka?
@Gadulowaty - w jakim protokole i po jakiej magistrali chodzi ten moduł MRF?
Funkcjonalność przezroczystego mostu w ESPHome i Tasmota są od dawna.
« Ostatnia zmiana: Września 30, 2021, 13:03:15 wysłana przez Cezary.K »
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #33 dnia: Września 30, 2021, 13:09:08 »
Miło się czyta wasze wypowiedzi ale jeszcze sporo czarnej magii jak dla mnie...
@admin - ja bardziej poszedłem w Tasmota niż ESPHome.
W kompilacji Tasmota korzystałem z chmurowej platformy https://www.gitpod.io/ - polecam jako fajne IDE.
Może będzie łatwiej stworzyć nietypowe binarki pod ESP.
Może Tasmota ma już biblioteki pod obsługę tego radyjka?
@Gadulowaty - w jakim protokole i po jakiej magistrali chodzi ten moduł MRF?
Funkcjonalność przezroczystego mostu w ESPHome i Tasmota są od dawna.
Wow, niezła ciekawostka z tym Gitpod. Czego to ludzie nie wymyślą, całe środowisko online... czad. Na pewno zainteresuję się kiedyś samym Gitpod, a Tasmota? Sam nie wiem. Nie badałem dokładniej dlatego zapytam: dlaczego wybrałeś Tasmota a nie ESPhome? Jaka jest jej przewaga? Pytam z ciekawości bo wiedzieć zawsze warto. I jak ona się integruje z HA? Jest natywna integracja i natywne API czy jakoś poprze MQTT?

A co do radia MRF to wygląda, że działa po SPI właśnie. Tak samo jako SX1232 od Exta Life, a protokołu nie znam. Gadulowaty niech rzuci tutaj więcej światła :)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #34 dnia: Września 30, 2021, 13:36:45 »
dlaczego wybrałeś Tasmota a nie ESPhome? Jaka jest jej przewaga? Pytam z ciekawości bo wiedzieć zawsze warto. I jak ona się integruje z HA? Jest natywna integracja i natywne API czy jakoś poprze MQTT?
Na początku denerwowała mnie składnia YAML, frustrujące wcięcia i spacje :'( przy konfigurowaniu np ESPHome. Po oswojeniu z konsolą Linux'a bardziej przypasowała mi koncepcja Tasmota, gdzie bogata lista komend w locie zmienia działanie modułu i pozwala na kontrolę w wielu poziomach. Do tego jest dla mnie to bardziej przejrzyste z webowym GUI. Potem doszła zabawa regułami i tworzenie automatyzacji, które dzieją się w samym oprogramowaniu modułu ESP. Tasmota komunikuje się ze światem przez MQTT. Jest natywna integracja z HA. Można również dodawać urządzenia przez samą integrację MQTT. W AIS Tasmota mamy jeszcze dodatek w postaci auto proxy, pozwala to na dostanie się do GUI i konsoli modułu przez zdalny, darmowy tunel cludflare.
« Ostatnia zmiana: Września 30, 2021, 13:38:33 wysłana przez Cezary.K »
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #35 dnia: Września 30, 2021, 14:13:07 »
dlaczego wybrałeś Tasmota a nie ESPhome? Jaka jest jej przewaga? Pytam z ciekawości bo wiedzieć zawsze warto. I jak ona się integruje z HA? Jest natywna integracja i natywne API czy jakoś poprze MQTT?
Na początku denerwowała mnie składnia YAML, frustrujące wcięcia i spacje :'( przy konfigurowaniu np ESPHome. Po oswojeniu z konsolą Linux'a bardziej przypasowała mi koncepcja Tasmota, gdzie bogata lista komend w locie zmienia działanie modułu i pozwala na kontrolę w wielu poziomach. Do tego jest dla mnie to bardziej przejrzyste z webowym GUI. Potem doszła zabawa regułami i tworzenie automatyzacji, które dzieją się w samym oprogramowaniu modułu ESP. Tasmota komunikuje się ze światem przez MQTT. Jest natywna integracja z HA. Można również dodawać urządzenia przez samą integrację MQTT. W AIS Tasmota mamy jeszcze dodatek w postaci auto proxy, pozwala to na dostanie się do GUI i konsoli modułu przez zdalny, darmowy tunel cludflare.
No tak, YAML dla mnie też był sporą barierą gdy zaczynałem z HA. To generalnie bardzo czytelny język a swoją czytelność zawdzięcza właśnie wymuszonegmu formatowaniu składni (wcięcia). Też długo nie mogłem się przyzwyczaić do tego jak zapisać nawet najprostsze rzeczy, ale potem doszedł do tego Python, który ma takie same wymagania co do składni - poprawne wcięcia są tam niezbędne, aby kod się "skompilował". Po dłuższym czasie to wchodzi w krew i przestaje być problemem, ale początkowo to faktycznie bardzo duże utrudnienie - spacje, minusy dla elementów listy itp

Podejrzewam, że Tasmota ma większe możliwości niż ESPhome, jest też pewnie bardziej rozwiniętym projektem. Mnie do ESPhome zachęca przede wszystkim jego natywna integracja z HA poprzez natywne API. MQTT jest fajne i bardzo uniwersalne, ale wymaga utrzymywania kolejnego serwera do działania automatyki (MQTT). W sumie nie jest to żaden problem, bo gdy raz odpaliłem Mosquitto to mogłem o nim na wieki zapomnieć - żadnych problemów, ale  teoretycznie jest to kolejny komponent który może zawieść i spowodować problemy. Ma jednak niewątpliwe zalety - można swobodnie podglądać komunikację w całym systemie, więc analiza problemów jest latwa. W TCP Socket już nie jest tak fajnie.
Myślę, że kiedyś zainteresuję się Tasmota, na pewno gdy będę miał jakiś projekcik do zrealizowania z modułem, który jest obsługiwany przez Tasmota to wtedy nie ma się co zastanawiać - lepiej odpalić go od razu niż rozpracowywać miesiącami jego konfigurację i uruchomienie. W sumie zobaczę, czy Tasmota posiada łatwą obsługę SPI Slave (W ESPhome nie bardzo to jest wspierane), a jeśli tak to może się przyda już teraz do tego sniffera.

Jeśli chodzi o automatykę w samym module, to w ESPhome też to można robić. Pomijając najbardziej zaawansowany sposób czyli pisanie kodu C++ w ramach YAML ESPhome (tzn lambda function) to sam YAML też to umożliwia, ale przyznaję, że nawet dość proste scenariusze wymagają dość dużo gimnastyki w postaci YAML. Wcięcie goni wcięcie. Oto przykład z mojego podwórka:
- platform: template
    name: "Template Sensor"
    id: template_temp
    lambda: |-
      float state;
      state = id(template_temp).state;
      if (state < 3)
        return 10;
      if (state >= 10 && state < 23)
        return (state + 1);
      if (state >= 23 && state < 33) {
        return (state + 1.0);
      } else if (state > 33) {
        return 10;
      }
    update_interval: 100s
    on_value:
      - if:
          condition:
            and:
              - for:
                  time: 5s
                  condition:
                    lambda: |-
                      return id(template_temp).state > id(number_temp_water).state;
              - lambda: "return (id(fan_triggered) == false);"
              - lambda: "return id(template_temp_air).state <= id(num_max_air_temp).state;"
          then:
            - script.execute: set_fan_speed
            - globals.set:
                id: fan_triggered
                value: "true"
            - lambda: "return;"
      - if:
          condition:
            and:
              - for:
                  time: 5s
                  condition:
                    lambda: |-
                      return id(template_temp).state < id(number_temp_water).state;
              - lambda: "return (id(fan_triggered) == true);"
          then:
            - fan.turn_off: fan1
            - globals.set:
                id: fan_triggered
                value: "false"
Tyle kodu tylko po to aby odpalić wiatraczek (wyjście PWM ESP32) gdy czujnik temperatury (NTC odczytywany przez ADC ESP32) przez 5 sekund będzie wskazywał co najmniej minimalną zadaną temperaturę. Fakt, że wadą ESPhome jest brak możliwości konfigurowania urządzenia "w locie". Jak się coś skompiluje to tak już będzie np jakieś referencyjne wartości. Chociaż od niedawna w sumie już można coś z tym zrobić dzięki dodatkowym encjom wystawianym do HA i z poziomu GUI HA możemy już kontrolować jakieś ustawienia urządzenia ESPhome.

Sprawdzałem i wygląda na to, że radio MRF nie jest obsługiwane przez Tasmota :( W ESPhome też nic nie ma. Ale znalazłem ciekawostkę: wygląda, że jest obsługiwane przez Arduino i jest do tego gotowa biblioteka: https://www.airspayce.com/mikem/arduino/RadioHead/classRH__MRF89.html
To może bardziej się przyda Gadulowatemu. Jest więc nadzieja, że uda się to jakoś "ożenić" z ESP32 :)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #36 dnia: Września 30, 2021, 14:37:35 »
To w Tasmota wygląda dla przykładu to tak:

#Czujka PIR:
Rule1
  ON System#Boot DO Backlog Latitude 54.888888; Longitude 16.666666 ENDON
  ON MQTT#connected DO Publish2 homeassistant/binary_sensor/%deviceid%_motion/config {"name":"Czujka PIR","state_topic":"stat/%topic%/MOTION","payload_on":1,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"motion","force_update":true,"off_delay":30,"unique_id":"%deviceid%_motion","device":{"identifiers":["%deviceid%"]}} ENDON

Rule2
  ON Time#Initialized DO event ChkSun ENDON
  ON Time#Minute=%sunset% DO event chkSun ENDON
  ON Time#Minute=%sunrise% DO event chkSun ENDON
  ON event#chkSun DO Backlog Rule3 0; var1 0; event chkSunrise=%time%; event chkSunset=%time%; event     chkmorn=%time%; event chknight=%time%; event setDimmer ENDON
  ON event#chkSunrise<%sunrise% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkSunset>=%sunset% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkmorn<%sunrise% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#chknight>=%sunset% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#setDimmer DO Dimmer %var1% ENDON

Rule3
  ON Switch2#state=1 DO Backlog Dimmer 100; RuleTimer1 30 ENDON
  ON Rules#Timer=1 DO Dimmer 25 ENDON

A robi założenia, czujnik PIR z wbudowanym modułem sterowania PWM zapala po zachodzie słońca i przed wschodem taśmę LED z określoną jasnością (spoczynkową) a po wykryciu ruchu rozjaśnia taśmę (np 100%) na określony czas i powraca do stanu spoczynkowego jeśli ruch nie jest wykrywany. Każde wykrycie ruchu kasuje zegar działania reguły. Do tego przy uruchamianiu modułu jest ustalane położenie geograficzne dla określenia wschodu i zachodu słońca i przedstawienie się w HA z konfiguracją gotowych encji.
Więcej wyjaśnień na forum:
https://ai-speaker.discourse.group/t/cujnik-pir-led-automatyzacja-tasmota-rules-home-assistant-using-discovery/1514

Drugi przykład to "integracja" z centralką alarmową i korzystanie z sumy logicznej w regułach Tasmota:
https://ai-speaker.discourse.group/t/esp32-jako-modul-centralny-czujnikow-alarmowych-pir-zintegruj-bez-integry/1899/3
Odczyt danych z 9 czujników ruchu w HA dzięki Tasmota i jednej płytce z ESP32.

Wszystko opiera się na Rule Syntax
https://tasmota.github.io/docs/Rules/

EDIT:
Zapomniałem dodać, że wielkość liter, spacje itd nie mają znaczenia. Kod wysyłamy ciurkiem w konsoli dzieląc go na trzy zestawy Rule1; rule2; rule3. Każdy zestaw może mieć ok 1500znaków. OK, bo jest kompresowany w buforze zanim trafi do kontrolera.
« Ostatnia zmiana: Września 30, 2021, 14:50:01 wysłana przez Cezary.K »
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #37 dnia: Września 30, 2021, 17:56:19 »
Wracając do tematu... są gotowe płytki z ESP32 i radyjkiem. W nazwach pojawia się Lora

https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/

Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #38 dnia: Września 30, 2021, 17:57:56 »
To w Tasmota wygląda dla przykładu to tak:

#Czujka PIR:
Rule1
  ON System#Boot DO Backlog Latitude 54.888888; Longitude 16.666666 ENDON
  ON MQTT#connected DO Publish2 homeassistant/binary_sensor/%deviceid%_motion/config {"name":"Czujka PIR","state_topic":"stat/%topic%/MOTION","payload_on":1,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"motion","force_update":true,"off_delay":30,"unique_id":"%deviceid%_motion","device":{"identifiers":["%deviceid%"]}} ENDON

Rule2
  ON Time#Initialized DO event ChkSun ENDON
  ON Time#Minute=%sunset% DO event chkSun ENDON
  ON Time#Minute=%sunrise% DO event chkSun ENDON
  ON event#chkSun DO Backlog Rule3 0; var1 0; event chkSunrise=%time%; event chkSunset=%time%; event     chkmorn=%time%; event chknight=%time%; event setDimmer ENDON
  ON event#chkSunrise<%sunrise% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkSunset>=%sunset% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkmorn<%sunrise% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#chknight>=%sunset% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#setDimmer DO Dimmer %var1% ENDON

Rule3
  ON Switch2#state=1 DO Backlog Dimmer 100; RuleTimer1 30 ENDON
  ON Rules#Timer=1 DO Dimmer 25 ENDON

A robi założenia, czujnik PIR z wbudowanym modułem sterowania PWM zapala po zachodzie słońca i przed wschodem taśmę LED z określoną jasnością (spoczynkową) a po wykryciu ruchu rozjaśnia taśmę (np 100%) na określony czas i powraca do stanu spoczynkowego jeśli ruch nie jest wykrywany. Każde wykrycie ruchu kasuje zegar działania reguły. Do tego przy uruchamianiu modułu jest ustalane położenie geograficzne dla określenia wschodu i zachodu słońca i przedstawienie się w HA z konfiguracją gotowych encji.
Więcej wyjaśnień na forum:
https://ai-speaker.discourse.group/t/cujnik-pir-led-automatyzacja-tasmota-rules-home-assistant-using-discovery/1514

Drugi przykład to "integracja" z centralką alarmową i korzystanie z sumy logicznej w regułach Tasmota:
https://ai-speaker.discourse.group/t/esp32-jako-modul-centralny-czujnikow-alarmowych-pir-zintegruj-bez-integry/1899/3
Odczyt danych z 9 czujników ruchu w HA dzięki Tasmota i jednej płytce z ESP32.

Wszystko opiera się na Rule Syntax
https://tasmota.github.io/docs/Rules/

EDIT:
Zapomniałem dodać, że wielkość liter, spacje itd nie mają znaczenia. Kod wysyłamy ciurkiem w konsoli dzieląc go na trzy zestawy Rule1; rule2; rule3. Każdy zestaw może mieć ok 1500znaków. OK, bo jest kompresowany w buforze zanim trafi do kontrolera.
No brawo brawo! :) Widzę, że zgłębiłeś Tasmotę dość mocno. Wygląda teżm, że Tasmota jest całkiem nieźle udokumentowana. To jest częsta bolączka projektów open source. Nikt nie lubi robić dokumentacji. ESPhome jest w miarę ok, ale dopiero jak się trochę poklika po repozytorium, bo jednak istotne informacje, nawet te istotne na samym początku są często luźno porozrzucane po różnych obszarach.
Co do urządzeń to ostatnio natknąłem się na podobną realizcję czujnki PIR właśnie za pomocą ESPhome.

A co do reguł - trzeba przyznać jedno: składnia Tasmoty jest nieporównywalnie bardziej czytelna. Mimo że nie wiem co dokładnie robi, to jednak komfort zapisania reguły w jednej linijce to jest coś. W ESPhome pewnie pół ekranu YAMLa trzebaby na to poświęcic. WEbGUI z podsumowaniem pinów to też super sprawa. Od razu widać co robi dany PIN. W ESPhome trzeba analizować cały plik YAML żeby do tego dojść. W sumie możnaby to bardzo prosto rozwiązać w web dashboard. Pewnie kiedyś to zrobią.
Suma logiczna w Tasmota to banał. ESPhome jest niby łątwiejsze niż programowanie wszystkiego w C, ale z drugiej strony nadal wymaga podejścia typowo programistycznego. Tasmota to bardziej high level dla ludzi niż dla programistów. Muszę się nią bardziej zainteresować. Większość moich ESP to huby dla czujników ew gniazdka smart, ale gdybym miał zrobić już jakiś bardziej zaawansowany moduł ze swoją logiką to jednak pomyślałbym nad Tasmotą, bo te same rezultaty można osiągnąć znacznie prościej i zapewne szybciej.
Dzięki za opinię!
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #39 dnia: Września 30, 2021, 18:19:52 »
Wracając do tematu... są gotowe płytki z ESP32 i radyjkiem. W nazwach pojawia się Lora

https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/
No proszę! Szukałem tego kilka dni temu, ale jakoś nie natknąłem się na ten projekt. Znalazłem coś o ESP32 i LoRoWAN, ale założyłem że to chyba nie to. Piszą tam, że są też gotowe płytki ESP32 z wbudowanym modułem LoRa SX1276, ale to chyba działa tylko na Exta Free. W sumie nie wiem jaka jest różnica między 1272 a 1232. Może kwestia obsługiwanych modulacji albo max bitrate? Nie mam pojęcia.
Ale ta płytka RFM95 brzmi bardzo obiecująco. Pytanie tylko czy to nie za proste dla Gadulowatego ;) To wygląda jak hulajnoga, a on zapewne chciałby zbudować porządny bolid wyścigowy V12 z podwójnym tubo i kompresorem ;)

Ale jak się przyjrzałem temu projekcikowi to "skonsumowanie" tego radia z poziomu Arduino dzięki bibliotece wygląda wręcz banalnie. Pytanie tylko czy na tym module faktycznie możnaby odczytać ExtaLife? @Gadulowaty uchyl rąbka tajemnicy. Mam nadzieję, że ta informacja nie jest tak tajna jak klucz szyfrujący Exta Life ;) (a nawet jeśli to spokojnie - mam znajomych w Mosadzie, nie dojadą Cię ;) )Czy ten sketch dla odbiornika pozwoliłby na odebranie pakietów Exta Life w zakodowanej formie??? Czy to jest jedynie kwestia ustawienia częstotliwości oraz wartości SyncWord??
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #40 dnia: Września 30, 2021, 19:04:35 »
@Gadulowaty - jakiej modulacji używa ExtaLife? Na portalach widzę sporo modułów radiowych kompatybilnych z bibliotekami jakie wskazał @admin.
Jestem skłonny zainwestować i dla zabawy popróbować z IDE Arduino coś skompilować pod ESP32. Tylko nie chcę kupić czegoś co nie zagada z Extą.
Lista układów dla biblioteki:
https://www.airspayce.com/mikem/arduino/RadioHead/index.html

Przykładowy moduł RFM69HW
https://allegro.pl/oferta/modul-radiowy-rfm69hw-868-mhz-rf-nadajnik-odbiorni-10088122996

EDIT:
Ciekawy przykład kodu pod serial_gateway.pde https://www.airspayce.com/mikem/arduino/RadioHead/serial_gateway_8pde-example.html

Dorzucam Datasheet SX1232
https://www.mouser.com/datasheet/2/761/sx1232-1277478.pdf
« Ostatnia zmiana: Września 30, 2021, 22:01:47 wysłana przez Cezary.K »
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #41 dnia: Października 01, 2021, 16:57:15 »
Mam te same pytania do kolegi @Gadulowaty co ty, @Cezary.K
Także jestem skłonny zainwestować w taki mały moduł i coś podłubać z nim i ESP32. Ten RFM95 wygląda bardzo obiecująco, bo odpalenie go to banał (tylko ustawienie częstotliwości i SyncWord), ale pytanie czy on zagada z Exta Life?  ??? Podejrzewam, że podobnego nakładu pracy wymaga odpalenie RFM69 z ESP32 dzięki temu sketchowi Arduino.

Kolego @Gadulowaty czekamy na wieści.
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

*

Offline admin

  • *****
  • 1657
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #42 dnia: Października 01, 2021, 17:17:58 »
@Cezary.K zanim kolega @Gadulowaty odpowie to sądzę, że mam część odpowiedzi. Najważniejszej nie, ale może zaspokoi Twoją ciekawość. Kolega Gadulowaty podsunął je nam już kilka dni temu, tylko nic o tym w ludzkim języku nie wspomniał ;)
* modulacja to FSK
* SyncValue byte 1: 0x2D
* SyncValue byte 2: 0xD4
* SyncValue byte 3: 0x00
* SyncValue byte 4: 0x00
* Payload length: 64 bajty, ale to nie pasuje mi do tych 13 bajtów ze sniffera
A z tej strony co podałeś o RadioHead wynika, że ani RFM95 ani RFM69 nie zagada z Exta Life, bo SX1232 nie jest wymieniony jako kompatybilny, chyba, że po prostu są tam nieaktualne dane

To teraz czekamy na kolegę @Gadulowaty aby zaprzeczył albo potwierdził wszystkiemu powyżej i coś jeszcze od siebie skomentował, bo się sporo postów nazbierało od jego ostatniej odpowiedzi. Zapodał nam teaser'a i zostawił w ciemności ;)
« Ostatnia zmiana: Października 01, 2021, 17:30:49 wysłana przez admin »
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #43 dnia: Października 01, 2021, 17:49:51 »
Cześć koledzy,
Odezwę się  juz nie dlugo. Poczatek tygodnia to urlop z rodziną, a teraz siedze na postojowym w domu bo najmłodszy mi sie pochorował. Montuje na razie hardware w domu (7xSRP-22, 6xROP-22, 8xROP-21, 3xROB-21, 2xRCM-21, 2xRCR-21, 2xRCK-21) a jeszcze 14 pozostalych modulow czeka :(.
Dzisiaj udalo mi sie zainstalowac Esp-IDF 4.3.1. I udało mi sie skompilować i flashowac pierwszy program na esp32 przy uzyciu eclipsa. Dalem dupy przy zakupie modulow esp i nie kupilem sobie debuggera esp-prog wiec bede na razie sie meczyl printfami.
Teraz rzeźbie obsluge SPI z poziomu IDF. Moze wieczorem cos mi sie uda.
Co do modulow radiowych to sx1276 i sx1232 da rade skonfigurowac do pracy na extalife. Ta biblioteka o ktorej byla mowa bedzie hulac bo widzialem tam obsluge dla MRF89.
Parametry pracy radia dla exty podam pozniej bo musze zajrzec do kompa do źródeł a na razie klepie z komórki.

Pozdrawiam,
Gadulowaty
Produkcja:RPi5,EFC-01; Sensory:MEM-21,RCK-21,9xRCM-21,2xRCR-21,RCW-21; Odbiorniki: 2xROB-21, 5xROG-21,11xROP-21,11xROP-22,1xRDP-21,11xSRP-22; Nadajniki: 2xP-457/36,4xP-457/4,P-457/8,P-521L,1xRNK-22,1xRNK-24 | Developer:RPi4,EFC-01,RCK-21,ROB-21,ROP-22,ROG-21,RCM-21

Odp: Odbiornik sygnałów z nadajników Exta Life
« Odpowiedź #44 dnia: Października 01, 2021, 17:57:39 »
Koledzy, a mnie zainteresował ten projekt:
https://github.com/merbanan/rtl_433
Nie zgłębiłem tematu ale z powodzeniem jest używany w integracji z HA po MQTT. Odczyt liczników, stacji pogodowych itp. Nie dać się zwieść w nazwie 433, obsługuje różne częstotliwości. Wydaje się wszechstronny, z gotowym sprzętem wpinanym pod USB, ale raczej tylko do odbioru. Siadam do lektury...
Elementy systemu, których używam: Bramka AIS DEV3 "Jolka" + pilot+aplikacja WearOS, 32 urządzenia Exta Life z EFC-01, Mi-flora, Sonoff, ESP8266, ESP32 (ESPHome, Tasmota) Zigbee2mqtt, kamery IP, inteligentny głośnik w oparciu o AIS DEV1, urządzenia SIP.