Shelly UNI Plus - Wifi connection, Netgear WAP Incompatibility!

Have a Shelly UNI plus set up to read a voltage and it is working but throws errors of connection failure: connect timed out.

If I ping it constantly it's there for a few or one ping then gone for a while then back, repeat.

Is it a power saving deal that it's up and down or ?

It is within 10 feet of WiFi also

Connection to it's built in Wifi is solid though, if I turn that Off it is really hard to direct connect on the main WiFi. So I chose to leave AP on for now as turning off didn't change it ability to be pinged constantly (ping -t [IP addr]

HE Log

I seem to recall having seen this before, but checking my logs right now, doesn’t appear to be an issue.

I have found in the past that some firmware versions have connectivity issues. I reached out to Shelly and they recommended a specific version to use. (I had to downgrade…)

The key question though - is this causing any issues?

I had a similar issue and found that I assigned a static IP to the shelly that another device was already using so it was competing for the connection.

Other than logs showing error it is working.

But if I try to access the UNI on main WiFi it has trouble connecting and might sometimes but then HE loses connection and I have to go to device and click connect to fix it.

@kampto - I have tried both Static IP and DHCP with router reservation, IP is free and either static or DHCP (with reservation) behave the same.

@Sebastien - What version firmware are you running?

20221027-121732/v1.12.1-ga9117d3

It’s an old version, but it works for me. That said, I think the latest version has an ability to offset voltage via formula that the version that I have doesn’t offer.

1 Like

Im running latest FW. Are you in ECO mode on the shelly? I set mine to ECO and it dropped the idle consumption considerably which I want cause running on a battery/solar system. Wonder if in ECO mode its using its ESP32 chipset sleep mode periodically. Maybe you have no issue if it doing what you want?

I don't recall seeing the eco mode, guess I will need to poke around a bit in the webgui.

It’s under settings:

When set up my mine in August I updated the firmware. I'll check mine when the vehicle gets back but I have no errors and it stays online when it's here.

I offered some suggestions in the other thread you have going about this issue

Eco Mode is off in the Shelly UNI webgui

Set a static IP address if you don’t already have one set. I almost reflashed one of my Shellys with tasmota - because it kept dropping off my network - when I realized it was the only Shelly device I had that didn’t have a static IP set. Even though I had a reserved address set for it, it would drop off the network for several hours from time to time. Once I set a static IP, it has stayed connected.

Behaves the same with Static IP, or on DHCP with reservation in router......

Wow, you running an older version for sure, mine look different. But yeah ECO mode is there.

1 Like

Yea, I usually like having the latest firmware on all my stuff, but in this case - this one works and others have caused some grief, so will see how long I can resist!

I have an Uni Plus in my crawl space and WiFi was decent for my phone and laptop but not good for the Uni. I ended up buying a higher gain antenna for it and it’s worked great since:

It's only 7.5 feet from Access Point.

And 2 separate UNI's behaved the same.

Not exactly on the topic.. But you seem to have 1 second reconnection timeout.. It might be a bit to rough.. 5..10 seconds might be more reasonable.

Connection may be lost here due to two potential problems (generalized).

  1. network issues
  2. firmware issues

On second topic behavior might be not that obvious, but some other http commands might in some cases hit websocket connection on Shellies (don't know if it may be related to the device being busy internally and not being able to keep websocket protocol intact)

Check if you have the latest driver version. After that if you see a chain of reconnections try to manually (on a driver page) disconnect and then reconnect.

There is a chance that asynchronous reconnections might overlap (like after delayed confirmation of success driver send "connect" request thinking it is not yet connected)

After connection success (with debug enabled) you should see a quite fat log of driver taking a survey in case of any state changes were missing while offline. And your logs miss this response - this basically signals that connection weren't established,

Here is an example (reverse order - from bottom to top) of "connect" log

"""
dev:4772024-11-09 10:54:42.608debugparseShellyWifiStatus [rssi:-71, ssid:Linksys07064, sta_ip:192.168.1.197, status:got ip, ts:null]

dev:4772024-11-09 10:54:42.598debugConfiguration revision 122

dev:6552024-11-09 10:54:42.581infoAir temperature 25.5°C

dev:4772024-11-09 10:54:42.572info(Boiler (bathroom) temperature sensor switch2) Sensor generic report: Air temperature:temperature 25.5°C

dev:4772024-11-09 10:54:42.569debug(Boiler (bathroom) temperature sensor switch2) parseShellyTemperatureSensorStatus [tC:25.5, tF:78.0]

dev:4772024-11-09 10:54:42.539info(Boiler (bathroom) switch 2) Meter generic report: Electric:voltage 1.7000000476837158203125V

dev:4772024-11-09 10:54:42.453info(Boiler (bathroom) switch 2) Meter generic report: Electric:powerFactor 0cos(φ)

dev:4772024-11-09 10:54:42.423info(Boiler (bathroom) switch 2) Sensor generic report: Frequency:frequency 50.1Hz

dev:4772024-11-09 10:54:42.396info(Boiler (bathroom) switch 2) Meter generic report: Electric:amperage 0A

dev:4772024-11-09 10:54:42.370info(Boiler (bathroom) switch 2) Meter generic report: Electric:power 0W

dev:4772024-11-09 10:54:42.342info(Boiler (bathroom) switch 2) Meter generic report: Electric:energy 0.000kWh

dev:4772024-11-09 10:54:42.338debug(Boiler (bathroom) switch 2) parseShellyCommonStatus [aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:1, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:25.5, tF:78.0], ts:null, voltage:1.7]

dev:4772024-11-09 10:54:42.301debug(Boiler (bathroom) switch 2) parseShellySwitchStatus [aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:1, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:25.5, tF:78.0], ts:null, voltage:1.7]

dev:6542024-11-09 10:54:42.214infoAir temperature 24.8°C

dev:4772024-11-09 10:54:42.198info(Boiler (bathroom) temperature sensor switch1) Sensor generic report: Air temperature:temperature 24.8°C

dev:4772024-11-09 10:54:42.192debug(Boiler (bathroom) temperature sensor switch1) parseShellyTemperatureSensorStatus [tC:24.8, tF:76.7]

dev:4772024-11-09 10:54:42.165info(Boiler (bathroom) switch 1) Meter generic report: Electric:voltage 1.60000002384185791015625V

dev:4772024-11-09 10:54:42.136info(Boiler (bathroom) switch 1) Meter generic report: Electric:powerFactor 0cos(φ)

dev:4772024-11-09 10:54:42.107info(Boiler (bathroom) switch 1) Sensor generic report: Frequency:frequency 50.1Hz

dev:4772024-11-09 10:54:42.079info(Boiler (bathroom) switch 1) Meter generic report: Electric:amperage 0A

dev:4772024-11-09 10:54:42.052info(Boiler (bathroom) switch 1) Meter generic report: Electric:power 0W

dev:4772024-11-09 10:54:42.027info(Boiler (bathroom) switch 1) Meter generic report: Electric:energy 0.000kWh

dev:4772024-11-09 10:54:42.023debug(Boiler (bathroom) switch 1) parseShellyCommonStatus [aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:0, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:24.8, tF:76.7], ts:null, voltage:1.6]

dev:4772024-11-09 10:54:41.995debug(Boiler (bathroom) switch 1) parseShellySwitchStatus [aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:0, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:24.8, tF:76.7], ts:null, voltage:1.6]

dev:4772024-11-09 10:54:41.926info(Boiler (bathroom) script: fridge-delayed-start.js) Script running false

dev:4772024-11-09 10:54:41.904debug(Boiler (bathroom) script: fridge-delayed-start.js) parseShellyScriptStatus [id:6, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.900info(Boiler (bathroom) script: script_5) Script running false

dev:4772024-11-09 10:54:41.879debug(Boiler (bathroom) script: script_5) parseShellyScriptStatus [id:5, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.875info(Boiler (bathroom) script: ble-shelly-blu.js) Script running false

dev:4772024-11-09 10:54:41.850debug(Boiler (bathroom) script: ble-shelly-blu.js) parseShellyScriptStatus [id:4, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.845info(Boiler (bathroom) script: cover-control-weather.js) Script running false

dev:4772024-11-09 10:54:41.824debug(Boiler (bathroom) script: cover-control-weather.js) parseShellyScriptStatus [id:3, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.820info(Boiler (bathroom) script: Stiebel_Eltron_Boiler(1-2-off)) Script running false

dev:4772024-11-09 10:54:41.802debug(Boiler (bathroom) script: Stiebel_Eltron_Boiler(1-2-off)) parseShellyScriptStatus [id:2, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.798info(Boiler (bathroom) script: Stiebel_Eltron_Boiler(1-on/off,long-all_on/off)) Script running false

dev:4772024-11-09 10:54:41.776debug(Boiler (bathroom) script: Stiebel_Eltron_Boiler(1-on/off,long-all_on/off)) parseShellyScriptStatus [id:1, mem_free:25200, running:false, ts:null]

dev:4772024-11-09 10:54:41.766debug(Boiler (bathroom) input 2) parseShellyCommonStatus [id:1, state:false, ts:null]

dev:4772024-11-09 10:54:41.737debug(Boiler (bathroom) input 2) parseShellyInputStatus [id:1, state:false, ts:null]

dev:4772024-11-09 10:54:41.731debug(Boiler (bathroom) input 1) parseShellyCommonStatus [id:0, state:null, ts:null]

dev:4772024-11-09 10:54:41.706debug(Boiler (bathroom) input 1) parseShellyInputStatus [id:0, state:null, ts:null]

dev:4772024-11-09 10:54:41.699debugparseShellyEthernetStatus [ip:null, ts:null]

dev:4772024-11-09 10:54:41.693debugparseShellyCloudStatus [connected:false, ts:null]

dev:4772024-11-09 10:54:41.686debugparseShellyStatus [ble:[:], bthome:[errors:[bluetooth_disabled]], cloud:[connected:false], eth:[ip:null], input:0:[id:0, state:null], input:1:[id:1, state:false], knx:[:], mqtt:[connected:false], script:1:[id:1, mem_free:25200, running:false], script:2:[id:2, mem_free:25200, running:false], script:3:[id:3, mem_free:25200, running:false], script:4:[id:4, mem_free:25200, running:false], script:5:[id:5, mem_free:25200, running:false], script:6:[id:6, mem_free:25200, running:false], switch:0:[aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:0, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:24.8, tF:76.7], voltage:1.6], switch:1:[aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:1, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:25.5, tF:78.0], voltage:1.7], sys:[available_updates:[:], cfg_rev:122, fs_free:147456, fs_size:524288, kvs_rev:5, mac:EC62608DC75C, ram_free:123152, ram_size:249588, reset_reason:1, restart_required:false, schedule_rev:2, time:10:54, unixtime:1731142481, uptime:1676851, webhook_rev:0], wifi:[rssi:-71, ssid:Linksys07064, sta_ip:192.168.1.197, status:got ip], ws:[connected:false]]

dev:4772024-11-09 10:54:41.612debugHTTP Async Response: [id:162, request:[uri:http://192.168.1.197, path:/rpc/Shelly.GetStatus, requestContentType:application/json]] ::: [ble:[:], bthome:[errors:[bluetooth_disabled]], cloud:[connected:false], eth:[ip:null], input:0:[id:0, state:null], input:1:[id:1, state:false], knx:[:], mqtt:[connected:false], script:1:[id:1, mem_free:25200, running:false], script:2:[id:2, mem_free:25200, running:false], script:3:[id:3, mem_free:25200, running:false], script:4:[id:4, mem_free:25200, running:false], script:5:[id:5, mem_free:25200, running:false], script:6:[id:6, mem_free:25200, running:false], switch:0:[aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:0, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:24.8, tF:76.7], voltage:1.6], switch:1:[aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], apower:0.0, current:0.000, freq:50.1, id:1, output:false, pf:0.00, ret_aenergy:[by_minute:[0.000, 0.000, 0.000], minute_ts:1731142440, total:0.000], source:init, temperature:[tC:25.5, tF:78.0], voltage:1.7], sys:[available_updates:[:], cfg_rev:122, fs_free:147456, fs_size:524288, kvs_rev:5, mac:EC62608DC75C, ram_free:123152, ram_size:249588, reset_reason:1, restart_required:false, schedule_rev:2, time:10:54, unixtime:1731142481, uptime:1676851, webhook_rev:0], wifi:[rssi:-71, ssid:Linksys07064, sta_ip:192.168.1.197, status:got ip], ws:[connected:false]]

dev:4772024-11-09 10:54:41.573debug(Boiler (bathroom) input 1) parseShellyCommonStatus [id:0, state:null]

dev:4772024-11-09 10:54:41.551debug(Boiler (bathroom) input 1) parseShellyInputStatus [id:0, state:null]

dev:4772024-11-09 10:54:41.127debugHTTP Async query: Shelly.GetStatus([:])

dev:4772024-11-09 10:54:41.116debugWS query: {"params":{id:0}, "id":100, "method":"Input.GetStatus", "src":"hub"}

dev:4772024-11-09 10:54:41.108infoReceived 'refresh' request from Boiler (bathroom) input 1 (EP1)

dev:4772024-11-09 10:54:41.080infoConnection open.

dev:4772024-11-09 10:54:40.969infoConnection open.

dev:4772024-11-09 10:54:40.955debugwebSocketStatus status: open; keepAlive=true
"""

The 1 second reconnect was me seeing if adjustments to reconnect time would make a difference, it was at 30. It is now at 15 seconds.

I did not use the Shelly App to install on my network, I used the AP mode and a browser.

Cloud is not turned on and I set up WiFi only.

I might try a different Access Point later to see if that's the issue.

Latest firmware in UNI @ .144

Bundle1.zip was used to load drivers

I will try your suggestions above

This is my driver. So if it is somehow related to the driver issue, I might try to help, narrow down the issue and fix it)

The driver has two communication mechanisms. WebSocket and HTTP.
WebSocket is a constantly open channel mainly for the device to report any instant changes. Commands are issued trough HTTP. So even if websocket connection fails but device is reachable it should remain open to commands from hub ('Refresh', 'On/Off', etc).

'Link' and 'helthStatus' attributes are related to the WebSocket connection state.
'Link' - is an instant state.
'helthStatus' goes down if 'Link' failed to restore in around 90 seconds by default (around 3 sequentially failed retries with the default timeout of 30 seconds). This is made for apps that monitor status of different devices to not to cause much of an excesive alarm (as link may temporary go down occasionally [trough it should be a rare incident])

Btw, just to check the used version could you post a link you used to download the bundle? (in case it point not to the branch but to the specific version instead possibly providing some old version)

The link I used: Bitbucket

Also it's probably not the driver as the ping ability is the same with HE C8 pro turned off.

This issue happened on 2 separate Shelly UNI's as I got 2 of them...

Other than this ping issue the reporting of voltage to Dashboard Tile is working.... Just shows the loss of connection now and then in log.