Stream server (serial-to-wifi bridge) for ESPHome

Overview

Stream server for ESPHome

Custom component for ESPHome to expose a UART stream over WiFi or Ethernet. Can be used as a serial-to-wifi bridge as known from ESPLink or ser2net by using ESPHome.

This component creates a TCP server listening on port 6638 (by default), and relays all data between the connected clients and the serial port. It doesn't support any control sequences, telnet options or RFC 2217, just raw data.

Usage

Requires ESPHome v1.18.0 or higher.

external_components:
  - source: github://oxan/esphome-stream-server

stream_server:

You can set the UART ID and port to be used under the stream_server component.

uart:
   id: uart_bus
   # add further configuration for the UART here

stream_server:
   uart_id: uart_bus
   port: 1234
You might also like...
Tuya IoTOS Embeded SDK WiFi & BLE for BK7231T

Tuya IoTOS Embedded Wi-Fi and BLE SDK for BK7231T 中文版 | English Overview Developed independently by Tuya Smart, Tuya IoTOS is the world's only IoT ope

WiFi-enabled soil moisture sensor
WiFi-enabled soil moisture sensor

w-parasite w-parasite is an open source, WiFi-enabled soil moisture sensor for house plants. This repo contains all the hardware design files (schemat

T-Watch 2020 v1 compatible firmware providing WiFi and BLE testing tools (and also, a watch :D)

ESP-IDF template app This is a template application to be used with Espressif IoT Development Framework. Please check ESP-IDF docs for getting started

Netstick client for Nintendo 3DS -- turn your portable console into a Linux compatible WiFi gamepad!

Netstick turns your 3DS into a wifi enabled gamepad! Control any linux-based device (such as a Raspberry Pi running Retropie) using your 3DS!

WiFi/MQTT Code For the ThingPulse ESPGateway
WiFi/MQTT Code For the ThingPulse ESPGateway

ESP32-Paxcounter with ThingPulse ESPGateway This project lets you run the ESP32-Paxcounter project on the ThingPulse ESPGateway. The ESPGateway has tw

ESP8266 WiFi Connection manager with fallback web configuration portal
ESP8266 WiFi Connection manager with fallback web configuration portal

ESP8266 WiFi Connection manager with fallback web configuration portal

owfuzz: a WiFi protocol fuzzing tool using openwifi.
owfuzz: a WiFi protocol fuzzing tool using openwifi.

Openwifi is an open-source WiFi protocol stack based on SDR that is fully compatible with Linux mac80211. It's driver takes advantage of the Linux kernel's supports (mac80211, cfg80211) for WiFi high MAC, so it can provide an interface to the application layer like a common WiFi USB dongle.

Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor
Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor

MQTT connectivity for the Ikea VINDRIKTNING This repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality s

A simple and easy WiFi-enabled ESP8266-powered WSPR and FT8 beacon which uses NTP + DS3231 RTC for timing.
A simple and easy WiFi-enabled ESP8266-powered WSPR and FT8 beacon which uses NTP + DS3231 RTC for timing.

Easy-Digital-Beacons-v1 A simple and easy WiFi-enabled ESP8266-powered WSPR and FT8 beacon which uses NTP + DS3231 RTC for timing. The whole design is

Comments
  • Using virtual-serial port with socat + stm32flash

    Using virtual-serial port with socat + stm32flash

    Hello, I'm using the espHome to communicate with a device using the serial port, specially a STM32 device. I'm able to listen the RX/TX with screen:

    socat -v -d -d pty,raw,echo=0 tcp:192.168.2.105:1234 then screen /dev/ttys005 115200 And it seems to work very nice here, I`m able read all the msgs, except sometimes it seems to lag a bit.

    Now I'm tryng to use it with stm32flash: sudo stm32flash -b 115200 /dev/ttys005 image

    socat debug: https://pastebin.com/baxDTWL2

    Could someone give a tip if I can improve and make it work for this purpose?

    YAML settings:

    external_components:
      - source: github://oxan/esphome-stream-server
    
    logger:
      baud_rate: 0
      
    uart:
      id: uart_bus
      tx_pin: GPIO1
      rx_pin: GPIO3
      baud_rate: 115200
      rx_buffer_size: 4096
      
    stream_server:
      uart_id: uart_bus
      port: 1234
    
    custom_component:
      - lambda: |-
          auto stream_server = new StreamServerComponent(id(uart_bus));
          return {stream_server};
    
    opened by RaulTrombin 0
  • Unreliable connections with ESPHome > 2021.9

    Unreliable connections with ESPHome > 2021.9

    Serial connections are very unreliable when using this component with any ESPHome Version greater than 2021.9. By unreliable I mean the connection resets every few hours.

    opened by tube0013 2
  • Idea: Use UARTStream instead of hardcoded UARTComponent

    Idea: Use UARTStream instead of hardcoded UARTComponent

    First of all thanks for writing this component. Some years ago I found an older version and I've been putting it to great use since.

    While reading through the code, I couldn't help but notice the comments of "ESPHome doesn't know the Stream abstraction yet, so hardcode to use a UART for now."

    Somewhere around the same time, I stumbled upon this from the Midea component:

    https://www.esphome.io/api/appliance__base_8h_source.html

    It implements a UARTStream class that takes the UARTcomponent and wraps the Stream class around it. Although it wouldn't change the functionality, it might be more in line with what you envisioned when you wrote this component.

    opened by mjkl-gh 0
  • Component not found: stream_server.

    Component not found: stream_server.

    Below minimal configuration file fails validation and build on my ESPHome instance:.

    INFO Reading configuration /config/esphome/test123.yaml...
    Failed config
    
    stream_server: [source /config/esphome/test123.yaml:14]
      
      Component not found: stream_server.
    

    test123.yaml:

    ---
    substitutions:
      devicename: test123
      upper_devicename: "TEST123"
    
    esphome:
      name: ${devicename}
      platform: ESP8266
      board: esp01_1m
    
    external_components:
      - source: github://oxan/esphome-stream-server
    
    stream_server:
    

    I am using the following installation:

    System Health

    version | core-2022.2.9 -- | -- installation_type | Home Assistant OS dev | false hassio | true docker | true user | root virtualenv | false python_version | 3.9.7 os_name | Linux os_version | 5.10.98 arch | x86_64 timezone | Europe/Amsterdam

    Home Assistant Cloud

    logged_in | false -- | -- can_reach_cert_server | ok can_reach_cloud_auth | ok can_reach_cloud | ok

    Home Assistant Supervisor

    host_os | Home Assistant OS 7.4 -- | -- update_channel | stable supervisor_version | supervisor-2022.01.1 docker_version | 20.10.9 disk_total | 30.8 GB disk_used | 8.2 GB healthy | true supported | true board | ova supervisor_api | ok version_api | ok installed_addons | SSH & Web Terminal (10.0.2), Studio Code Server (4.1.0), Portainer (2.11.0-3), ESPHome (2022.2.5)

    Lovelace

    dashboards | 1 -- | -- resources | 0 mode | auto-gen

    opened by jmartens 0
Owner
Oxan van Leeuwen
Do NOT use e-mail for support questions. You will not receive a reply.
Oxan van Leeuwen
WiFi Attack + Recon Suite for the ESP8266 WiFi Nugget

Nugget-Invader Welcome to the Nugget Invader repository! The Invader is a WiFi attack suite developed for the WiFi Nugget, an ESP8266 based platform d

HakCat 40 Nov 28, 2022
Use eBPF to speed up your Service Mesh like crossing an Einstein-Rosen Bridge.

merbridge Use eBPF to speed up your Service Mesh like crossing an Einstein-Rosen Bridge. Usage You just only need to run the following command to your

null 533 Jan 7, 2023
ESPHome component for Ikea Idasen desk control

This component creates a bluetooth bridge for an Ikea Idasen desk that uses a Linak controller with ESPHome and an ESP32 device. Cover integration Lin

Julien 139 Dec 22, 2022
Update ESP32 firmware over WiFi from a web server

esp32-firmware-update Update ESP32 firmware over WiFi from Github This includes a python script which generates the update json file based on the firm

Felix Biego 12 Dec 10, 2022
QUIC, a multiplexed stream transport over UDP

QUIC, a multiplexed stream transport over UDP QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is

Devsisters Corp. 1.7k Dec 31, 2022
This is a small library that allows to stream a Dear ImGui scene to multiple WebSocket clients at once

imgui-ws Dear ImGui over WebSockets This is a small library that allows to stream a Dear ImGui scene to multiple WebSocket clients at once. This is ac

Georgi Gerganov 327 Dec 30, 2022
Using Visual Studio C++ to read IP addresses and comport number (Serial number) on Windows platform

Using Visual Studio C++ to read IP addresses on Windows platform

zhuhuijin 0 Feb 2, 2022
LAppS - Lua Application Server for micro-services with default communication over WebSockets. The fastest and most vertically scalable WebSockets server implementation ever. Low latency C++ <-> Lua stack roundtrip.

LAppS - Lua Application Server This is an attempt to provide very easy to use Lua Application Server working over WebSockets protocol (RFC 6455). LApp

null 48 Oct 13, 2022
Windows named pipe server that forwards connections to given TCP server

PipeTcp An asynchronous Windows named pipe server that forwards connections to given TCP server. Pre-built binaries can be found in Releases. Invocati

Jinoh Kang 5 Nov 3, 2022
A WiFi mapping companion app for Valetudo

Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating WiFi signal strength maps. It visualizes them using a Voronoi diag

Christian F. Coors 203 Jan 8, 2023