The other day, @tifriis@sh.itjust.works posted an awesome article about Zigbee network performance and it brought attention to something I was unaware of, which is that my devices aren’t supposed to shout all day, everyday about doing mostly nothing. I immediately followed the advice in the article and tried to debounce everything. But then everything stopped working like it should 😂 Can the community pool your collective knowledge and walk me through debouncing so I can not get MQTT spam but still have all my motion, presence and temperature sensors work please?

  • CondorWonder@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 months ago

    First thing - exclude recording of the devices. My method was to use a glob so I name devices/entity IDs specifically and they don’t get recorded (in my case I used f_ as in “filtered” so devices become like “F Source Presence”), but you can add specific entities or use your own glob. In configuration.yaml I have this:

    recorder:
      exclude:
        entities:
          - sensor.excluded_entity_1
        # AND/OR this (then of course rename entities as needed)
        entity_globs:
          # exclude all sensor entities that start with f_
          - sensor.f_*
    

    Then I created templates for my presence sensors, that just copy the state so I get history (yaml here, but can do through UI now too in the Helpers section, the import part is the template in the state key below):

    template:
      - binary_sensor:
          - name: Real presence
            unique_id: my_presence
            state: >-
              {{ states('binary_sensor.f_source_presence}}
            availability: >-
              {{
                not (
                  states('binary_sensor.f_source_presence') == 'unknown' or
                  states('binary_sensor.f_source_presence') == 'unavailable'
                )
              }}
            device_class: presence
    

    You could also use a statistics sensor to get a moving average for numeric values and get history from them too (and reduce the noise by reducing the precision and having a larger time window). This is also available through the UI - Helpers.