I’m using the Telldus ZNet Lite V2 to receive commands from a few old 433 MHz Nexa remotes. Each remote has (for each “channel” in case of multiple “channel” remotes - remotes that can control more than one switch) two buttons: “On” and “Off”.
If I press “On”, Telldus registers that and the change from “Off” to “On” can be detected in Home Assistant". However, if I then press “On” again, the Telldus box blinks - it registers that the button has been pressed - but there is no state change, since the remote is already “On”.
Is there any way - in Home Assistant - to detect that the “On” button has been pressed, even if the remote’s state is already “On”?
The way I would do it .
create a sensor as well as a switch
but in the sensor add the
expire_after: "1"
then what happen to the sensor it will go blank after 1 sec
then we can create a automation see the sensor go “on” and if the switch is on do something
- id: 'switch no and sensor on'
alias: switch no and sensor on
initial_state: true
trigger:
- entity_id: sensor.whats_name
platform: state
to: 'ON'
condition:
condition: and
conditions:
- condition: state
entity_id: Light.whats_its_name
state: 'on'
action:
- data:
entity_id: switch.turniton
service: switch.toggle
written off top of head mite need a bit of checking
hope this point you down the right track
if you give me the names if what you are trying to do ill help you more
I’m not sure, however, if this will solve the problem (maybe I’m dense).
The Nexa 433 MHz remotes (that are read by Telldus and then picked up by HA through the Telldus API) show up in Home Assistant as switches. A remote has two buttons: “On” and “Off”. Assuming the initial state of the switch (remote) is off, then if I press the “On” button, the state changes to on. If I press the “On” button again, nothing happens. Sure, why would it, the state should still be on, right?
However, if I have two remotes at each end of a long hallway, I would like to be able to press “On” to get the lights on from either remote, even if I previously turned the lights on with Remote 1 (its state is therefore on) and off with Remote 2 (its state is therefore off) after passing through the hallway.
I have, with some success, turned on/off the other remote in the automation that switches the light on/off, to make the other remote follow first (and vice versa). In some instances, notably if trying to control a cover (garage door) with two remotes, I’ve seen problems like the cover stopping halfway - as if the toggling of the other remote has triggered another automation. I wrote about this here.
That’s why it would be cool if each button press could somehow be detected, but I’m guessing that there is a limitation in the Telldus ZNet Lite V2 or in the HA integration, that only state changes are detectable since each remote button is not visible in HA, just the pair of buttons as a switch.
Did you ever resolve this issue?
I have the same problem that the switch stays in the last state and nothing gets registered until i press the opposite (on/off) first.
No, because in the Telldus Live integration, the integration just polls the Telldus Live service to see if the remote (seen as a switch in Home Assistant) is ON or OFF. If you press ON, the switch in HA is ON, and pressing ON again on the remote does not change that, so the button pressing is not detected by HA.
Yes, because @quazzie has solved this by coming up with an ingenious Python plugin that can be installed on the Telldus ZNet Lite v2. The plugin publishes state changes and remote button pushes as MQTT messages. The devices connected to the Telldus ZNet Lite v2 are automagically discovered by Home Assistant through MQTT messages published by the Telldus ZNet Lite v2 plugin and I have therefore deleted the Telldus Live integration from HA and I now rely on the MQTT messages from the plugin.
The plugin defines (in the MQTT messages) a self-learning remote as a binary_sensor that expires after 1 second (a non-self-learning remote - the type for which you have to set codes manually - is still treated as a switch, so that type will still not work well - this is not a plugin deficiency, it is due to the way such remotes are handled in the Telldus ZNet Lite v2). If you push ON on a self-learning remote, an ON MQTT message is published and the binary_sensor in HA goes ON. After a second the binary_sensor expires (goes unavailable) and is ready for another push on the ON button.
Note that on HA start up (after for example a restart), the binary_sensor does not expire. I have reported this behavior here: https://github.com/home-assistant/home-assistant/issues/28634. After pushing a button on the remote, however, the binary_sensor expires as expected and desired.
Another good thing with the plugin is that response times are drastically reduced. The Telldus Live integration polls the Telldus Live service not more often than every 5 seconds, so the response time may be up to 5 seconds. The MQTT message is published immediately, so in effect the plugin provides pushing of events rather than polling.
Just a small follow up question, will I still receive firmware updates from Telldus and will those have “local plugins” enabled?
Or will I have to update the firmware somehow manually?
Or will firmware updates break “local plugins” and I will have to contact Telldus support again?
If you run Hass.io, installing an MQTT broker is easy as there is an add-on that can be installed. If not, I have earlier had success with installing Mosquitto (https://mosquitto.org/) on a Raspberry Pi.
I do not know what firmware updates from Telldus do to the installed local plugins as there have not been any since I installed the plugin. However, I would be surprised if the firmware update broke everything and you had to set it up all over, since the ability to install plugins seems to be well planned and catered for.
Thanks for your time.
I’m running home assistant in docker on Synology NAS. Did end up installing Mosquitto as docker package as well so now I’m only waiting for the Telldus support to enable local plugins