Serial to TCP Bridge, Tasmota “czysto teoretyczny opis”

Serial to TCP Bridge Tasmota

W tym opisie wykorzystamy funkcjonalność Tasmota Serial to TCP Bridge w celu podłączenia urządzenia, które komunikuje się tylko szeregowo do bramki AIS dom.

Urządzenie CC2530 Zigbee, podłączymy do ESP8266, a następnie za pomocą Serial to TCP Bridge wykonam przekierowanie komunikacji szeregowej do sieci, aby połączyć CC2530 ze zdalną instancją zigbee2mqtt.

:warning:
To opis “czysto teoretyczny” wg mnie w praktyce takie rozwiązanie nie będzie działać dobrze, bo WiFi może gubić pakiety.
Dużo większy sens miałaby ta konfiguracja z ESP32 wyposażonym w Ethernet. Poniżej znajdują się linki do projektów, które wykorzystują tę funkcjonalność.

:warning:
Uwaga - niestety nie zadziałało… ja jak będę miał czas, to wrócę do projektu “TCP Bridge Tasmota” z ESP32.

Oprogramowanie dla ESP8266

Funkcjonalność mostkowania komunikacji serial do TCP wymaga kompilacji z aktywną flagą:

#define USE_TCP_BRIDGE

Dlatego odkomentujemy tę flagę i wykonamy własną kompilację oprogramowania.

Skompilowana wersja oprogramowania w załączeniu:
firmware.bin (602,3 KB)

Jeżeli aktualizujemy z aplikacji (a nie programatorem) to żeby wystarczyło miejsca na ESP8266 na aktualizację, możemy spakować oprogramowanie:

Spakowana wersja oprogramowania w załączeniu:

firmware.gz (427,8 KB)

Konfiguracja ESP8266

Do GPIO 2 w gniazdku mamy podłączony czujnik stężenia cząstek stałych IKEA VINDRIKTNING - tak jak opisaliśmy tu:

Pozostałe 2 wolne GPIO (4 i 5) wykorzystamy do komunikacji szeregowej i skonfigurujemy je jako Rx i Tx:

Uruchomienie serwera TCP na ESP8266

serwer uruchamiamy komendą:

TCPStart 8888

Możemy dodać regułę, uruchamiającą serwer TCP podczas startu, takimi komendami:

Rule1 ON System#Boot do TCPStart 8888 endon
Rule1 1

Podłączenie modułu zigbee

Konfiguracja zigbee2mqtt

Najważniejsza jest linijka z definicją portu, port to tym razem nie będzie fizyczny /dev/tty... ale wirtualny → tcp:

 port: 'tcp://192.168.6.250:8888'

cała definicja po stronie zigbee2mqtt może wyglądać tak

homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: 'tcp://192.168.6.250:8888'
  adapter: auto
frontend:
  port: 8099
advanced:
  log_level: info
  log_output:
    - console
  channel: 11

Podłączanie CC2530 do ESP8266

Układ pinów różni się w zależności od zastosowanego modułu CC2530, trzeba podłączyć odpowiednio zasilanie oraz TX/RX do odpowiednich GPIO.

Pierwsze uruchomienie

Startujemy zigbee2mqtt z komfiguracją portu jako TCP do ESP8266

Niestety nie działa… Jeżeli ktoś to zrobi i działa mu to dobrze, to poproszę o opis - z góry dzięki!
Ja jak będę miał czas, to wrócę do tego projektu “TCP Bridge Tasmota” z innym ESP.

Zródła:

5 polubień