Ok lets start from the beginning to avoid misunderstandings:
-
Working with Docker and VLANs
-
Want to Use OpenHab --MQTT–> Zwave-JS-UI --IP(ser2net)–> MiniPC(pi3 or 4) “Z-Stick7” or “Zwave.me7”
-
DockerHost (Ubuntu with Portainer) 192.168.1.111 (up and running great)
- OpenHab-container with ipvlan 192.168.5.201
- MQTT-contaner with ipvlan 192.168.5.202
- zwave-js-ui-container wht ipvlan 192.168.5.203
- Pi3 as Test-Server with plugged in Z-Stick7 (/dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0)
On the Pi3 (4) I allso installed a TestEnv with portainer and zwave-js-ui-container.
quicktest with
device:
- /dev/zwave : dev/ttyUSB0
or
device:
- /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0
or
device:
- /dev/zwave : /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0
Works great and I added one Node2 for Testing purposes.
Then installed ser2net with following config under /etc/ser2net.yaml
%YAML 1.1
---
# This is a ser2net configuration file
define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n
connection: &zwavestick
accepter: telnet(rfc2217),tcp,4000
enable: on
options:
kickolduser: true
connector: serialdev,
/dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0,
115200n81,nobreak,local
# nc 127.0.0.1 4000
??????????????,
(no guess why I am not gettsing “succeeded!” here on localhost like in the next line (same pi, same sh)
# nc -v 192.168.1.102 4000
Connection to 192.168.1.102 4000 port [tcp/*] succeeded!
??????????????,
# sudo minicom -D /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0
Device /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0 is locked.
(guess it is locked by ser2net, what is ok so far)
# sudo lsof -i -P -n | grep LISTEN | grep ser2net
ser2net 4004 root 7u IPv6 112288 0t0 TCP *:4000 (LISTEN)
# sudo service ser2net status
● ser2net.service - Serial port to network proxy
Loaded: loaded (/lib/systemd/system/ser2net.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-02-16 16:15:05 CET; 54min ago
Docs: man:ser2net(8)
Main PID: 4004 (ser2net)
Tasks: 1 (limit: 1595)
CPU: 1.033s
CGroup: /system.slice/ser2net.service
└─4004 /usr/sbin/ser2net -n -c /etc/ser2net.yaml -P /run/ser2net.pid
Feb 16 16:15:05 zwave systemd[1]: Starting Serial port to network proxy...
Feb 16 16:15:05 zwave systemd[1]: Started Serial port to network proxy.
# sudo fuser -v /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_5828e4a40755ed1186a193131d62bc44-if00-port0
USER PID ACCESS COMMAND
/dev/ttyUSB0: root 4004 F.... ser2net
And now I am out if ideas how to get it into the client (zwave-js-ui)
as replacement for direct hardware access…
Next step to try will be “backconverting” from ip to serial with help of socat?? (I wanted to avoid this)
PS: I also wanted to avoid experimenting with usbip (raw data) regarding to much traffic.
Greating Oekel