Skip to content

General refactoring - #11

Open
santam85 wants to merge 24 commits into
giannello:masterfrom
santam85:main
Open

santam85 wants to merge 24 commits into
giannello:masterfrom
santam85:main

Conversation

@santam85

Copy link
Copy Markdown

Hey @giannello,
not an ideal PR as it's massive and contains a lot of unrelated changes, but it was useful for me to refactor the code to debug and improve the implementation with more ease. Feel free to pick what you like, and add comments in case you have questions.

  • Added a README.md to document settings and the expected usage pattern
  • Added library sourcecode for warema-wms-venetian-blinds to allow upgrading dependencies of serialport and parsers
  • Improved logging by using winston, added log_level setting
  • Added the ability to specify device type when force-adding devices
  • Added targeted frequent polling for moving devices, as supported by warema-wms-venetian-blinds
  • Perfom scan anyway even when forcing a list of devices, and merge the resulting set, while still removing the blacklisted ones
  • Tweaked registration of devices to reuse some code for weather stations, added all supported sensors
  • Split code in a couple more files to improve readability

platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: |
santam/wms-mqtt:latest

@santam85 santam85 Jan 25, 2023

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need changing, can be parameterized with repo secrets or workflow parameters

Fix dockerfile paths in workflow
Refactor to avoid nested config files and paths in pipeline
Replaced logger with winston
Retain config messages to be robust against HA restarts
Only set open/closed when stopped
@santam85
santam85 force-pushed the main branch 3 times, most recently from 40f583c to 14876c7 Compare January 30, 2023 12:26
@SkyDroVV

Copy link
Copy Markdown

Title: Please support TCP/network serial bridges for Warema WMS sticks

Hello,

thank you for maintaining this Warema WMS add-on.

I successfully got the add-on working with a remote Warema WMS USB stick connected through an ESP32 USB serial proxy over the network.

To make this work, I had to locally modify the add-on because currently only local serial devices are officially supported.

My working configuration is:

wms_serial_port: /tmp/ttyWMS
wms_pan_id: ADAB
wms_key: XXXXX
wms_channel: 20
force_devices: 808932,1154992

The important part is:

wms_serial_port: /tmp/ttyWMS

The ESP32 exposes the USB stick via TCP socket and I create a pseudo serial device using socat:

socat pty,raw,echo=0,link=/tmp/ttyWMS tcp:192.168.x.x:8880 &

This allows the add-on to communicate with the WMS stick exactly like a local USB serial device.

Advantages:

  • remote placement of the WMS stick
  • better RF positioning
  • less interference near the Home Assistant server
  • works over WiFi/LAN
  • ESP32/OpenWRT/USB-over-IP compatibility

Would it be possible to officially support:

  • socket://host:port
  • RFC2217
  • or pseudo TTY devices generated by socat

This would make remote WMS installations much easier and more flexible.

Additionally:
Warema WMS requires 125000 baud, which was critical for stable communication when using serial proxies.

Thank you!

@giannello
giannello force-pushed the master branch 3 times, most recently from bc8917f to fdef1c1 Compare July 9, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants