Coder Social home page Coder Social logo

Comments (9)

ciotlosm avatar ciotlosm commented on July 25, 2024 1

That beats the purpose of auto-discovery of entities, and you can't reuse that entity in multiple automations, you would have to reuse the topic manually

from architecture.

MartinHjelmare avatar MartinHjelmare commented on July 25, 2024

We usually implement buttons that are stateless as events and not entities. That solves the problem I think. Events can have whatever event data that is needed, ie button press characteristics.

from architecture.

cgarwood avatar cgarwood commented on July 25, 2024

The only problem with events is then you can’t trll how long a button is held down. I’m using a Lutron Caseta custom component that uses sensors for the pico remotes and if I press and hold a button the sensor stays active until I release it, so I could theoretically do something different for a long press. The actual remotes themselves don’t report special long press events, just key down and key up events

from architecture.

ciotlosm avatar ciotlosm commented on July 25, 2024

@MartinHjelmare does it matter if a button has support for state or not? Very few button types are going to have a "pressed" state for long (there are a few red emergency buttons that stay locked once pressed).

Also how would "events" be implemented in an "auto-discovery" component like mqtt?

@cgarwood as long as you receive both events, you can get around it with automations and timers but that would again be workarounds for something that is basic to some buttons.

If we would have a new type of entity based on a sensor that has knowledge of key up/ key down and always publishes events for automation, would make life easier for a lot of things.

from architecture.

balloob avatar balloob commented on July 25, 2024

I think for Z-Wave, the button itself will recognize if it's pressed once, twice or 3 times and notify us of that and we translate that to an event. From a signal sending perspective, that also makes the most sense.

from architecture.

ciotlosm avatar ciotlosm commented on July 25, 2024

Thank I guess this is more an MQTT binary_sensor problem because we don't have events triggered on messages?

from architecture.

balloob avatar balloob commented on July 25, 2024

You can have an automation listen to messages on an MQTT topic, that would solve that?

from architecture.

balloob avatar balloob commented on July 25, 2024

You can write an automation that

  • listens to a wildcard topic on MQTT
  • fires an event with that message

That will work like auto-discovery and you can build automations on top of that event. Also, you can just listen multiple times to the same wildcard topic in automations.

from architecture.

MartinHjelmare avatar MartinHjelmare commented on July 25, 2024

I think we should close this.

  • Stateless buttons should be implemented as events.
  • MQTT now writes the state change immediately to the state machine, so has less risk of loosing quick state changes.
  • Integrations that use MQTT as transport should implement new components, that depend on the mqtt component, that support buttons as events. The new components can handle discovery as they need.
  • We don't need to support auto discovery of every type of device in the general mqtt component.

from architecture.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.