HomeNetwork/docs/shelly-network-inventory.md
2026-04-17 14:08:19 +02:00

12 KiB

Shelly Network Inventory and Home Assistant Correlation

Date: 2026-04-17

This document combines:

  • OPNsense ARP visibility on 192.168.100.0/24 (vtnet0)
  • Home Assistant home entity search results
  • Direct HTTP probing of responsive devices

The main goal is to make Shelly troubleshooting easier by keeping the likely device-to-entity mapping in one place.

Summary

  • OPNsense live ARP alone did not expose Shelly hostnames reliably, but config.xml did expose static host reservations and DNS-style host entries for several Shelly devices.
  • Home Assistant home contains multiple Shelly devices with clear naming and entity groupings.
  • Three devices were positively confirmed over HTTP:
    • 192.168.100.62 is a Shelly EM named MaddoProd.
    • 192.168.100.76 is a Shelly EM named Shelly-Pompa.
    • 192.168.100.96 is a Shelly EM named shelly-pannello-ovest.
  • Shelly-Server is now traced in OPNsense config as a static reservation and host entry:
    • hostname Shelly-Server
    • reserved IP 192.168.100.75
    • Kea workaround reservation MAC 02:0F:B5:73:E2:28
    • physical Shelly MAC 34:94:54:73:E2:28
    • live MQTT and HTTP diagnostics show the device is actually online at 192.168.100.127
    • the live Shelly web API reports the same factory MAC 34:94:54:73:E2:28, so this does not look like an outdated reservation from a replaced unit
    • local ARP for the live IP resolves to translated on-wire MAC 02:0F:B5:73:E2:28
    • the Kea workaround reservation was updated to the translated MAC so the device should become trackable once it renews DHCP
  • One additional OPNsense ARP entry has a Shelly-looking OUI but did not behave like a Shelly web UI during probing:
    • 192.168.100.114 / 34:94:54:34:1e:fc
  • Several remaining Home devices still rely on inferred MACs from entity IDs because they were not visible as live hosts during this pass.
  • I was not able to complete the casa MCP correlation in this pass, so the Casa IDs column is left as unverified.

Inventory

Likely device Model / type Home IDs Casa IDs OPNsense IP MAC Network / Wi-Fi Confidence Notes
Shelly Pompa Shelly EM (SHEM) switch.shelly_pompa_relay_0, sensor.shelly_pompa_power_0, sensor.shelly_pompa_power_1, update.shelly_pompa_firmware unverified 192.168.100.76 24:4C:AB:41:6D:0C vtnet0, SSID Salnove, RSSI -77 confirmed Confirmed by OPNsense host reservation, live HTTP UI, /shelly, /status, and /settings. Device name Shelly-Pompa. MQTT connected. Channel names: Pompa, Sottosuolo.
Shelly Server Shelly EM / Shelly-family power meter switch.shelly_server_relay_0, sensor.shelly_server_power_0, sensor.shelly_server_power_1, update.shelly_server_firmware unverified live 192.168.100.127; reserved 192.168.100.75 physical 34:94:54:73:E2:28; effective LAN MAC 02:0F:B5:73:E2:28 live on Shellynet, RSSI -17 confirmed Home history, MQTT discovery, live MQTT telemetry, and direct HTTP all confirm this device is active. Kea reservation was updated to the effective LAN MAC as a workaround so the device should become trackable on 192.168.100.75 after DHCP renewal or reconnect.
Shelly Galleria Shelly device, likely 2-channel energy monitor switch.shelly_galleria_relay_0, sensor.shelly_galleria_power_0, sensor.shelly_galleria_power_1, update.shelly_galleria_firmware unverified not found not found not found medium Seen clearly in home. Current power sample was about -3249 W on ch0 and 3794 W on ch1. No network match found.
Shelly 3EM 485519D91C40 Shelly 3EM switch.shelly_3em_485519d91c40_relay_0, sensor.shelly_3em_485519d91c40_power_0, sensor.shelly_3em_485519d91c40_power_1, sensor.shelly_3em_485519d91c40_power_2, update.shelly_3em_485519d91c40_firmware unverified not found inferred 48:55:19:D9:1C:40 not found medium Entity naming strongly suggests MAC suffix 485519D91C40. Not present in current OPNsense ARP snapshot. Current power sample roughly -2273 / -2606 / +633 W.
Shelly Lorenzo Shelly EM switch.shelly_em_c45bbee1e684_relay_0, sensor.shelly_em_c45bbee1e684_power_0, sensor.shelly_em_c45bbee1e684_power_1, update.shelly_em_c45bbee1e684_firmware unverified not found inferred C4:5B:BE:E1:E6:84 not found medium Home naming is clear. Current power sample roughly -2614 / -2929 W. Exact MAC not seen in OPNsense ARP.
Shelly EM 34945478061B Shelly EM switch.shelly_em_34945478061b_relay_0, sensor.shelly_em_34945478061b_power_0, sensor.shelly_em_34945478061b_power_1, update.shelly_em_34945478061b_firmware unverified 192.168.100.96 34:94:54:78:06:1B vtnet0, SSID Meguka, RSSI -76 confirmed Confirmed by OPNsense host reservation, live ARP, and HTTP API. Device name is shelly-pannello-ovest; OPNsense description is Shelly-Pannello-Ovest. Channel 1 label is pannello-ovest.
Shelly EM EC64C9C6893B Shelly EM switch.shelly_em_ec64c9c6893b_relay_0, sensor.shelly_em_ec64c9c6893b_power_0, sensor.shelly_em_ec64c9c6893b_power_1, update.shelly_em_ec64c9c6893b_firmware unverified not found inferred EC:64:C9:C6:89:3B not found medium Device is currently unavailable in Home Assistant. Exact inferred MAC not seen in OPNsense ARP.
MaddoProd Shelly EM switch.maddoprod_relay_0, sensor.maddoprod_power_0, sensor.maddoprod_power_1, update.maddoprod_firmware unverified 192.168.100.62 24:4C:AB:41:87:35 vtnet0, SSID Reisen, RSSI -81 confirmed Confirmed by OPNsense host reservation, live ARP, and HTTP API. Device name is MaddoProd. Current power sample roughly -7 W / 2899 W. Secondary configured Wi-Fi SSID is Top Gun 2 il ritorno.
Pannelli AUX Shelly EM switch.pannelli_aux_relay_0, sensor.pannelli_aux_power_0, sensor.pannelli_aux_power_1, update.pannelli_aux_firmware unverified not found inferred 34:94:54:73:CD:10 not found medium Home naming is clear. Current power sample roughly 364 W / 0 W. Exact MAC not seen in current ARP.
Batteria AUX Shelly EM switch.batteria_aux_relay_0, sensor.batteria_aux_power_0, sensor.batteria_aux_power_1, update.batteria_aux_firmware unverified not found inferred E8:68:E7:D2:65:F5 not found medium Home naming is clear. Current power sample roughly 219 W / 0 W. Exact MAC not seen in current ARP.
Unknown 34:94:54 device unknown none matched unverified 192.168.100.114 34:94:54:34:1E:FC vtnet0 low The OUI looks like a possible Shelly-family vendor, but /, /status, /shelly, and /rpc/... did not identify it as Shelly. Keep as a candidate only.

Confirmed HTTP details for 192.168.100.76

Directly retrieved from the device web API:

  • Name: Shelly-Pompa
  • Type: SHEM
  • Hostname: shellyem-244CAB416D0C
  • MAC: 244CAB416D0C
  • IP: 192.168.100.76
  • Wi-Fi SSID: Salnove
  • RSSI: -77
  • MQTT: connected
  • Firmware: 20230913-114150/v1.14.0-gcb84623
  • Channel names:
    • Pompa
    • Sottosuolo

This is a strong match for the Home Assistant Shelly Pompa entity group.

Confirmed HTTP details for 192.168.100.62

Directly retrieved from the device web API:

  • Name: MaddoProd
  • Type: SHEM
  • Hostname: shellyem-244CAB418735
  • MAC: 244CAB418735
  • IP: 192.168.100.62
  • Wi-Fi SSID: Reisen
  • Secondary Wi-Fi SSID: Top Gun 2 il ritorno
  • RSSI: -81
  • MQTT: connected
  • Firmware: 20230913-114150/v1.14.0-gcb84623

This is a strong match for the Home Assistant maddoprod entity group.

Confirmed HTTP details for 192.168.100.96

Directly retrieved from the device web API:

  • Name: shelly-pannello-ovest
  • Type: SHEM
  • Hostname: shellyem-34945478061B
  • MAC: 34945478061B
  • IP: 192.168.100.96
  • Wi-Fi SSID: Meguka
  • RSSI: -76
  • MQTT: connected
  • Firmware: 20230913-114150/v1.14.0-gcb84623
  • Channel 1 label: pannello-ovest

This is a strong match for the Home Assistant shelly_em_34945478061b entity group and the OPNsense description Shelly-Pannello-Ovest.

OPNsense reservation details for Shelly-Server

Directly retrieved from OPNsense config.xml:

  • Host entry: Shelly-Server.maddo.science
  • Reserved IP: 192.168.100.75
  • Current Kea workaround MAC: 02:0F:B5:73:E2:28
  • Physical Shelly MAC: 34:94:54:73:E2:28
  • Description: Shelly-Server

Live status during this pass:

  • Home Assistant sensor.shelly_server_power_0 updated every ~30 seconds for the last hour
  • MQTT discovery identifies this device as shellyem-34945473E228
  • MQTT discovery advertises control URL http://192.168.100.127/
  • direct HTTP to http://192.168.100.127/ succeeded
  • live device details from /settings and /status:
    • name Shelly-Server
    • SSID Shellynet
    • RSSI -17
    • MQTT connected true
    • channel labels Server-1, Server-2
    • firmware 20230913-114150/v1.14.0-gcb84623
  • direct MQTT telemetry observed on shellies/shellyem-34945473E228/emeter/...
  • 192.168.100.75 did not answer ping or HTTP during the same pass

That makes the identity mapping and live status both strong. The real fault is the mismatch between the live IP and the OPNsense reservation.

It also argues against the reservation MAC simply being stale from an old device replacement, because the live Shelly reports the same factory MAC as the one stored in OPNsense.

The active Kea workaround now reserves the same IP for the translated LAN-side MAC instead, with description Shelly-Server via Shellynet extender workaround; physical MAC 34:94:54:73:e2:28.

MQTT findings for Shelly-Server

Broker-level diagnostics against the local .local/mqtt-home.env credentials confirmed:

  • MQTT client ID / topic base: shellyem-34945473E228
  • Home Assistant discovery prefix in use: homeassistant/...
  • Shellies topic base in use: shellies/shellyem-34945473E228/...
  • Availability model in discovery:
    • ~online topic with true / false
    • ~info JSON field mqtt.connected
  • Live telemetry was observed for:
    • shellies/shellyem-34945473E228/emeter/0/power
    • shellies/shellyem-34945473E228/emeter/0/reactive_power
    • shellies/shellyem-34945473E228/emeter/0/pf
    • shellies/shellyem-34945473E228/emeter/0/voltage
    • shellies/shellyem-34945473E228/emeter/0/total
    • shellies/shellyem-34945473E228/emeter/0/total_returned
    • shellies/shellyem-34945473E228/emeter/1/...

This proves Home Assistant is receiving live MQTT telemetry, not just stale retained state.

Home Assistant groups used for correlation

Representative entity groups found in home:

  • shelly_pompa
  • shelly_server
  • shelly_galleria
  • shelly_3em_485519d91c40
  • shelly_em_c45bbee1e684
  • shelly_em_34945478061b
  • shelly_em_ec64c9c6893b
  • maddoprod
  • pannelli_aux
  • batteria_aux

OPNsense findings worth keeping in mind

  • Active Shelly-confirmed subnet: 192.168.100.0/24
  • Observed interface: vtnet0
  • OPNsense static mappings were more useful than live ARP for Shelly-Server.
  • For Shelly-Server, OPNsense reservation data was useful for identity but wrong for the current live IP.
  • OPNsense ARP snapshot was incomplete relative to Home Assistant inventory.
  • OPNsense-backed host reservations confirmed:
    • 192.168.100.62 -> shelly-maddoProd / 24:4c:ab:41:87:35
    • 192.168.100.75 -> Shelly-Server / 34:94:54:73:e2:28
    • 192.168.100.76 -> Shelly-Pompa / 24:4c:ab:41:6d:0c
    • 192.168.100.96 -> shellyem-34945478061b / 34:94:54:78:06:1b
  • MQTT discovery confirmed that Shelly-Server is actually live at 192.168.100.127.
  • That usually means one or more of the following:
    • the device is on a valid live IP that does not match the OPNsense reservation
    • the reservation is stale, not applied, or not being served by the DHCP source the device is actually using
    • OPNsense ARP visibility is incomplete because ARP only reflects neighbors the firewall itself has talked to

Best next manual checks

  1. Find which DHCP server actually handed out 192.168.100.127 to MAC 34:94:54:73:E2:28.
  2. Check the AP or controller for the Shellynet client entry for MAC 34:94:54:73:E2:28 and confirm its DHCP source.
  3. Renew DHCP on the device or reboot it after fixing the intended reservation path, so it either takes 192.168.100.75 or the reservation is updated to 192.168.100.127.
  4. Decide whether the intended fix is: make OPNsense own the lease again, or update OPNsense to reflect the real addressing source.