Zwave js, zooz ZAC93 and TubesZB POE enclosure

To say I am confused is an understatement. So I have questions. Background is below the questions.

  1. should the webpage simply be a ‘restart the ESP32 device’ button and a running log on the right?

  2. is there documentation somewhere (even maybe TubesZB ?) that describes how to actually connect and use the assembled unit?

  3. How does the tubesZB/ZAC93 assembly present itself to the rest of the network?

  4. zwave-js on core. HA documentation says use option 3. But option 3 is for zwave-js-ui, not zwave-js. What’s the path forward on this?

thanks in advance.


I have a zooz zac93 that is in a TubesZB POE enclosure. The assembly powers on and DHCP assigns it an ip, in this case 192.168.22.150. I can successfully ping it, and nmap shows:

Blockquote

ha $ sudo nmap -sT -p11-65535 192.168.22.150
Starting Nmap 7.93 ( https://nmap.org ) at 2024-10-31 15:25 AKDT
Nmap scan report for tubeszb-zw.afabco.lan (192.168.22.150)
Host is up (0.0029s latency).
Not shown: 65521 closed tcp ports (conn-refused)
PORT STATE SERVICE
80/tcp open http
3232/tcp open mdtp
6053/tcp open x11
6638/tcp open unknown
MAC Address: 08:B6:1F:70:BA:73 (Espressif)

Blockquote

my homeassistant is running on a proxmox kvm (not an LXC container):

  • Core 2024.10.2
  • Frontend 20241002.3

I can connect to the tubeszb webpage at http:/192.168.22.150:80.

Question 1: should the webpage simply be a ‘restart the ESP32 device’ button and a running log on the right?)

Question 2:: is there documentation somewhere (even maybe TubesZB ?) that describes how to actually connect and use the assembled unit? I looked and looked and all I could find was zigbee and zigbee2mqtt docs. I did find the tubeszb-zw.yaml with the other code. Which is a good start.

Question 3: How does the tubesZB/ZAC93 assembly present itself to the rest of the network? is it a tcp address, port and stream? Or is it supposed to present as a tcp-serial port?

Question 3a: if it presents as a tcp-serial port, do I need to create a socat virtual serialport /dev/ttyV3 or something like that?

from the (default) tubeszb-zw.yaml and from:

The ESP32 does not process any zwave packets, it just presents the raw UART as a TCP serial connection which is used by zwave-js-ui running on a server elsewhere on the LAN.

I’m guessing that the answer is a tcp-serial port on (in my case) 192.168.22.150:6638. Is this correct?

Question 4: regarding zwave and Homeassistant. From all the reading I need to install zwave-js. Which…ok. From the reading, since I’m running core I can’t install the integration:

image

Further reading indicates this is the howto for zwave-js on core. I this correct?

takes me to:

which then says the (only) way forward is option 3. but option 3 is not for zwave-js, it is for zwave-js-ui. which…huh? other reading emphasizes that those are not the same thing and do not provide the same functionality.

And that’s as far as I’ve gotten for today. Looking for advice on the path forward. and thanks in advance.

To start, at https://tubeszb.com/product/z-wave-poe-kit/ it says:

Requires use of the Z-Wave JS UI or the Z-Wave JS UI Home Assistant Addon

Set up is as simple as entering the IP address of the ESP32-PoE and port as the serial port in the Z-Wave settings – tcp://IP_ADDRESS:6638

So you must use Z-Wave JS UI and connect using the native TCP serial port functionality using the tcp:// address as the serial port path.

ZUI install instructions:
https://zwave-js.github.io/zwave-js-ui/#/getting-started/quick-start

Instructions for using the Z-Wave integration and ZUI:
https://zwave-js.github.io/zwave-js-ui/#/homeassistant/homeassistant-official

Every installation of Home Assistant can install integrations. Integrations are an integral part of Core. I think you are mixing integrations up with add-ons, which are packaged applications that are part of HAOS.

Not sure what other reading you are referring to. The Z-Wave JS add-on and the Z-Wave JS UI add-on provide identical functionality from HA’s perspective (they both provide the zwave-js websocket server HA talks to). The only difference is ZUI has some extra features and its own UI:

https://www.home-assistant.io/integrations/zwave_js/#whats-the-benefit-of-using-z-wave-js-ui-add-on

The ZUI add-on is just a wrapper around the Z-Wave JS UI application for installation in HAOS. Since it sounds like you aren’t using HAOS, add-ons are irrelevant and the standalone Z-Wave JS UI application is your only realistic option. You could run the zwave-js websocket server standalone if you wanted, but that’s not recommended.

The ESP32 chip in the tubeszb-zw kit is running ESPHome firmware, which is customizable based on a config file which can be downloaded/modified from here. Looking at this config file, yes, there appears to be only a “restart” button.

Yes, ESPhome is exposing the ZAC93’s physical serial UART as a TCP stream using serial-over-IP, which ZUI can connect as if it were a local serial port as shown in the images on the link to my how-to as well as the tubeszb-zw product page. No need to create a virtual tty.