Connect ZWA-2 anywhere: Use Z-Wave over Wi-Fi or PoE

Hi. My use case is that I have a Pi with HA in my home and garage is just far enough away that zwave can’t make the hope to the garage. If I could have one zwave instance in my home, and another in the garage connected over my LAN, then that would be a perfect solution. Do you know another way? Thanks in advance.

fun fun

1 Like

Even to far away for the newest Z-Wave LR (Z-Wave Long Range, a.k.a. ZWLR) devices based on Z-Wave 800 Series hardware chip? See example → Z-Wave Long Range Devices - The Smartest House

When commission and choose to connect a such device via Z-Wave Long Range to the ZWA-2 adapter as controller it will not use mesh but instead connect directly using their LR technology which can be up to a 1-mile away in optimal conditions.

Again, another option is ti setup a second Z-Wave JS Server in the other location using for example a Raspberry Pi with its own dedicated ZWA-2 adapter as Z-Wave controller.

1 Like

Sorry to hijack this thread, but I’m having issues with a Waveshare ESP32-S3-POE board and a Sonoff Z-wave 800 stick. When configured direct to my HA host via USB, it seems to work just fine. Moving the transceiver to a Z-wave PoE bridge works for the most part, but I cannot include, exclude, or interview any devices. Tried using the zwave_proxy component in esphome and via esphome’s api. Also tried tube0013’s solution of using a stream_server direct to a tcp socket. I’m completely perplexed why these basic functions aren’t working, yet I can see existing devices on the network and all the events coming and going from them. Thanks in advance if anyone can see anything obviously wrong–I’ve been staring at this too long…

esphome:
  name: hub-zwave
  friendly_name: hub-zwave

esp32:
  variant: esp32s3
  flash_size: 16MB
  framework:
    type: esp-idf\
    ##sdkconfig_otpions added per https://raw.githubusercontent.com/tube0013/TubesZB-ESPHome-Builder/refs/heads/main/manifests/tubeszb-zw.yaml
    sdkconfig_options:
      CONFIG_LWIP_MAX_SOCKETS: "16"
      CONFIG_PM_ENABLE: "n"
      # Prevent IDF from trying to power-down UART in light sleep, which causes
      # uart_param_config to return ESP_ERR_NOT_SUPPORTED on some targets
      CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP: "n"
      CONFIG_UART_ISR_IN_IRAM: "y"

## reqs for tube0013's stream_server solution
# external_components:
#   - source: github://oxan/esphome-stream-server
#   - source: github://tjhorner/esphome-custom-components
#     components: [ project_version ]

psram:
  mode: octal
  speed: 80MHz

ethernet:
  type: W5500
  mosi_pin: GPIO11
  miso_pin: GPIO12
  clk_pin: GPIO13
  cs_pin: GPIO14
  reset_pin: GPIO9
  interrupt_pin: GPIO10

mdns:
  services:
    - service: "_zwave"
      protocol: "_tcp"
      port: 6053
      txt:
        protocol: "esphome"

button:
  - platform: restart
    id: restart_btn
    name: "Restart"
    entity_category: diagnostic
    disabled_by_default: true

# Enable logging
logger:
  hardware_uart: UART0

# Enable Home Assistant API
api:
  reboot_timeout: 0s

ota:
  - platform: esphome

usb_host:
  devices:
    - id: device_0
      vid: 0x10c4
      pid: 0xea60

usb_uart:
  - type: CP210X
    vid: 0x10c4
    pid: 0xea60
    channels:
      - id: uch_1
        baud_rate: 115200
        buffer_size: 2048
    
zwave_proxy:
  id: zw_proxy

## stream_server config
# stream_server:
#   uart_id: uch_1
#   port: 6638
#   buffer_size: 1024

Thank you for the info! Sorry for delay. I actually bought a LR stick and LR device, very excitedly, and was shocked to find that it’s range did not seem to be much more than normal zwave. That was about 6 months ago. If it worked well for you then maybe I will test it again.

If that does not work then I think the second JS server is the only option. I have never done that. Can both be controlled via the same HA instance or how does that work?

Thanks again!

You are now getting really off-topic so you start a new thread to ask for support to not hijack these comments, hence do not reply more about that here if have further questions. Anyway, in summery you first install a separate stand-alone Z-Wave JS Server with its own Z-Wave Controller on a different computer and then you just install another instans of the Z-Wave integration which you connect to that remote host instead of the local host → Z-Wave - Home Assistant

Update: I dug out my old Nortek HUSBZB-1 and tried that. No issues via zwave_proxy, so it’s something with the Sonoff adapter and/or how I’m commuictaing with it. Also validated that there weren’t any funny usb power drops from the waveshare. I’ll exit this thread for now, as my issue is clearly unique to the Sonoff. I’ve reached out to them for suggestions and will post an edit for posterity if I get anywhere.