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.
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ść.
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.