If you want to hear about the future of ESPHome, make sure to tune into the State of the Open Home next week: https://www.youtube.com/live/oa__fLArsFk
2,080 karma · joined August 27, 2012
If you want to hear about the future of ESPHome, make sure to tune into the State of the Open Home next week: https://www.youtube.com/live/oa__fLArsFk
Overview of Home Assistant's voice work: https://arstechnica.com/gadgets/2024/02/can-you-manage-your-...
More information about todays release: https://www.home-assistant.io/blog/2024/02/21/voice-chapter-...
Create your own voice assistant directly from your browser: https://www.home-assistant.io/voice_control/s3_box_voice_ass...
Video of it in action compared to streaming the audio to Home Assistant where it is passed to openWakeWord: https://www.youtube.com/watch?v=oSKBWtBJyDE
[1]: https://www.home-assistant.io/blog/2023/12/13/year-of-the-vo...
We might take it one step further and ask the user if they want to add a rule that certain rooms have a certain level of light.
Although light level would tie it to a specific sensor. A smart enough system might also be able to infer this from the position of the sun + weather (ie cloudy) + direction of the windows in the room + curtains open/closed.
[1]: https://www-files.anthropic.com/production/images/Anthropic_...
Home Assistant allows users to install add-ons which are Docker containers + metadata. This is how today users install Whisper or Piper for STT and TTS. Both these engines have a wrapper that speaks Wyoming, our voice assistant standard to integrate such engines, among other things. (https://github.com/rhasspy/rhasspy3/blob/master/docs/wyoming...)
If we rely on just the ChatGPT API to allow interacting with a model, we wouldn't know what capabilities the model has and so can't know what features to use to get valid JSON actions out. Can we pass our function definitions or should we extend the prompt with instructions on how to generate JSON?
Here are some things that I expect LLMs to be able to do for Home Assistant users:
Home automation is complicated. Every house has different technology and that means that every Home Assistant installation is made up of a different combination of integrations and things that are possible. We should be able to get LLMs to offer users help with any of the problems they are stuck with, including suggested solutions, that are tailored to their situation. And in their own language. Examples could be: create a dashboard for my train collection or suggest tweaks to my radiators to make sure each room warms up at a similar rate.
Another thing that's awesome about LLMs is that you control them using language. This means that you could write a rule book for your house and let the LLM make sure the rules are enforced. Example rules:
* Make sure the light in the entrance is on when people come home. * Make automated lights turn on at 20% brightness at night. * Turn on the fan when the humidity or air quality is bad.
Home Assistant could ship with a default rule book that users can edit. Such rule books could also become the way one could switch between smart home platforms.
With Home Assistant we plan to integrate similar functionality this year out of the box. OP touches upon some good points that we have also ran into and I would love the local LLM community to solve:
* I would love to see a standardized API for local LLMs that is not just a 1:1 copying the ChatGPT API. For example, as Home Assistant talks to a random model, we should be able to query that model to see what the model is capable off.
* I want to see local LLMs with support for a feature similar or equivalent to OpenAI functions. We cannot include all possible information in the prompt and we need to allow LLMs to make actions to be useful. Constrained grammars do look like an possible alternative. Creating a prompt to write JSON is possible but need quite an elaborate prompt and even then the LLM can make errors. We want to make sure that all JSON coming out of the model is directly actionable without having to ask the LLM what they might have meant for a specific value.
[1]: https://www.home-assistant.io/blog/2023/04/27/year-of-the-vo...
With Home Assistant Green we hope to make it very easy for people to join the Home Assistant community and experience a smart home focused on privacy and local control.
Home Assistant is building a voice assistant as part of our Year of the Voice theme. https://www.home-assistant.io/blog/2023/04/27/year-of-the-vo...
As part of our recent chapter 2 milestone, we introduced new Assist Pipelines. This allows users to configure multiple voice assistants. Your project is using the old "conversation" API. Instead it should use our new assist pipelines API. Docs: https://developers.home-assistant.io/docs/voice/pipelines/
You can even off-load the STT and TTS fully to Home Assistant and only focus on wake words.
You will see a lot higher adoption rate if users can just buy the ESP BOX and install the software on it without installing/compiling stuff. That's exactly why we created ESP Web Tools. It offers projects to offer browser-based installation directly from their website. https://esphome.github.io/esp-web-tools/
If you're going the ESP Web Tools route (and you should!), we've also created Improv Wi-Fi, a small protocol to configure Wi-Fi on the ESP device. This will allow ESP Web Tools to offer an onboarding wizard in the browser once the software has been installed. More info at https://www.improv-wifi.com/
Good luck!
2. We offer VM images if you want to keep flexibility but also benefit from all our work on an integrated system. You can also do a Supervised installation, but then it's your own responsibility to keep the host OS running the requirements of HA.
Fun fact: we supported Almond (later Genie), the IoT AI from Stanford which they released a couple of years ago. It would convert natural language into their ThingTalk language, which could do things like you mention. It was not popular at all and Stanford ended up shutting it down.
We're still exploring different ML on the edge chips to help with wake word and audio processing. One hard requirement that we have is that the tooling is openly available, so that anyone can convert an AI model and run it on the chip. We don't accept tooling to be available as a website or under NDA. That challenge is harder than we expected!
Edit: if you want to keep in the loop of the work we're doing, subscribe to our free monthly newsletter @ https://building.open-home.io/
Using just your browser you can transform these into Bluetooth proxies for Home Assistant with https://esphome.github.io/bluetooth-proxies/
For the Raspi images: the build pipelines are often hosted on GitHub and all the build logs and source is available. If anything, open source projects that are big enough to offer their own OS often receive more scrutiny than most closed source products do.
That's also the chip that Espressif has build it's reference implementation Thread Border Router around: https://openthread.io/guides/border-router/espressif-esp32
But you can also use ESP32s for Thread. If you have one that we support laying around, we have an installer website here that we use for testing https://nabucasa.github.io/matter-example-apps/
Here are some highlights for us:
Open source reference implementation: Google, Apple, Home Assistant, we're all going to be running the same code to be a Matter controller. Chip manufacturers like Espressif and Nordic maintain implementations for their boards in there too, so anyone can now have the software to produce Matter compatible light bulbs. https://github.com/project-chip/connectedhomeip
It will be cheap: The software is freely available and works with a big audience. It's the same reason Android TVs from some manufacturers are cheap, the same will be the case for Matter lights and switches.
Multi-fabric: each Matter device is required to support 5 fabrics. A fabric is a Matter network. This means that you will be able to run multiple home automation controllers at the same time. So when run into the limitations of Google Home or Apple Home, you can try out Home Assistant without taking down your old system.
Easy sharing of devices: Because of multi-fabric, it will be as easy as hitting a share button to get a device added to another fabric. See this example of Android https://twitter.com/home_assistant/status/157703612255503564...
Local: all communication for Matter is happening local between a device, a thread border router (if thread-based Matter), and the controller. Note that your controller can still decide to store your data in the cloud (ie Amazon, Google).
Supported by major systems: Amazon, Apple, Google and Home Assistant are all building the open source Matter code into their systems. It means that for manufacturers it will be easy to pick Matter as the protocol they want to support to reach most users.
Works over IP: Matter works over IP and doens't care how that IP-based device communicates. It means that you can have Wi-Fi based and Thread-based devices co-exist on your network. Thread is not required if you don't care about such devices.
Bridges are part of the standard: Devices like Philips Hue hubs are going to get an upgrade to expose all the Hue lights over Matter via the hub. This makes integrating a whole ecosystem at once into Matter very easy.
Thread: Thread is a mesh networking standard that connects to your Wi-Fi network via border routers. Where Zigbee and Z-Wave need to mesh communicate all the way to your controller, Thread messages will be delivered via Wi-Fi/ethernet as soon as possible. This means it is a lot more reliable and less traffic is going over the mesh. Expect cheap border routers (open source reference implementations) but also expect them in your future Wi-Fi routers, voice assistants, Wi-Fi connected TVs etc.
Paulus /Founder Home Assistant https://www.home-assistant.io