If the letters are in the XXXXXX they should be upper case.
Thanks.
It works nice!
New version: 0.8.9
Changelog:
- lower case letters can be used in relays ID
New version: 0.8.10
Changelog:
- Add abbreviation value for
position_topic
(HA 0.93 required)
New version: 0.9.0
Changelog:
- Add support for Shelly Plug S
Could you add RGBW2 white mode?
RGBW2 white mode is on my “to-do” list.
New version: 0.9.1
Changelog:
- Add support for white-mode for Shelly RGBW2
shellyrgbw2-AABB22: 'white'
- means that Shelly RGBW2 works in white-mode
shellyrgbw2-CC2211: 'rgbw'
- means that Shelly RGBW2 works in color-mode (default) - Change argument for Shelly2/Shelly2.5 roller mode [breaking change]
shellyswitch-334455: 'cover'
- means that Shelly2 works in roller mode and use
cover component in Home Assistant
Can you please advice what configuration settings I should add to automations.yaml to use Shelly 2.5 in roller mode?
I’ve tried: shellyswitch25-73C874: 'cover'
the Shelly is discovered however appears as Switch in HA and when I switch the relay id does nothing.
Iam using your suggested template automations.yaml and Shelly 2.5 v1.4.9-shelly2.5-hotfix3
- id: 'shellies_discovery'
alias: 'Shellies Discovery'
trigger:
- platform: mqtt
topic: shellies/announce
action:
service: python_script.shellies_discovery
data_template:
id: '{{ trigger.payload_json.id }}'
mac: '{{ trigger.payload_json.mac }}'
fw_ver: '{{ trigger.payload_json.fw_ver }}'
EDIT: I use your new version : 0.9.1
I tried a while ago and Shelly2.5 was added as a cover.
Your automation should look like this:
- id: 'shellies_discovery'
alias: 'Shellies Discovery'
trigger:
- platform: mqtt
topic: shellies/announce
action:
service: python_script.shellies_discovery
data_template:
id: '{{ trigger.payload_json.id }}'
mac: '{{ trigger.payload_json.mac }}'
fw_ver: '{{ trigger.payload_json.fw_ver }}'
shellyswitch25-73C874: 'cover'
Did you restart HA? Sometimes you need two reboots or run twice an announce
automation.
Yes, I’ve tried to restart and also remove Entity and run discovery again. But it does not help.
I also see some additional errors in the log related to power consumption
2019-05-18 20:52:30 ERROR
Summary
(MainThread) [homeassistant.components.mqtt.sensor] Exception in async_discover_sensor when dispatching ‘mqtt_discovery_new_sensor_mqtt’: ({‘name’: ‘Shelly2.5 73C874 Power 0’, ‘state_topic’: ‘shellies/shellyswitch25-73C874/relay/0/power’, ‘unit_of_measurement’: ‘W’, ‘device_class’: ‘power’, ‘value_template’: ‘{{ value | float | round(1) }}’, ‘availability_topic’: ‘shellies/shellyswitch25-73C874/online’, ‘payload_available’: ‘true’, ‘payload_not_available’: ‘false’, ‘unique_id’: ‘shellyswitch25-73C874-relay-power-0’, ‘device’: {‘identifiers’: [’######73C874’], ‘name’: ‘Shelly2.5 73C874’, ‘model’: ‘Shelly2.5’, ‘sw_version’: ‘20190416-151347/v1.4.9-shelly2.5-hotfix3@26ed6ef3’, ‘manufacturer’: ‘Shelly’}, ‘platform’: ‘mqtt’},)
Traceback (most recent call last):
File “/usr/src/app/homeassistant/helpers/config_validation.py”, line 658, in call
return super().call(data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 267, in call
return self._compiled([], data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 589, in validate_dict
return base_validate(path, iteritems(data), out)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 427, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value is not allowed for dictionary value @ data[‘device_class’]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/src/app/homeassistant/components/mqtt/sensor.py”, line 70, in async_discover_sensor
config = PLATFORM_SCHEMA(discovery_payload)
File “/usr/src/app/homeassistant/helpers/config_validation.py”, line 670, in call
validated = super().call(data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 267, in call
return self._compiled([], data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 589, in validate_dict
return base_validate(path, iteritems(data), out)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 427, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value is not allowed for dictionary value @ data[‘device_class’]
2019-05-18 20:52:30 ERROR (MainThread) [homeassistant.components.mqtt.sensor] Exception in async_discover_sensor when dispatching ‘mqtt_discovery_new_sensor_mqtt’: ({‘name’: ‘Shelly2.5 73C874 Energy 0’, ‘state_topic’: ‘shellies/shellyswitch25-73C874/relay/0/energy’, ‘unit_of_measurement’: ‘kWh’, ‘device_class’: ‘power’, ‘value_template’: ‘{{ (value | float / 60 / 1000) | round(2) }}’, ‘availability_topic’: ‘shellies/shellyswitch25-73C874/online’, ‘payload_available’: ‘true’, ‘payload_not_available’: ‘false’, ‘unique_id’: ‘shellyswitch25-73C874-relay-energy-0’, ‘device’: {‘identifiers’: [‘807D3A73C874’], ‘name’: ‘Shelly2.5 73C874’, ‘model’: ‘Shelly2.5’, ‘sw_version’: ‘20190416-151347/v1.4.9-shelly2.5-hotfix3@26ed6ef3’, ‘manufacturer’: ‘Shelly’}, ‘platform’: ‘mqtt’},)
Traceback (most recent call last):
File “/usr/src/app/homeassistant/helpers/config_validation.py”, line 658, in call
return super().call(data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 267, in call
return self._compiled([], data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 589, in validate_dict
return base_validate(path, iteritems(data), out)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 427, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value is not allowed for dictionary value @ data[‘device_class’]
Which version of Home Assistant do you use?
I am using HA 0.91.4
Hi,
@Bieniu - thanks very much for this, I’ve successfully autodiscovered 8 shelly 2.5s using your script which saved me a lot of head scratching. I have a query you may know the answer to.
When I toggle one switch on a 2.5, both are marked as unavailable in HA until the switch transition is completed. So automations, e.g. turn on all kitchen lights, will fail sometimes on one relay, unless I add a delay between turning on relays in the same shelly.
Have you observed this? Any idea if this is solvable by config in HA?
Thanks very much, appreciate your efforts.
I’ve found adding the switches on each relay manually in configuration.xml works fine:
light: - platform: mqtt name: "Kitchen spotlights" state_topic: "shellies/shellyswitch25-740B37/relay/1" command_topic: "shellies/shellyswitch25-740B37/relay/1/command" qos: 2 payload_on: "on" payload_off: "off" - platform: mqtt name: "Kitchen island strip" state_topic: "shellies/shellyswitch25-5DBAD1/relay/0" command_topic: "shellies/shellyswitch25-5DBAD1/relay/0/command" qos: 2 payload_on: "on" payload_off: "off"
Like this I can add all switches to a group, and use homeassistant.turn_off on the group and all entities respond consistently straight away, whereas with the autodiscovery script entities i had to add a delay between the switching off entities in in the same 2.5. All good for me with manual config, just thought you’d want to know.
Cheers.
Script requires HA 0.93. You have to update HA or use version 0.8.1 of the script.
I had this issue when I updated Mosquitto to 1.6.x and I don’t know what is the reason of the issue. With Mosquitto 1.5.x there is no issue.
I don’t use qos: 2
in script. If you want I can send you test version of the script with qos
.
Hey,
Very interesting mosquitto upgrade broke this, something with the ~ syntax? Maybe remove availability topic altogether as seems to work without? Happy to test if you want to send me something.
Cheers.
Qos no problem, I was customising it already to 2, but thanks anyway - don’t think it’s pertinent to main problem. Must admit after reverting to manual config am just relieved the unit wasn’t supremely fuckwitted in being unavailable at hardware level!