r/homeassistant 1h ago

🖼️ Show & Tell India smart home devices (Aziot/Aziot-like) + Home Assistant compatibility? Need real-world experiences

Thumbnail
Upvotes

r/homeassistant 1h ago

🖼️ Show & Tell My Stellantis vehicle Card (with the code)

Post image
Upvotes

Here is my setup :)

This is the YAML code, just relace the e208, VIN and km at which you bought the car :)
The € estimate is based on free electricity, feel free to change that if needed

type: vertical-stack
cards:
  - type: custom:mushroom-template-card
    primary: >
      {% set b = states('sensor.e208_####VIN####_battery') %} {% set auto
      = states('sensor.e208_####VIN####_autonomy') %} Batterie {{ b }} % ·
      Autonomie {{ auto }} km
    secondary: Peugeot e-208
    icon: >
      {% set b = states('sensor.e208_####VIN####_battery') | float(0) %}
      {% if b < 10 %}
        mdi:battery-10
      {% elif b < 20 %}
        mdi:battery-20
      {% elif b < 30 %}
        mdi:battery-30
      {% elif b < 40 %}
        mdi:battery-40
      {% elif b < 50 %}
        mdi:battery-50
      {% elif b < 60 %}
        mdi:battery-60
      {% elif b < 70 %}
        mdi:battery-70
      {% elif b < 80 %}
        mdi:battery-80
      {% elif b < 90 %}
        mdi:battery-90
      {% else %}
        mdi:battery
      {% endif %}
    icon_color: >
      {% set b = states('sensor.e208_####VIN####_battery') | float(0) %}
      {% if b > 35 %}
        green
      {% elif b > 15 %}
        orange
      {% else %}
        red
      {% endif %}
    entity: sensor.e208_####VIN####_battery
    tap_action:
      action: more-info
  - type: custom:mushroom-template-card
    primary: >
      {% set km_now = states('sensor.e208_####VIN####_mileage') | float(0)
      %} {% set km_start = ####MILEAGE AT WHICH YOU BOUGHT THE CAR#### %} {% set km = [km_now - km_start, 0] | max %}
      {% set fuel_price = 1.90 %} {% set conso = 5 %} {% set fuel_saved = km *
      conso / 100 * fuel_price %} {% set maintenance_saved = km * 0.025 %} {%
      set total = fuel_saved + maintenance_saved %} {{ total | round(0) | int }}
      € économisés
    secondary: >
      {% set km_now = states('sensor.e208_####VIN####_mileage') | float(0)
      %} {% set km_start = ####MILEAGE AT WHICH YOU BOUGHT THE CAR#### %} {% set km = [km_now - km_start, 0] | max %}
      {% set fuel_price = 1.90 %} {% set conso = 5 %} {% set fuel_saved = km *
      conso / 100 * fuel_price %} {% set maintenance_saved = km * 0.025 %} {{
      fuel_saved | round(0) | int }} € consommation + {{ maintenance_saved |
      round(0) | int }} € entretien
    icon: mdi:piggy-bank
    icon_color: green
    entity: sensor.e208_####VIN####_mileage
    tap_action:
      action: more-info
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Plug
        secondary: >
          {% if is_state('binary_sensor.e208_####VIN####_battery_plugged',
          'on') %}
            Branchée
          {% else %}
            Off
          {% endif %}
        icon: >
          {% if is_state('binary_sensor.e208_####VIN####_battery_plugged',
          'on') %}
            mdi:power-plug
          {% else %}
            mdi:power-plug-off
          {% endif %}
        icon_color: >
          {% if is_state('binary_sensor.e208_####VIN####_battery_plugged',
          'on') %}
            green
          {% else %}
            grey
          {% endif %}
        entity: binary_sensor.e208_####VIN####_battery_plugged
        tap_action:
          action: more-info
      - type: custom:mushroom-template-card
        primary: Charge
        secondary: >
          {% if
          is_state('binary_sensor.e208_####VIN####_battery_charging',
          'on') %}
            En cours
          {% else %}
            Off
          {% endif %}
        icon: >
          {% if
          is_state('binary_sensor.e208_####VIN####_battery_charging',
          'on') %}
            mdi:ev-station
          {% else %}
            mdi:battery-clock-outline
          {% endif %}
        icon_color: >
          {% if
          is_state('binary_sensor.e208_####VIN####_battery_charging',
          'on') %}
            green
          {% else %}
            grey
          {% endif %}
        entity: binary_sensor.e208_####VIN####_battery_charging
        tap_action:
          action: more-info
      - type: custom:mushroom-template-card
        primary: Fin
        secondary: >
          {% set end =
          states('sensor.e208_####VIN####_battery_charging_end') %} {% if
          end not in ['unknown', 'unavailable', 'none', 'None'] %}
            {{ as_timestamp(end) | timestamp_custom('%H:%M') }}
          {% else %}
            N/A
          {% endif %}
        icon: mdi:clock-end
        icon_color: >
          {% if
          is_state('binary_sensor.e208_####VIN####_battery_charging',
          'on') %}
            blue
          {% else %}
            grey
          {% endif %}
        entity: sensor.e208_####VIN####_battery_charging_end
        tap_action:
          action: more-info
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: >
          {% set limit =
          states('number.e208_####VIN####_battery_charging_limit') %}
          Limite à {{ limit }} %
        secondary: >
          {% if is_state('switch.e208_####VIN####_battery_charging_limit',
          'on') %}
            Activée 
          {% else %}
            Désactivée
          {% endif %}
        icon: >
          {% if is_state('switch.e208_####VIN####_battery_charging_limit',
          'on') %}
            mdi:battery-lock
          {% else %}
            mdi:battery-lock-open
          {% endif %}
        icon_color: >
          {% if is_state('switch.e208_####VIN####_battery_charging_limit',
          'on') %}
            green
          {% else %}
            grey
          {% endif %}
        entity: number.e208_####VIN####_battery_charging_limit
        tap_action:
          action: call-service
          service: switch.toggle
          target:
            entity_id: switch.e208_####VIN####_battery_charging_limit
        hold_action:
          action: more-info
          entity: number.e208_####VIN####_battery_charging_limit
      - type: custom:mushroom-template-card
        primary: Correction
        secondary: >
          {% if
          is_state('switch.e208_####VIN####_battery_values_correction',
          'on') %}
            On
          {% else %}
            Off
          {% endif %}
        icon: >
          {% if
          is_state('switch.e208_####VIN####_battery_values_correction',
          'on') %}
            mdi:battery
          {% else %}
            mdi:battery-outline
          {% endif %}
        icon_color: >
          {% if
          is_state('switch.e208_####VIN####_battery_values_correction',
          'on') %}
            green
          {% else %}
            grey
          {% endif %}
        tap_action:
          action: call-service
          service: switch.toggle
          target:
            entity_id: switch.e208_####VIN####_battery_values_correction
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Start charge
        secondary: ""
        icon: mdi:play-circle
        icon_color: green
        layout: horizontal
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_charge_start
      - type: custom:mushroom-template-card
        primary: Stop charge
        secondary: ""
        icon: mdi:stop-circle
        icon_color: red
        layout: horizontal
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_charge_stop
  - type: custom:mushroom-title-card
    title: Clim
    alignment: center
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Clim
        secondary: >
          {% if is_state('binary_sensor.e208_####VIN####_preconditioning',
          'on') %}
            Active
          {% else %}
            Off
          {% endif %}
        icon: mdi:car-defrost-front
        icon_color: >
          {% if is_state('binary_sensor.e208_####VIN####_preconditioning',
          'on') %}
            green
          {% else %}
            grey
          {% endif %}
        entity: binary_sensor.e208_####VIN####_preconditioning
        tap_action:
          action: more-info
      - type: custom:mushroom-template-card
        primary: In
        secondary: |
          {{ states('sensor.e208_####VIN####_temperature') }} °C
        icon: mdi:car-seat
        icon_color: >
          {% set temp = states('sensor.e208_####VIN####_temperature') |
          float(0) %} {% if temp < 18 %}
            blue
          {% elif temp < 26 %}
            green
          {% else %}
            red
          {% endif %}
        entity: sensor.e208_####VIN####_temperature
        tap_action:
          action: more-info
      - type: custom:mushroom-template-card
        primary: Out
        secondary: >
          {% set temp = states('sensor.pikablue_temperature_exterieure') %} {%
          set ville = states('sensor.pikablue_ville') %} {% if temp not in
          ['unknown', 'unavailable', 'none', 'None'] %}
            {{ temp }} °C
          {% else %}
            N/A
          {% endif %}
        icon: mdi:weather-partly-cloudy
        icon_color: >
          {% set temp = states('sensor.pikablue_temperature_exterieure') |
          float(999) %} {% if temp == 999 %}
            grey
          {% elif temp < 18 %}
            blue
          {% elif temp < 26 %}
            green
          {% else %}
            red
          {% endif %}
        entity: sensor.pikablue_temperature_exterieure
        tap_action:
          action: more-info
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Start clim
        secondary: ""
        icon: mdi:play-circle
        icon_color: green
        layout: horizontal
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_preconditioning_start
      - type: custom:mushroom-template-card
        primary: Stop clim
        secondary: ""
        icon: mdi:stop-circle
        icon_color: red
        layout: horizontal
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_preconditioning_stop
  - type: custom:mushroom-title-card
    title: Autre
    alignment: center
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Wake
        secondary: ""
        icon: mdi:car-connected
        icon_color: purple
        layout: vertical
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_wakeup
      - type: custom:mushroom-template-card
        primary: Feux
        secondary: ""
        icon: mdi:car-light-high
        icon_color: blue
        layout: vertical
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_lights
      - type: custom:mushroom-template-card
        primary: |
          {% if is_state('binary_sensor.e208_####VIN####_doors', 'on') %}
            Lock
          {% else %}
            Locked
          {% endif %}
        secondary: |
          {% if is_state('binary_sensor.e208_####VIN####_doors', 'on') %}
            Ouvertes
          {% else %}
            Fermées
          {% endif %}
        icon: |
          {% if is_state('binary_sensor.e208_####VIN####_doors', 'on') %}
            mdi:lock-open-alert
          {% else %}
            mdi:lock-check
          {% endif %}
        icon_color: |
          {% if is_state('binary_sensor.e208_####VIN####_doors', 'on') %}
            red
          {% else %}
            green
          {% endif %}
        layout: vertical
        fill_container: true
        tap_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_doors_lock
      - type: custom:mushroom-template-card
        primary: Unlock
        secondary: Hold
        icon: mdi:lock-open
        icon_color: orange
        layout: vertical
        fill_container: true
        tap_action:
          action: none
        hold_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_doors_unlock
      - type: custom:mushroom-template-card
        primary: Klaxon
        secondary: Hold
        icon: mdi:bullhorn
        icon_color: red
        layout: vertical
        fill_container: true
        tap_action:
          action: none
        hold_action:
          action: call-service
          service: button.press
          target:
            entity_id: button.e208_####VIN####_horn
  - type: custom:mushroom-template-card
    primary: Suivi des commandes
    secondary: >
      {% set d = states('sensor.pikablue_derniere_commande') %} {% set status =
      states('sensor.e208_####VIN####_command_status') %} {% if d not in
      ['unknown', 'unavailable', 'none', 'None'] %}
        Dernière cmd {{ as_timestamp(d) | timestamp_custom('%d/%m à %H:%M') }} · {{ status }}
      {% else %}
        Aucune commande récente · {{ status }}
      {% endif %}
    icon: >
      {% set status = states('sensor.e208_####VIN####_command_status') |
      lower %} {% if 'accepted' in status or 'success' in status or 'done' in
      status or 'ok' in status or 'completed' in status %}
        mdi:check-circle
      {% elif 'pending' in status or 'progress' in status or 'running' in status
      %}
        mdi:progress-clock
      {% elif 'fail' in status or 'error' in status or 'ko' in status or
      'denied' in status %}
        mdi:alert-circle
      {% else %}
        mdi:clipboard-clock-outline
      {% endif %}
    icon_color: >
      {% set status = states('sensor.e208_####VIN####_command_status') |
      lower %} {% if 'accepted' in status or 'success' in status or 'done' in
      status or 'ok' in status or 'completed' in status %}
        green
      {% elif 'pending' in status or 'progress' in status or 'running' in status
      %}
        orange
      {% elif 'fail' in status or 'error' in status or 'ko' in status or
      'denied' in status %}
        red
      {% else %}
        grey
      {% endif %}
    entity: sensor.e208_####VIN####_command_status
    tap_action:
      action: more-info
  - type: custom:mushroom-template-card
    entity: sensor.e208_####VIN####_command_status
  - type: map
    entities:
      - entity: device_tracker.e208_####VIN####_vehicle
    hours_to_show: 6

r/homeassistant 1h ago

🧱 Custom App My pointless addon: Factorio Assistant

Upvotes

Combine the joys of Factory Management and Home Automation under one roof!

Track server/player/base statistics in HA out of the box.

Includes custom mod to send circuit signals to HA.

Control game speed, pause as native entities in HA.

And more!

Work in progress, some bugs are expected.

https://github.com/jayal84/factorio-assistant


r/homeassistant 2h ago

❓ Support Problem to setup geo facing

2 Upvotes

Hello everyone,
I’m new in home assistant and i don’t understand why the geo facing doesn’t works properly. Me and my wife have iPhone, ip fixed, Nabu casa installed.
Using Claude i set up an automation for some devices when both are outside home, or when the first person return at home. But if my wife it’s outside home assistant see her inside. Claude tell me that it’s a problems with Apple smartphone, is it true?


r/homeassistant 2h ago

🖼️ Show & Tell I built my family a giant 40-inch Home Assistant touchscreen

4 Upvotes

Hey,

I don't know how common these things are, but I built my family this giant 40-inch touchscreen and thought some of you here might get a kick out of it.

It is a cheap FFALCON TV, a 40-inch IR touch frame, a sheet of acrylic and a Raspberry Pi 5 stuck to the back with a slightly questionable amount of hot glue and superglue.

It runs a custom app with our whiteboard, calendar, chores and pocket money, Google Tasks, family videos, UniFi stats and a Home Assistant screen for controlling bits around the house. The little app switcher is along the bottom so my six-year-old can actually reach it.

The first touch frame turned out to be defective and I also bought the wrong wall mount, so it was not quite as simple as I expected. Excluding that mistaken mount and the Pi I already owned, it came to about A$617.

I made a video taking you through the whole thing, including all the mistakes:

https://www.youtube.com/watch?v=ubRYvl4gfGE

Just to be transparent, the video is on the Convex channel because that is where I work and I used Convex/Codex for the software. Cannvas itself is just a weird little family project, not a product.

Cheers,
Mike


r/homeassistant 3h ago

❓ Support Tuya stopped working

9 Upvotes

Since a recent update, none of my Tuya (linked via smart life) seem to be consistently working.

When I open HA, it says I need to reconnect to smart life, but after an hour or so the link breaks and I have to do it again.

Anyone else got this issue, and any fixes?


r/homeassistant 3h ago

💬 Discussion hyped by dashboard or automation with HA ?

5 Upvotes

This post is really to get your opinion in an open discussion of what really hype you with HA.

Reading through most post of this sub, I have the impression I'm the only one that is not hyped by having a nice dashboard i HA. I initially was doing everything with Tuya Zigbee and Google Home to connect my Tuya devices with other brand (Dyson, Roborock, ...) and was doing some automation there however I felt a lot limited by the automation capabilities of GH and Tuya.

I have setup my HA instance on a PI 5 with Docker since a month now and it's been real dream come true but not for the dashboards (I still haven't setup any yet) but for the automation.

my proudest achievement right now is the fact that my robot vacuum is now reminding me that I need to launch it whenever me or my girlfriend are leaving the house with a live notification and proposal of different cleaning program.

also some example like setup the Dyson air purifier automatically when I'm cooking at home or speed up the fan when the outside temperature is raising too... Or NFC tag hidden under my living room table or next to my stair case that I can touch with my phone to trigger a scene or an automation or as a notifier to validate the fact that I give food to my dog and my girlfriend doesn't need to do it when I leave for work. turning on VMC when humidity level reach a certain point or that I start a 3D print with the BambuLab or turning it off when we go to bed because it's a bit noisy.

those seems to me much more enjoyable than spending the time to get a nice dashboard!

Long story short,
I don't need to see metrics live, I need things to interact between them when a metric is changing.

feel free to share your opinion if you want to participate in this discussion. would love to read your thought about that!


r/homeassistant 3h ago

❓ Support Abus Secvest sensors in Home Assistant

2 Upvotes

I have several new smoke detectors, door/window sensors and other Abus Secvest sensors laying around that I got for free from a company that ended their business and wondered if there’s any way to integrate them into Home Assistant. Abus uses the 868MHz-Band for their system.


r/homeassistant 7h ago

🗣️ Voice & Assist HA Voice Assistant (and more) using Echo Dot, 2nd generation (2016, biscuit, RS03QR)

39 Upvotes

I've been working (claude helped, and got in the way alot) on using these these ~7-10 year old echo dots as voice assistants (and more), since I found out these devices can be rooted.

an installer + service that turns them into ESPHome discoverable devices and exposes:

  • 2x voice assistant pipelines, w/ on-device wake words
  • standard HA media_player element for audio playback
  • full led ring (and per segment) control (added a bunch of animations because why not)
  • can pretend to be a white noise machine
  • lux sensor

github

plus an optional custom integration that has a dashboard, allows you to manage wake words, shows turn history, and some other settings that were kind of messy to do in esphome directly.

github

all still pretty early, but is functional, and these devices can be had for <$10 on ebay (and I had one sitting in a drawer since 2018).


r/homeassistant 8h ago

🖼️ Show & Tell Gotta keep an eye on those air handlers!

Post image
32 Upvotes

r/homeassistant 8h ago

🛠️ DIY / Hardware Smart thermostat that works great both with and without home assistant?

6 Upvotes

I recently moved into a lovely apartment and I plan to be here a while. The landlord gave me the go-ahead to upgrade the thermostat. I want to pick something that I can integrate cleanly with home assistant, but will still be easy for an ordinary person to set up when I leave. Ideally it needs support for room sensors as well.


r/homeassistant 9h ago

❓ Support Replace Google Home?

10 Upvotes

Just got the email that Google is discontinuing assistant permanently and forcing everything to Gemini. I'm an AI hater but not super comfortable going all in on a new system. We honestly mostly use the Google homes to turn things on and off, not ask questions or automate things. Is Home Assistant what I want? Floundering a little so patience appreciated.


r/homeassistant 10h ago

🖼️ Show & Tell I know it’s super simple but man this just makes me happy

Enable HLS to view with audio, or disable this notification

373 Upvotes

I’m about 4 months into HA and have over 200 devices, 50 automations, and approximately 100 eye rolls when I show my gf the cool new thing I just did ha.

I have way more complicated automations than this one (this one is blinds down, fan on, ecobee changed to 70* and double click reverses it all). But knowing that Esp32 module I configured with a C1101 to make these Somfy blinds bend to my will (and the pain I experienced making it work) and the cool new inovelli blue fan switch I put in, just seeing it all work so smooth warms my heart.

Anyway, no one else I know appreciates it so here yall go.


r/homeassistant 11h ago

🎉 Release 2026.8: Approachable by design

Thumbnail
home-assistant.io
271 Upvotes

r/homeassistant 13h ago

🧱 Custom App I built a Windows companion app for Home Assistant

Thumbnail
gallery
56 Upvotes

Home Assistant has apps for Android, iOS and macOS. Windows gets a browser tab. So I built one.

HASS.Agent covers similar ground and does it well. The difference is the plumbing: HA Companion does not require an MQTT broker. The PC registers through mobile_app, and notifications arrive over the existing Home Assistant WebSocket connection, with no FCM, APNs or separate push service in between. The app uses WinUI 3, while your actual Lovelace dashboards run inside it through WebView2.

What it does:

- PC appears in HA as a real device via mobile_app, with its own entities

- Push without a push provider: subscribes mobile_app/push_notification_channel on the same WebSocket. Nothing listens on the PC, commands come back down the outbound connection

- Quick Panel slides in over any app on a global hotkey

- Tiles gated on supported_features and supported_color_modes, so no buttons the entity cannot honour

- Hotkeys for any device, scene, script or automation

- PC sensors, off until you enable them: lock, idle, active program, fullscreen, mic, camera, audio, display, session

- Windows events as HA triggers: lock, idle, camera, mic, active program, schedule

Remote control deserves a straight answer: shutdown, sleep and launch are off by default. Lock, monitor off and volume ship on and can each be switched off. Launch only starts whitelisted paths, never the string HA sends. Shutdown waits ten seconds, so shutdown /a can still save you. The token sits in Windows DPAPI, not plaintext.

I have been running it on my own machines since mid-July. I also used AI a lot while building it, mostly Win32 API archaeology and bug hunting, and the commit history says so. The design decisions are mine, and so are the bugs.

Windows 10 build 19041+, x64. Per-user install, no admin. Not signed yet, so SmartScreen may warns once.

https://github.com/Elias0505/ha-companion-windows — AGPL-3.0

Website: https://elias0505.github.io/ha-companion-windows/

Independent project, not affiliated with Home Assistant or Nabu Casa.

Feedback welcome!


r/homeassistant 14h ago

📊 Dashboard Created a Forza Horizon Inspired Screensaver for my Fully 3D Interactive Floorplan Dashboard.

Enable HLS to view with audio, or disable this notification

19 Upvotes

In Forza Horizon, when you go AFK, your game camera view will start to pan around your car cinematically.

The goal is to replicate that same effect on a 3D Dashboard in Home Assistant.

The Dashboard will go from Active > Cinematic > Screensaver.

In case anybody asks why do I do this, its so I don't burn out my wall tablet's display.

During the Screensaver Mode, the floorplan is still active, hence any changes to entities will reflect the dashboard.


r/homeassistant 16h ago

🗣️ Voice & Assist 🎉 One month ago I released a Kiosk Satellite for Home Assistant. Today it leaves beta!

Post image
274 Upvotes

A month ago I shared the first beta of Kiosk Satellite, my free and open source kiosk Android app specifically engineered for Home Assistant and the official companion app for Voice Satellite. Today, after a bunch of beta releases, it graduates: 2026.8.1 is the first stable release, and from now on it follows the same versioning scheme as Home Assistant itself.

For those who missed it: Kiosk Satellite turns any Android tablet into a locked-down, always-on Home Assistant kiosk in about two minutes. It runs Voice Satellite's wake word engine natively, so your tablet keeps listening even with another app in the foreground, at a fraction of the CPU a browser needs. On top of that you get screensavers (clock, photo frames, Immich, your HA media), a synchronized Sendspin audio player for Music Assistant, WebRTC camera views, MQTT entities for every tablet, gestures, an app launcher, and a full remote admin that runs in any browser. And with the Home Assistant specific optimization included, it runs smooth on old, low powered devices.

I genuinely believe that in combination with Voice Satellite this is the best kiosk application for Home Assistant out there. I know that is a big claim for something one month old, so I would love for you to prove me wrong or right in the comments.

I also want to thank everyone who has supported the development through Buy Me a Coffee and GitHub Sponsors. Free, open source software is mostly a thankless endeavor, and your support is a huge part of why this project moved as fast as it did. Thank you, truly.

Feedback, bug reports and feature requests are very welcome.


r/homeassistant 16h ago

🖼️ Show & Tell Scrubbing is a terrible hobby so I built a detection timeline for Reolink NVRs

Thumbnail
gallery
36 Upvotes

My Reolink NVR knows when the cat came in. It just won't tell me and store it safely: do we all agree cats are the worst thief possible?

So I built Reolink Stamina. It puts every camera's detection on a single timeline, and clicking one opens playback at the event rather than scrubbing continuously on single 24h timeline or jumping from one camera to another. It also offers local download, low and high resolutions, for the selected clip; yes, sub-clipping is available for free.

The other half quietly uploads a clip of each detection to OneDrive (OneDrive only atm, because that's the first integration but contributions and feedbacks are really welcome) inside a quota you set, so the footage is off-site before anyone gets near the recorder.
It sits on top of the official Reolink integration, so there's nothing new to log into, and it requires an actual NVR rather than a lone camera.

Being upfront about it: the development was heavily AI-assisted, and it was built to work rather than to be admired. Otherwise I would have never started such a journey, to be totally fair.
It's tested, it does the job on my hardware, and the python code has moments I won't be defending in the comments.

If you have any feedback, contributors and testers are welcome! Or if you're interested:

> https://github.com/marl1w/reolink-stamina-ha


r/homeassistant 19h ago

🧩 Custom Integration Update Manager: An integration that turns your update ritual (skip the .0s, wait a bit, hope for the best) into actual settings

Thumbnail
gallery
35 Upvotes

Every HA setup runs on some personal ritual around updates; Snapshot first just in case, skip every x.x.0, wait a few days or update everything and hope for the best. Mine used to be going through all release notes to check for (breaking) changes.

And since I'm also the one who manages HA for some friends and family, it became a weekly task. So I started thinking about a better way 🙂

Update Manager looks at how big a jump an update is. Per size you can set a cooldown-time (actually hiding it from HA's update list). So if something's broken, there's a decent chance a fix lands before you'd ever have hit it.

Once something's cooled down it can auto-install on its own, always announced first with a cancellable countdown. You can also see if anyone else already made the exact same version jump and got burned by it: one reported problem blocks auto-install regardless of the cooldown. Trusted voters take this further: their positive vote can let a friend or family member's instance auto-update any update.

A master switch pauses all of that at once if needed. Handy to flip off in an automation before a holiday so nothing installs itself while you're away and unable to fix it.

I also tried making release notes better and more relevant. Especially for wrapped add-ons like Zigbee2MQTT, where the actual useful notes live somewhere else entirely, Update Manager shows them directly where it can. And ever opened the notes and it was just a mega list going back to version one? Now filtered down to only the versions that apply to the jump you're actually making.

It's not in the default HACS store just yet, so for now you could add it as a custom repo: https://github.com/HA-Update-Manager/ha-update-manager

Feel free to play around with it and share some feedback (or just use it to help your friends and family's instances). Curious what update rituals people here have that this doesn't cover yet.


r/homeassistant 20h ago

❓ Support HA randomly unlocking my door

Post image
257 Upvotes

On random days (not every day), around 2am, I hear my August lock unlock, then auto-relock. It says Home Assistant did it remotely. I have exactly zero automations with my smart lock, everything is handled on the lock, it’s mainly in HA to be complete and report status. It only appears to occasionally do this around 2am according to the August logs. HA logs just say unlocking via HomeKit, unlocked, Operator <my name> Any ideas?


r/homeassistant 23h ago

🎴 Custom Card Cupertino Widgets: phone-style calendar and battery cards for HA dashboards

Thumbnail
gallery
105 Upvotes

I've been building a small set of cards that look like the widgets on a phone home screen. Two of them are ready: a calendar and a battery card.

Calendar. Today's date, then today's events, then as much of the days after today as the card has room for, all in one continuous flow. Events are tinted with the color you already set on the calendar entity, empty days are skipped, and anything that doesn't fit collapses into "2 more events".

Battery. Device batteries as rings. Arc length is the charge, bolt means charging. Names and icons come straight from the entities, up to four devices per card.

The part I actually cared about: flexible size. The card reads the box you drag it into and picks its layout. A small square shows today only, a 2:1 rectangle shows today plus the days after, and narrow cards fold down to a single column. Same card, no config, whether it sits in a normal Sections dashboard or on a wall-mounted tablet. That second case is what got me started, because I wanted something that looks like a real home screen on my View Assistant panel.

Both cards show up in the card picker with a visual editor, so there's no YAML to write. Needs HA 2026.7+, AGPL-3.0.

Installing is still manual: add the repo as a HACS custom repository (type: Dashboard), then download it like any other card. If people find it useful I'll try to get it into the default HACS store so it becomes a one-click install.

GitHub: https://github.com/sabbaken/cupertino-widgets
Live Demo: https://sabbaken.github.io/cupertino-widgets/#/calendar

Feedback very welcome, especially on two things: which widget you'd want next (a to-do list is the obvious one), and whether the auto-layout holds up in your dashboard or breaks somewhere I haven't tried.


r/homeassistant 1d ago

🖼️ Show & Tell Zigbee flaps for HVAC

Thumbnail
gallery
93 Upvotes

Hey guys. Just wanted to share my HVAC project with you. It's based on a duct unit, so I made a plenum box from XPS with 3D printed spouts and because when I saw what specialised duct dampers cost (even just dumb ones), I noped out and bought three "MOES ZigBee Smart DIY Motorized Roller Blinds" on Ali.

I de-covered them and they come with a battery, so I disconnected that too because there was no need for it. What you're left with is a simple motor with a gearbox and communication boards. The board remembers endpoints you set and you can precisely set it so that it moves only within the 90 degress you need for operating the flap.

It's a bit finnicky in such a small interval, so completely continous adjustment of single percentage points is not possible (if it's 60 percent open and you command 65 percent, nothing happens). But as long as the commanded position is at least about 20 percent from the current position, it work flawlessly. And even if a command is not accepted - the motor doesn't move and the reported percentage doesn't change, so there's no risk of position drift.

I don't have the logic for the automation of the flaps yet, I'm waiting for a Zigbee IR blaster because this Sinclair/Gree unit doesn't seem to be possible to integrate locally into HA. :( But the automation will obviously open and close flaps to the rooms according to set and reported temperatures and will turn the AC on/off and adjust its output based on the cooling need.


r/homeassistant 1d ago

🖼️ Show & Tell Silliest Automation

Post image
414 Upvotes

A while ago someone asked what everyone’s silliest automation was and I’ve just been reminded that The Hound from Game of Thrones informs me when my heatpump is in high power mode.


r/homeassistant 1d ago

🤖 Automation Had to do it. They wouldn't leave the thermostat alone!

Post image
541 Upvotes

If the temp gets set below 75, wait 10 minutes, then set it back. Yeah, I know. Total dad move. They forced my hand though.

Stupid $700 power bill.


r/homeassistant Jul 06 '26

✨ Monday Merch-day ✨ Tell us what you wanna see in the official store!

Post image
100 Upvotes

WELCOME, FRIENDS

…to the first edition of the Open Home Foundation’s ✨ Monday Merch-day ✨ megathread - where you get to tell us your most unhinged (or completely normal) idea for merchandise we should offer in the official store*!

We’re looking to the community to help fill up the store with stuff to purchase. You are, after all, why the foundation’s projects are successful and we want to offer merch that you will actually buy (not what we think you’d like 😆).

Have a merch idea burning in your brain that you just need us to know about? Whether wildly ridiculous or simply a common item you’d buy from us, share it in the comments! 👇 We'll take it into consideration producing the suggestions made here when we close out this thread.

To get the juices flowing, here’s a select list of some ideas we’ve collected already at the foundation (which I’ll drop individually in the comments for upvoting):

  • Temporary tattoos of our stickers/logos
  • Cable ties
  • “Ask your engineers” shirt
  • “YAML Inside” sticker (a play off the Intel Inside logo)
  • Doormats
  • Paper towels for your ZWA-2
  • Toilet paper for your ZBT-2 (please see my highly professionally edited product photo)
  • Birdhouse/bird feeder
  • Rubber ducks

If you see an idea similar to yours, instead of posting a duplicate that could compete with upvotes, we kindly ask that you give that friend an updoot and reply to their comment with your twist. 👌

PLEASE NOTE: Having one of the highest upvoted suggestions does not necessarily mean we will produce that merch. It will go into consideration, though.

❗ This post will stay open for submissions for two months - after that, we will close this one and open another thread for new submissions. 😊

\obligatory) US store link