Whodunnit - Discover how, when, where and who triggered your devices

Whodunnit lets you know what actually triggered your devices. It creates a sensor that will tell you whether the device was changed by an automation, a script, a scene, the dashboard, or a physical switch, as well as the user who did it.

Handy for quick debugging using the Sensor’s attributes:

It also can be used in automations for overriding actions based on the source of the trigger:

automation:
  - alias: "Smart Off"
    trigger:
      - platform: state
        entity_id: binary_sensor.motion
        to: "off"
    condition:
      - condition: not
        conditions:
          - condition: state
            entity_id: sensor.office_light_trigger_source
            state: "manual"
    action:
      - service: light.turn_off
        target:
          entity_id: light.office_light

Viewing the sensor via a Dashboard card:

5 Likes

Nice work, sir. This will come in handy immediately.

I have a stupid number of automations - organized chaos, I promise - and I feel like my wife and kids just screw with me these days. Just tonight my youngest told me her colour-changing bulb didn’t do the right-before-bed-time-to-get-ready disco thing. And that’s because the button she presses to activate had it’s automation turned off. Which I bet was done by my oldest since they can reach the hallway dashboard and my youngest can’t. Happens frequently and pinpointing which device/source/when is sometimes annoying.

Today I’ve released version 1.2 of Whodunnit and it’s packed full of new features and improvements. Big thanks to the HA community for your support.

  • New Event: whodunnit_trigger_detected. It is fired on the HA event bus after every classification. Solves the repeated-state trigger problem (e.g. same script runs twice, light toggled on then off) where the sensor’s native_value doesn’t change and a standard state trigger would not fire. Payload carries all classification fields.
  • When a Script is called by an Automation, Whodunnit can now identify the true source
  • Added support for more domains : climate, water_heater, valve, number, select, button, input_button, input_number, input_select, input_text, alarm_control_panel, timer
  • Added attribute changes as a trigger source (such as when a light is dimmed)
  • Added support for ESPHome devices
  • Added support for multiple entities on a single device
  • Added service status for API events such as Node-RED
  • Added a history log
  • Improved accuracy
  • Added confidence attribute High/Medium/Low
  • Improved memory usage, speed, and stability
  • Improved documentation
  • and much more…

HArvest v1.3.1 has been released (full release notes)

Nothing groundbreaking in this release, mostly minor fixes, plus a privacy enhancement. It got a new icon though!

Version 1.3.0, which I didn't announce here, had a significant architecture revamp and increased detection accuracy.

1 Like

Has this been deleted?

Unfortunately yes, the author got some very negative feedback on social media (Reddit) about their HA work, and has chosen to pull all their integrations offline from the public on GitHub. I believe someone else was planning to get copies before they went offline; I’m not sure if anyone has taken over maintenance of the forked project.

I’ve been meaning to do search on GitHub, because I also was interested in Whodunnit.

That’s unfortunate, I was relying on this to help me with some other automations.

Now I have to explain to my partner why the lights are behaving differently :sweat_smile:

Indeed, very unfortunate.

My automations critically depend on Whodunnit, as it is the only reliable solution I have found so far to figure out whether a change in state is due to having pushed a button on an NSPanel Easy or due to something else.

There is a forked version of Whodunnit 1.0.0 on GitHub, and I have a local copy of Whodunnit 1.3.2 in case that would be helpful.

@tim.plas Could you please point to the relevant thread on Reddit? I am curious to see what actually happened.

@jditte - I’m afraid I don’t have a link to the Reddit thread. It was mentioned by the author when they posted here about the situation, before they left. And I don’t seem to be having much luck in locating that thread here.

In that thread, the author had said they’d be leaving this forum and GitHub, and said they’d give us a day or two to access the code before it went away. Someone volunteered to get a copy and keep it available; that appears to be at sfox38-archive · GitHub

Would be nice if we could find someone to take ownership of that repo. (Unfortunately, I’m not qualified.)

Thanks for the archive, I’ve forked it, updated the docs and published a new release so I can reintegrate it with HACS

I’m not a python dev, nor do I fully understand how this project works so consider this a stop gap until we find someone knowledgeable to take over. Failing that I can use Claude.

1 Like

I currently have the original version of Whodunnit installed via HACS. Is there an easy way to replace it with your version without losing any of the configurations, e.g., is it possible to simply replace the original repository URL with the one of your repository (if so, how)?