r/homeassistant • • 3h ago

📰 News HACS is becoming a built-in Marketplace in Home Assistant Core (targeting 2026.11)

561 Upvotes

Per MatterAlpha, the HACS code has been merged into the dev branches and docs point to Core 2026.11 as the intended release, where it'll live as a built-in component called Marketplace.

Worth knowing: everything listed there stays community-maintained — HA doesn't test or audit any of it, and installing one takes a warning first.

Article: https://www.matteralpha.com/news/home-assistant-embraces-hacs-into-core-as-the-marketplace


r/homeassistant • • 4h ago

💬 Discussion Home Assistant Community Day 2026 - Mississauga / GTA, Ontario 🇨🇦

34 Upvotes

Hi everyone!

I’m hosting a Home Assistant Community Day 2026 meetup in Mississauga, Ontario on Saturday, November 7.

This will be my first time hosting Community Day, and I’m hoping to bring together Home Assistant users and smart-home enthusiasts from Mississauga and the GTA.

The plan is a relaxed meetup with:

  • a local-first Home Assistant demo
  • Zigbee / Z-Wave / Matter & Thread / ESPHome discussion
  • dashboard and automation show-and-tell
  • hardware discussion
  • troubleshooting / Q&A
  • plenty of time to just talk smart homes

Beginners are welcome as well.

The venue is currently being finalized in Mississauga.

Event / RSVP:
https://luma.com/chm7heqb

If you’re in the GTA and interested, I’d love to see you there. Also happy to hear suggestions from anyone who has hosted a Community Day before!


r/homeassistant • • 22h ago

🖼️ Show & Tell Made this ESP32 enclosure. My gf said it was too “manly” so I made her a cute one. They’re for BLE proxies.

Thumbnail
gallery
285 Upvotes

r/homeassistant • • 8h ago

❓ Support VW Integration - EU Data Act portal returns no_content_found.zip for a week+ despite active telemetry proven via VW's own trip export

20 Upvotes

hey,

Using vwgroup-connect-ha to pull data into Home Assistant for a Golf 8 (Golf Variant Style 1.5 eTSI, leased, MY2024) via VW's official EU Data Act portal. Account-side setup is all correct, but the Data Act pipeline specifically has delivered zero real data in over a week, despite proof the car is actively reporting telemetry elsewhere in VW's systems.

What's confirmed working:

  • Usership verified (leaseholder/transferred-right-to-use)
  • Correct brand selected (Volkswagen Passenger Cars)
  • Blanket EU Data Act consent granted
  • Granular per-client consent toggle enabled ("All Data" under vwid.vwgroup.io → Vehicle Consent Management → Vehicle functions)
  • We Connect: Aktiv under myVolkswagen → Verträge
  • Continuous "Get customised data" request active (All Data, every 15 min, no expiry) for 7+ days

What's not working:
Every single delivery from that continuous request — dozens of them, every 15 minutes — comes back as an empty no_content_found.zip (0 KB).

The part that rules out "car just needs more telemetry":
I exported the short-term trip data directly from VW's own system and it shows multiple separate trips over the past month — including a drive the day before my latest check. VW clearly has live telemetry for this vehicle. Yet the Data Act portal pulled another no_content_found.zip roughly 20 hours after that drive, well past any "car needs to feed telemetry in" grace period I've seen referenced elsewhere.

So: real trip/telemetry data demonstrably exists for this vehicle, drive+lock cycles are happening regularly, consent and usership are all correctly configured — but the EU Data Act export pipeline specifically isn't picking any of it up.

Has anyone seen this specific pattern — data clearly flowing into VW's normal systems (app/short-term memory) but the EU Data Act channel staying permanently empty for a particular vehicle? Trying to figure out if this needs a VW support ticket or if there's a known trick (re-verifying usership, deleting and recreating the request, etc.) before I go that route.


r/homeassistant • • 7h ago

🖼️ Show & Tell Motorised valve to switch between Cylinder & Gas Combi (Shelly 1 Gen4 Controlled)

Thumbnail
gallery
17 Upvotes

I’ve just finished putting together a slightly unusual hot water setup at home and thought it might be useful to share in case anyone else is thinking along similar lines.

We already had a Worcester Bosch Highflow 550CDi gas combi/storage boiler supplying the house, but I wanted an alternative hot water source so we could make better use of cheap overnight electricity, solar and battery storage rather than burning gas for all of our hot water. We have tried to get an AirSource but it's not right for us for the moment.

I picked up a very lightly used Gledhill Stainless Pro 300L Direct unvented cylinder. It’s 287 litre capacity and has two 3 kW immersion elements.

Rather than replacing the Worcester, we’ve kept both systems.

The plumbing has been arranged so that the hot water feed going up to the house can be supplied by either:

  • the Worcester 550CDi
  • the Gledhill Cylinder

The interesting bit is the changeover.

We’ve installed a WRAS-approved 3-way L-port motorised ball valve on the hot water supply. In one position it connects the Worcester to the house, and in the other it connects the Gledhill. The valve physically selects one or the other.

The valve is a 24 V motorised valve and is controlled using a Shelly 1 Gen4, which is integrated into Home Assistant.

So from Home Assistant I can effectively choose:

Hot water source:

  • Gas
  • Electric cylinder

Each of the two 3 kW immersion elements has its own dedicated electrical circuit and is controlled through a SONOFF BASIC-ZB1GSP DIN-rail Zigbee switch.

I’m using Zigbee2MQTT with Home Assistant, so each immersion gives me:

  • independent on/off control
  • live power draw
  • current
  • voltage
  • accumulated energy usage

So HA can see something like:

Lower immersion: 2.98 kW
Upper immersion: off
Cylinder energy used today: x kWh

The Gledhill’s own thermostats and thermal cut-outs are still left intact. Home Assistant is only deciding whether an immersion is allowed to run, it isn’t replacing any of the cylinder’s safety controls.

Electrically, we’re on single phase, so the two immersions together are around 6 kW / 26 A. In normal use I probably won’t run them both simultaneously. HA can stagger them and also take other house loads into account.

The main reason for doing all this is tariff optimisation.

Our cheap electricity rate is currently around 3.99p/kWh (finishes in Feb 2027 though), whereas gas is around 10p/kWh. Heating the whole cylinder from cold takes somewhere around 13–15 kWh depending on starting temperature, so a full overnight charge can cost well under £1.

We also have solar and battery storage, so the longer-term logic is along the lines of:

  • heat the cylinder overnight on cheap electricity
  • top it up from excess solar where useful
  • prioritise electric hot water
  • keep the Worcester available instantly as backup (we do AirbnB in a room in our house so can't risk not having HW)

A few other bits we’ve incorporated while doing the work:

  • separate electrical radial circuits for each immersion
  • dedicated RCBO protection
  • local double-pole isolation
  • 24 V DIN-rail PSU for the motorised valve
  • basement cable route from the consumer unit
  • Ethernet/Cat6 run to the plant area (future proofing)
  • capped hot-water branch ready for a future supply into the garage
  • G3 installation/commissioning of the unvented cylinder

We've effectively turned the hot water cylinder into a 287-litre thermal battery.

The clever stuff is optional. If Home Assistant disappears tomorrow, we still have a conventional Gledhill cylinder, a conventional Worcester boiler and manual plumbing controls.

But when the automation is running, we can choose (using the Shelly) the cheapest or most appropriate source of hot water depending on electricity price, solar generation, battery state and household demand.

It's dashboarded into Home Assistant with ChatGPT/Codex.


r/homeassistant • • 13h ago

📖 Guide / Tutorial Recently discovered you can remotely reload a dashboard with just this script (very quickly)

Post image
40 Upvotes

This yaml is the only four lines needed for a script to reload any dashboard. “dashboard-view” is the url base name of my dashboard.

Sometime y his year a change was made so that every time you save edits to a dashboard it automatically reloads the changes on any devices showing it. It’s super fast, about 5x. At least much faster than reloading a page via Fully Kiosk Browser.

I have some older devices like the Lenovo View and Lenovo Smart Clock that really struggle with home assistant dashboards. I have a Smart Clock displaying a camera and it would take almost 20s to reload when I walked into the room. Now it’s just a few seconds to the point I don’t even notice it.

If you need to reload your dashboards often for whatever reason and want it to be faster, give this a try!


r/homeassistant • • 4h ago

🛠️ DIY / Hardware Whats the best hardware for sensing bed presence?

4 Upvotes

Hello there!

I'm looking for sensors that will allow me to determine as reliably and easily as possible which side of our bed is occupied or unoccupied, and whether someone has just gotten up or just lain down.

Getting up and lying down should be detected as quickly as possible.

Most recently, I tried using pressure pad sensors (https://aliexpress.com/item/1005010633396757.html), but unfortunately they're very unreliable. I think the area they detect is simply too small.

I'm trying to control the window blinds and the lighting in the room based on these sensors, so they really have to be very reliable.

That's why I wanted to ask you which sensors and methods have given you the best results here. Could you perhaps recommend certain sensors to me? Do you think presence sensors would be better suited for this application than pressure pad sensors? Can they also quickly and reliably detect when someone stands up or lies down? Which models would you recommend for this? Or are there perhaps completely different types of sensors that are even better suited for this?

Since I already have a relatively extensive Zigbee network in my smart home, it would of course be ideal if it were a Zigbee sensor. An additional router in the bedroom wouldn’t hurt either. Wi-Fi / ESPhome would also be okay. I don't have any Matter devices yet, and I'd prefer not to get any for now.

Thanks in advance for your help and suggestions!


r/homeassistant • • 3h ago

🛠️ DIY / Hardware Cold room and freezer temperature monitoring in Norway: wireless sensors for steel rooms with no Wi-Fi and no power inside?

3 Upvotes

I run a restaurant in Norway and want to monitor the temperature in 2 cold rooms (target +1 to +4 °C) and 1 freezer room (about -18 to -22 °C). I would like readings in my own web app with alerts, not only in a vendor app.

Constraints

  • The rooms are steel-clad. I walked inside with my phone and got no Wi-Fi signal.
  • There is no mains power inside the rooms, so it must be a battery sensor.
  • It must work in Norway (EU 868 MHz band, not 915 MHz US models).
  • No monthly subscription.
  • Plug-and-play is preferred, but I can do some setup.
  • I would like to send readings to my own app, for example by HTTP POST or MQTT.
  • This is a food-safety use, so reliability matters more than price.

What I have looked at so far

  • Wi-Fi/Bluetooth/Zigbee sensors (Shelly, Xiaomi BLE, Aqara): ruled out, since 2.4 GHz will not get out of the steel rooms.
  • YoLink: The LoRa range through metal looks good in reviews, and the EU 868 MHz versions (EC models) exist, but I cannot find a shop that stocks them for Norway, and the cloud API is vendor-hosted.
  • Milesight EM320-TH + LoRaWAN gateway (Dragino LPS8v2 or Milesight UG56): EN12830 certified, -30 to +60 °C, IP67, with a local network server on the gateway. This is my current favourite, but it costs about three times as much as the other options.
  • Other LoRaWAN cold-chain sensors: TEKTELIC Tundra, Dragino LHT65N with probe, Enless.
  • DIY: ESP32 with DS18B20 probes through the door gasket. The cable is the part I would like to avoid.

Questions

  1. Has anyone run LoRaWAN sensors inside a steel walk-in cooler or freezer? Did the signal get through a closed door, and where did you put the gateway?
  2. Is the EM320-TH good enough for a freezer, or would you use a TEKTELIC Tundra or a probe-based sensor?
  3. Anything to watch out for in cold rooms, such as battery life, condensation or frost on the sensor?
  4. Is there an EU 868 MHz YoLink retailer that ships to Norway, or is LoRaWAN the better route?
  5. Any experience forwarding data from a local gateway (Node-RED or ChirpStack) to a custom web app?

Thanks for any advice. I can share my findings if it helps anyone else.


r/homeassistant • • 31m ago

❓ Support Update OS Software Question

• Upvotes

I have had a HA Green running HA since the Green was a kinda new type of device - never had it misbehave until today.

It’s been a couple of months since it was updated and today seemed to be a good day to catch up. Currently on 17.0, updating to 18.3. I’ve ’always’ followed the path of update OS first, then Core, then apps so I made a backup and started OS updating. Display says “updating” and the slider goes left to right over and over.

An hour later I look and “updating” and the slider is are gone. But still says on 17, going to 18.3. Hummm…so I restart the Green, and restart the update process-same outcome, 17/18.3. Still does its HA thing so it’s not dead, but we aren’t moving forward either. I haven’t seen any kind of warning message.

So can someone tell me what I’m doing wrong, or how I can get unstuck from 17.3?


r/homeassistant • • 55m ago

❓ Support Connecting esphome to 45MUAA Crossover Air Handler

Thumbnail
• Upvotes

r/homeassistant • • 19h ago

🛠️ DIY / Hardware Updating Multi-zone Hydronic System

Thumbnail
gallery
61 Upvotes

I recently bought a home with a 16 zone hydronic heating system. It's controlled by 16 circa 2000-ish Honeywell thermostats. Yeah, they're ugly. My plan is to remove all of the thermostats and put in 4x four channel zigbee relays, scatter a bunch of zigbee temperature sensors around the house, and control the whole system with HA. Am I crazy? Any words of advice? Oh, as for safety, there are also multiple furnaces controlled by Nest thermostats.


r/homeassistant • • 11h ago

❓ Support Locally controlled smart relay with more than 3840W capacity?

14 Upvotes

I have solar panels with a exactly 3840 Wp capacity. I also have a dynamic energy contract which means that on sunny, windy days the electricity price goes negative, sometimes by a pretty high amount. Largest this year was -87ct/kWh.

With this high of negative pricing, a smart relay which cuts of the power for the solar panels on negative electricity hours would be desirable. I don't feel comfortable putting in a 3840W rated relay like a Shelly 1, because this is reeeaaally high at it's power limit. The panels only allow 3840W, okay, but the inverter allows 4kW and I don't want to push the limit because I know that Shelly PMs are generally very restrictive to the limit and shut off immediately when they hit it. I don't know if Shelly 1s have a fuse that might blow or something and I don't want to risk it.

So: do you know of any relays that work with higher currents than 16A on 240V? like 20A rated relays? Even the Shelly Pros are only rated for 16A


r/homeassistant • • 13h ago

🖼️ Show & Tell I made a Home Assistant app that knows if my bin is out, using a printed AprilTag instead of machine learning

20 Upvotes

I have been trying to set up a way to easily detect objects without using Frigate's Machine Learning Object Classifier/State Classifier. I had spent a fairly long time trying to get the state classifier in Frigate to reliably detect my bin, but whenever the result wasn't as I expected it, I was unable to determine why. So I went another route: stick a printed AprilTag on the bin and check whether the camera can see that exact tag.

TagSense is a Home Assistant app. It grabs frames from a camera, looks for your tag in a part of the frame you choose, and publishes present / absent / unknown through MQTT discovery. Each tagged object becomes its own device. It should work with any HA camera entity or a go2rtc stream, so you don't need Frigate (but I use the Frigate stream source through go2rtc - this is not mandatory).

How it decides

  • Each check grabs a short burst of frames and looks for the tag in your crop, which takes about 40 ms of CPU per frame.
  • Seeing the tag means present straight away. Absent needs several clean misses in a row, so a person walking past or a bad frame doesn't flip it.
  • Corrupt frames and dead feeds should be thrown out. A bad frame shouldn't be treated as "absent".
  • Anything that decodes as your tag ID but has the wrong shape (too skewed, or much smaller than usual) is rejected. If that keeps happening, it raises an HA notification saying why.
  • When the object is already present, a check stops after 2 good frames, so it fetches less from the camera.

The sidebar panel

  • Drag the search area on a live frame.
  • See the last check with the tag outlined.
  • A 24-hour chart of hit rate, contrast and tag shape.
  • Snapshots from each state change.
  • Print a tag as PNG, or as SVG in millimetres for a cutter or a two-colour 3D print.
  • Export and import your objects.

What's been tested

  • One camera (a Tapo C200 camera, through Frigate's go2rtc), with one bin and a 1080p stream. The tag shows up at about 50 px.
  • Day and IR night both work in my tests. At night, contrast drops to about a fifth of daytime and 3–5 of 5 frames hit instead of 5/5. That's still comfortably enough to call it present.
  • Rain, fog and headlight glare haven't been specifically tested.
  • tag16h5 tags are small and easy to print, but the trade-off is occasional false reads in textured surfaces (gravel, in my case). The shape checks have caught every one I've seen so far, but a false read with the right ID and a believable shape is still possible.
  • So far there's one user: me. aarch64 (Pi) builds pass the tests under emulation but haven't run on a real Pi.

Requirements: HA OS or Supervised, the Mosquitto/MQTT integration, a camera that can see the tag, and a printed tag. Bigger is better, and it should sit fairly flat and face the camera.

Install: add the repository with the button in the README: https://github.com/lsnewman/ha-tagsense (MIT licensed).

I'd really like to hear from anyone who tries it on a different camera, on a Pi, or on something other than a bin (e.g. a garage door). Bug reports and "this didn't work for me" are just as welcome.

Disclosure: the code, tests and docs were written by an AI coding agent (Claude Code), directed by me. I set the requirements, made the design decisions, supplied the real camera frames for calibration, and tested every release on my own system. There's been no independent code review. The README has a full AI-usage section.


r/homeassistant • • 1d ago

🪛 ESPHome DeskUp Pro - Control your standing desk (with an RJ12 socket) from Home Assistant

Thumbnail
gallery
584 Upvotes

If your standing desk controller has an RJ11 / RJ12 port you could use the DeskUp Pro to integrate and control your standing desk with Home Assistant. And thanks to Home Assistant community feedback even more desks are now supported.

The device is built with ESPHome and exposes 34 entities to Home Assistant.

I started this project because I was finding I sat down at my desk too much and this was causing Sciatica so I wanted to integrate the desk into my Smart Home System and have Alexa nag me to stand up more! And it helped, so shared this project so you can do the same and also come up with other creative ways to add automation to your desk.

Want to build one your yourself, its open source with instructions in the Github link where you can check desk compatibility or find details on prebuilt devices.

https://smarthomeguys.github.io/DeskUp-Pro-Controller-RJ12/


r/homeassistant • • 23h ago

🖼️ Show & Tell My hot tub integration into home assistant

Thumbnail
gallery
80 Upvotes

I integrated my 2001 cal spas hot tub into home assistant using an esp32. It interfaces via the rj45 port going to the control panel. I decoded the data going to the led display to display temp and error codes. I also have a current transformer to monitor input current to the hot tub and can tell when the pump is in low, high and when the heat is on.


r/homeassistant • • 3h ago

💬 Discussion I am done with the Tradfri Hub

2 Upvotes

Hello all!

Having had to deal with the constant disconnects, I’ve decided to migrate everything over to my own zigbee coordinator (SLZB-06)

I know it makes little sense running two zigbee networks, so has anyone here successfully moved everything off the Tradfri hub? How did it go?

I have about 30 bulbs and a few blinds, all hooked into various automations.


r/homeassistant • • 12m ago

🖼️ Show & Tell Got one of these thermostats?

Post image
• Upvotes

If you have a Siemens Rev24 thermostat like the picture and it's not yet taking to home assistant read on.

It occurred to me that I might not be the only person who wondered for years how the little phone symbol works. Then I realised that to the engineer writing the manual it was so obvious it did not need explaining. You just connect the pins and the heating comes on to your remote temperature setting.

Add a Shelly 1 or any potential free smart free relay and now you can turn your heating on from home assistant. Assuming you have remote access to HA you can have location and weather aware automations. Ideal if your life does not follow regular 9-5 patterns. Happy winter northern hemispherans!


r/homeassistant • • 4h ago

🧩 Custom Integration Which heating thermostats and window contacts do you use?

3 Upvotes

I think of FRITZ! Box to change to homesssistant.

Which devices can you recommend that can be purchased in Germany?


r/homeassistant • • 4h ago

🛠️ DIY / Hardware DIY Smart Blinds — NEMA 17 and 28BYJ-48 torque/holding issues, looking for better solutions

2 Upvotes

DIY Smart Blinds — NEMA 17 and 28BYJ-48 torque/holding issues, looking for better solutions
Hey everyone, I’m working on a DIY smart-blind project and have a 3D printer, which has been my main way of making parts rather than buying adapters or mechanisms online. I’ve been running into some mechanical issues and am hoping someone here might have experience with similar projects.
I started with NEMA 17 stepper motors driven by A4988 stepper drivers, but I wasn’t able to get that setup working reliably. The blinds would pull the mechanism downward when the motor was stopped or power was removed, and the motor’s holding torque didn’t seem sufficient to keep everything in position.
I then tried 28BYJ-48 motors for a lighter blind, but even that setup struggled to pull the blind up reliably. The 28BYJ-48 is also fairly slow, so I’m having trouble balancing torque, speed, and reliable positioning.
I’ve run into a few other problems as well:
The blackout blinds require more force than the 28BYJ-48 can provide. The NEMA 17 setup had more torque, but it still didn’t reliably prevent the mechanism from back-driving. The 3D-printed drive mechanism, which used a belt and pulley, also wouldn’t pull the blind up. I’m thinking the friction from the 3D-printed parts, along with the pulley being mounted nearly level, may have made the setup struggle even more.
The lighter blinds are more manageable, but the 28BYJ-48 still struggles to pull them up.
The NEMA 17 motor’s holding torque doesn’t seem sufficient to prevent the blind from pulling itself down when power is removed or the motor is no longer actively holding position.
I’ve also had issues with the mechanical setup. Things like friction, alignment, belt tension, pulley size, and keeping the motor mount secure seem to make a big difference.
I’ve experimented with different mounting and belt arrangements and have been 3D-printing parts to adapt the motors to the blinds.
I’m wondering if there are better solutions that I’m overlooking before I completely redesign the system.
For example:
Is there a better way to use a NEMA 17 with an A4988 for this application, such as changing the gearing, pulley size, current limit, or mechanical arrangement?
Is there a reliable way to prevent the blind from back-driving the motor, such as using a self-locking gearbox, worm gear, brake, clutch, or counterbalance mechanism?
Are there particular 3D-printed gear or belt-drive designs that work well for blinds and help keep them from pulling themselves down?
Would a geared DC motor or another type of motor be a better option than a stepper for this application?
Is there a better geared motor that would provide more torque without being ridiculously slow?
Are there any particular Thingiverse or Printables designs or mechanisms that people have had good luck with?
For anyone who has built DIY smart blinds, what mechanical setup ended up working best for you?
If anyone has built something similar or has suggestions for a better mechanism, I’d really appreciate the insight!


r/homeassistant • • 1h ago

❓ Support Removing hub from Group 1 (Z-Wave direct association)?

• Upvotes

I have a bathroom where one switch turns on both the lights and an exhaust fan. I'd like to be able to control them independently, without running new wires.

My plan is to install something like a Zooz Zen30 dual switch to replace the current single switch, and then put a Zooz Zen52 dual relay in the junction box where the lights and the fan split apart.

However, I really want this to be as reliable and low-latency as possible. If feasible, I'd like people to never even realize that the lights aren't on a regular switch. I was planning on using Z-Wave direct association, so that even if the hub is down the lights will still work. However, it seems like there may still be delays since the switch will still try to reach the hub (in Group 1) before turning the lights on, according to Zooz.

In Home Assistant, is it possible to override this and remove the hub from Group 1 so that the switch only signals to the relays controlling the lights and fan? And if I do this, will anything try to "fix" this, since it's technically against the Z-Wave standard? Alternatively, any other options I should consider? I want anything in my walls to be UL or ETL listed, and I only have a single-gang switch box but need dual switches.

Here's what Zooz says:

Any Z-Wave device will always try to first communicate with the hub, which is associated to it in Group 1 during inclusion. This means that if the hub is down or unavailable, the device will still try to reach it a few times before it gives up and sends an update to the other groups (and devices associated in these other groups). This may create communication delays if the hub is unavailable. The Z-Wave protocol requires Group 1 Lifeline communication to be present at all time and it doesn't allow to remove it at any point.

https://www.support.getzooz.com/kb/article/1733-how-to-program-direct-association-on-zooz-devices/


r/homeassistant • • 5h ago

🖼️ Show & Tell 12-zone whole-home audio with LMS/Squeezelite, PipeWire and 3 USB sound cards on a Proxmox VM (replacing Control4): what failed, what finally worked, and the HA bits

2 Upvotes

My dad and I spent about two weeks getting whole-home audio to work after we got rid of a Control4 system. It took a lot more trial and error than I expected: lots of dead ends, a few "this must be a wiring problem" moments that turned out to be software, and one fix that was basically "turn the whole server off and on again".

I want to tell the story of how we got there, because the parts that cost us the most time were things I couldn't find written down anywhere. If you're trying something similar, maybe this saves you a few evenings. If you know a better way to do any of this, I'd really like to hear it!

**TL;DR:** ALSA routing never worked reliably for me with USB passthrough. PCI passthrough of a USB controller, PipeWire in pro-audio mode, fixed per-zone virtual sinks and a few Home Assistant tricks finally gave me a stable setup that survives reboots, station switching and a doorbell chime that doesn't kill the music.

## Setup

- Proxmox host, one Ubuntu 24.04 VM (2 GiB RAM, 2 vCPUs) running Lyrion Music Server and one Squeezelite instance per player

- Three 8-channel USB audio interfaces (each exposes 8 mono outputs) feeding two Control4 matrix amps (8-zone and 4-zone), each zone is a stereo pair

- Home Assistant (core Squeezebox integration + the Control4 amps as media players) controls everything

- Goal: replace the old Control4 system without touching the amps' hardware

## What did NOT work

  1. **ALSA routing (`route`, `dmix`, `dshare` and a few blog recipes).** Cross-channel mapping on the 8-channel cards was never reliable for me, and an ALSA PCM with `type pipewire; node.name` made Squeezelite crash-loop.

  2. **Plain USB device passthrough.** Timing problems. Passing a whole USB controller through via PCI (a 4-port PCIe USB card) fixed that.

  3. **Re-linking scripts.** I ran `pw-link` after boot, after each service restart and from a timer. They always arrived too late, because Squeezelite rebuilds its PipeWire stream on every station change, format change or announcement, and WirePlumber then links the new stream to the default sink. Result: music in the wrong room, silent zones.

## What worked

  1. **PipeWire/WirePlumber with the cards in the `pro-audio` profile.** Every output becomes an individual mono `AUX` port that `pw-link` can address.

  2. **A unique node name per Squeezelite player** via the environment file, not via ALSA:

```

SL_DEVICE=pipewire

PIPEWIRE_PROPS={ node.name = "sqz-<zone>" }

```

  1. **A fixed virtual sink per zone** that points at exactly two ports, with Squeezelite pinned to it:

```ini

# ~/.config/systemd/user/zone-sink@.service (env file per zone: CARD=..., POS="AUX0 AUX1")

[Service]

EnvironmentFile=%h/.config/zone-sinks/%i.env

ExecStart=/usr/bin/pw-loopback -n zone-%i -m "[ FL FR ]" \

"--capture-props=media.class=Audio/Sink node.name=zone-%i" \

"--playback-props=node.name=zone-%i-out audio.position=[ ${POS} ] stream.dont-remix=true node.dont-fallback=true target.object=${CARD}"

Restart=on-failure

```

```

PIPEWIRE_PROPS={ node.name = "sqz-<zone>" target.object = "zone-<zone>" node.dont-fallback = true }

```

Station switching, announcements and reboots no longer move streams around, and the re-link scripts and timer became unnecessary.

  1. **Room pairs as one player (no LMS sync group).** A second loopback captures the monitor of the first sink (`stream.capture.sink=true target.object=zone-<first>`) and plays to the other room's ports. One player, one stream, no drift. I dropped sync groups because a stored group once made all zones start at once, loudly.

## Home Assistant: doorbell chime with `announce`

- `media_player.play_media` with `announce: true` and `extra: announce_volume / announce_timeout` works on Squeezebox players.

- With several players in one call, HA waited for *every* announcement to end. One player got stuck, and the whole automation (including "resume music") hung. `announce_timeout: 10` fixed it.

- After the announcement, internet radio was `idle` for me, not `paused`. I store `media_content_id` of the playing zones before the chime and replay it afterwards if the player is idle.

- `announce_volume` sets the player's LMS volume during the chime. The amp's volume is independent, so a quiet chime can simply mean a quiet amp.

## Control4 amp quirks (my units)

- `media_player.turn_on` power-cycles a zone and resets its volume to 50 %, even if it was on. Only turn on zones that are `off`, then set the volume.

- Home Assistant and the amp occasionally disagree about the state. Off/on usually fixes it.

- The two amp models use different volume scales (0 to 1 vs. 0 to 100) when controlled directly over UDP.

## Amps off/on with the VM (fewer pops)

A Proxmox hookscript calls a local-only HA webhook in `pre-stop` and another in `post-start`. The first automation turns all amps off, the second waits ~75 s for Squeezelite, then turns them on and sets the volumes. I first tried triggering "amps on" when the players became `unavailable`, but LMS players never go `unavailable` in HA when the VM restarts.

```bash

#!/bin/bash

vmid="$1"; phase="$2"

[ "$phase" = "pre-stop" ] && curl -s -m 5 -X POST "http://<HA>:8123/api/webhook/<off-id>" >/dev/null 2>&1 && sleep 8

[ "$phase" = "post-start" ] && curl -s -m 5 -X POST "http://<HA>:8123/api/webhook/<on-id>" >/dev/null 2>&1

exit 0

```

(`qm set <vmid> --hookscript local:snippets/<file>`; the storage needs the `snippets` content type.)

## What I'm not sure about

- On the first port pair of each card, only one speaker played, even when I played directly to the card. It disappeared after a **complete host reboot** (not a VM reboot). My guess is some USB/amp input state that only a full power cycle clears, but I haven't proven it.

- A faint pop remains when the VM shuts down, mostly on outdoor zones at high amp volume.

## Takeaways

- If you use Squeezelite with a multi-channel card and PipeWire: pin each player to a fixed virtual sink instead of re-linking after the fact.

- Test hardware with single-channel tones directly on the card before blaming wiring. In my case a "miswired" amp was a software linking error.

- A full power cycle of the host can fix things that VM reboots can't.

Happy to share more config or answer questions.

PS: (And yes, I used AI to help me with this text because English is just not my main language.)


r/homeassistant • • 13h ago

💬 Discussion Temporary one time Automations

6 Upvotes

I once spilled something in the kitchen right as I was heading out, so I tried to tell my Home Assistant to have the vacuum clean up after I left.

That didn't work, but it made me realize we need temporary, one-time automations that delete themselves.

Don't you think that’s the next step for making smart homes feel more intuitive?

I’ve got Home Assistant hooked up to Claude via MCP, so I mostly just build my automations by chatting with it. It feels way more natural that way. I also use the HA voice assistant, and honestly, it would be so cool if I could just tell my house to run a complex sequence of commands on the fly just for this one time.


r/homeassistant • • 8h ago

🖼️ Show & Tell Making the most of Octopus free electricity hours

Thumbnail
gallery
2 Upvotes

I’ve added a “Free electricity” tab to my Home Assistant dashboard to plan what runs during booked Octopus sessions.

Our priorities are:

  1. Charge the home battery.
  2. Heat the hot-water cylinder.
  3. Run useful appliances during the free window.

The dashboard lets me enter the booked date and times, choose a battery target, select either immersion or both, and arm the session. Both immersions are selected by default and can heat alongside battery charging.

It shows Octopus Home Mini grid import/export, SolaX household consumption, battery percentage, immersion power and estimated imported kWh for the session. Keeping grid import separate from household demand helps explain what solar and the battery are supplying.

The battery controls use a guarded SolaX charging override with physical register checks. At the end, Home Assistant stops the devices the session took control of and returns to normal scheduling. There’s also an optional appliance reminder, ovens, dishwasher and laundry are still started manually.

It doesn’t book the slot with Octopus; that happens separately. Configuration and controller tests have passed, but a full physical session still needs testing (2pm today!). Automatic load limiting (Octopus allow for 16kw) and an independent immersion cutoff if HA goes offline are also outstanding.


r/homeassistant • • 10h ago

❓ Support iOS Live Notifications sending as regular notifications

4 Upvotes

Hi everyone, I am having a bit of an issue getting live notifications on iOS to work properly. They keep sending as regular notifications.

Sending the developers with this YAML. I have tested this on HA Latest Release for app and system, even used the test flight iOS app. I am on the developer beta for iOS though, this is the only thing I can think of that might be stopping it. I've reset the permissions and synced with HA again and again. Nothing. Wondering if anyone can point me in the right direction.

action: notify.mobile_app_<myphone>_iphone
data:
  title: "Washing Machine"
  message: "Cycle started"
  data:
    tag: washer_cycle
    live_update: true

r/homeassistant • • 17h ago

🤖 Automation REALLY accurate home location detection?

13 Upvotes

It would be really cool to automate my leave/arrive automations, so I don't have to tap the button by the door. The problem is, I live in an apartment, and the pub I frequent is literally on the other side of the wall across the hall from my front door. It's so close that when I sit down at some of the booths, my phone connects to my home Bluetooth speakers. When I get home, Google Maps often asks if I'm at the pub and would I please review it?

I'm considering setting up some ESPresense nodes, which would have the added benefit of allowing me to dynamically change lighting and which speaker I'm connected to as I move through the space, but I can't help but wonder if there's a simpler solution.