Shelly Binding Error (Gen 2, Firmware 1.4.0)

Hi,

I’m using a couple of shelly devices, also the Shelly Plus 2PM to control my rollershutters. Last week I’ve updated the firmware of these devices to 1.4.0. After the firmware update 2 of 4 devices report “WebSocket connection closed abnormal” inside of openHAB.

Trace log:

07:49:30.684 [TRACE] [shelly.internal.api2.Shelly2ApiClient] - shellyplus2pm-30c92280xxxx: API value dual was mapped to openclose
07:49:30.685 [DEBUG] [ly.internal.handler.ShellyBaseHandler] - shellyplus2pm-30c92280xxxx: Unable to initialize, retrying later
java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[?:?]
	at java.lang.Integer.parseInt(Integer.java:678) ~[?:?]
	at java.lang.Integer.parseInt(Integer.java:786) ~[?:?]
	at org.openhab.binding.shelly.internal.api2.Shelly2ApiClient.fillRollerFavorites(Shelly2ApiClient.java:485) ~[?:?]
	at org.openhab.binding.shelly.internal.api2.Shelly2ApiClient.fillRollerSettings(Shelly2ApiClient.java:448) ~[?:?]
	at org.openhab.binding.shelly.internal.api2.Shelly2ApiRpc.getDeviceProfile(Shelly2ApiRpc.java:196) ~[?:?]
	at org.openhab.binding.shelly.internal.handler.ShellyBaseHandler.initializeThing(ShellyBaseHandler.java:324) ~[?:?]
	at org.openhab.binding.shelly.internal.handler.ShellyBaseHandler.lambda$0(ShellyBaseHandler.java:188) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]

The JSON data of the first response are:

{
    "id": 61025951,
    "src": "shellyplus2pm-30c92280xxxx",
    "dst": "openhab-192.168.xx.xxx",
    "result": {
        "ble": {
            "enable": false,
            "rpc": {
                "enable": false
            },
            "observer": {
                "enable": false
            }
        },
        "cloud": {
            "enable": false,
            "server": "iot.shelly.cloud:6012/jrpc"
        },
        "cover:0": {
            "id": 0,
            "name": "Rollade Schlafzimmer",
            "motor": {
                "idle_power_thr": 2.00,
                "idle_confirm_period": 0.25
            },
            "maxtime_open": 60.00,
            "maxtime_close": 60.00,
            "initial_state": "stopped",
            "invert_directions": false,
            "in_mode": "dual",
            "swap_inputs": false,
            "safety_switch": {
                "enable": false,
                "direction": "both",
                "action": "stop",
                "allowed_move": null
            },
            "power_limit": 2800,
            "voltage_limit": 280,
            "undervoltage_limit": 0,
            "current_limit": 10.00,
            "obstruction_detection": {
                "enable": false,
                "direction": "both",
                "action": "stop",
                "power_thr": 133,
                "holdoff": 1.00
            }
        },
        "input:0": {
            "id": 0,
            "name": null,
            "type": "switch",
            "enable": true,
            "invert": false,
            "factory_reset": true
        },
        "input:1": {
            "id": 1,
            "name": null,
            "type": "switch",
            "enable": true,
            "invert": false,
            "factory_reset": true
        },
        "mqtt": {
            "enable": false,
            "server": null,
            "client_id": "shellyplus2pm-30c92280xxxx",
            "user": null,
            "ssl_ca": null,
            "topic_prefix": "shellyplus2pm-30c92280xxxx",
            "rpc_ntf": true,
            "status_ntf": false,
            "use_client_cert": false,
            "enable_rpc": true,
            "enable_control": true
        },
        "sys": {
            "device": {
                "name": "Rollade Schlafzimmer",
                "mac": "30C92280xxxx",
                "fw_id": "20240726-114505/1.4.0-gb2aeadb",
                "discoverable": true,
                "eco_mode": true,
                "profile": "cover",
                "addon_type": null
            },
            "location": {
                "tz": "Europe/Berlin",
                "lat": 00.00000,
                "lon": 00.00000
            },
            "debug": {
                "level": 2,
                "file_level": null,
                "mqtt": {
                    "enable": false
                },
                "websocket": {
                    "enable": false
                },
                "udp": {
                    "addr": null
                }
            },
            "ui_data": {
                "cover": ""
            },
            "rpc_udp": {
                "dst_addr": null,
                "listen_port": null
            },
            "sntp": {
                "server": "time.google.com"
            },
            "cfg_rev": 13
        },
        "wifi": {
            "ap": {
                "ssid": "ShellyPlus2PM-30C92280xxxx",
                "is_open": true,
                "enable": false,
                "range_extender": {
                    "enable": false
                }
            },
            "sta": {
                "ssid": "xxxxxx",
                "is_open": false,
                "enable": true,
                "ipv4mode": "static",
                "ip": "192.168.xx.xxxx",
                "netmask": "255.255.255.0",
                "gw": "192.168.xx.xxx",
                "nameserver": "192.168.xx.xxx"
            },
            "sta1": {
                "ssid": null,
                "is_open": true,
                "enable": false,
                "ipv4mode": "dhcp",
                "ip": null,
                "netmask": null,
                "gw": null,
                "nameserver": null
            },
            "roam": {
                "rssi_thr": -80,
                "interval": 60
            }
        },
        "ws": {
            "enable": false,
            "server": null,
            "ssl_ca": "ca.pem"
        }
    }
}

Can anybody figure which variable doesn’t match the expected format anymore?

Regards,
Vince

AFAIK firmware 1.4 is not fully tested and supported. Please check the general Shelly Binding topic where the binding developer posts updates regularly.

1 Like

Thanks for the hint. I will follow the other post