Home Assistant: Difference between revisions
No edit summary |
|||
Line 36: | Line 36: | ||
{{template:top}} | |||
==Assign an area to an entity== | |||
You can change the device area in the Advanced Settings [[Home_Assistant#Rename_Entities|here]]. | |||
{{template:top}} | |||
==Bluetooth== | |||
===Configure the ESP32 to work as a Bluetooth device=== | |||
[https://community.home-assistant.io/t/2022-10-all-over-the-place/470126/41 From the forum]<br> | |||
;How do I configure the esp32 to work as a bluetooth device? I have it setup in esphome and it sees it, but where do I go after that? | |||
From nickrout:<br> | |||
Flash it with esphome with this in the config | |||
<nowiki>bluetooth_proxy: | |||
active: true</nowiki> | |||
{{template:top}} | |||
===Proxy=== | |||
[https://youtu.be/CjpPdwK_ttg Tutorial Part 1- EASY Bluetooth Proxies in Home Assistant! Increase the range of your passive Bluetooth devices!]<br> | |||
[https://youtu.be/l5ea7lQWpMk Tutorial Part 2- Use this CHEAP Xiaomi thermometer with an ESP32 and Home Assistant.]<br> | |||
{{template:top}} | |||
===Sniffing BTLE=== | |||
[https://community.home-assistant.io/t/bluetooth-dongle-added-how-to-scan-for-devices/448104/14 Reference on forum]<br> | |||
Add a line into configuration.yaml to get access to the Logger Service: | |||
<nowiki># Get access to logger.set_level service following bdraco live demo | |||
# https://youtu.be/m9gKFH8WlzY?t=3297 | |||
logger: | |||
default: warn</nowiki> | |||
Restart Home Assistant | |||
Set Bluetooth logging to debug | |||
Developer Tools → Services | |||
<nowiki>service: logger.set_level | |||
data: | |||
homeassistant.components.bluetooth: debug</nowiki> | |||
<i>call service</i><br> | |||
Terminal: | |||
<nowiki>cd /config | |||
tail -f home-assistant/.log | grep "bluetooth" > bt_log.txt</nowiki> | |||
Watch for devices in the log, noting addresses and data<br> | |||
Set the logging back to warn to not fill up the uSD<br> | |||
<nowiki>service: logger.set_level | |||
data: | |||
homeassistant.components.bluetooth: warn</nowiki> | |||
<i>call service</i><br> | |||
{{template:top}} | {{template:top}} |
Revision as of 11:21, 6 September 2023
Tips
Alexa without Nabu Casa
1. Install Node Red Add-on to Home Assistant.
2. Add the node-red-contrib-alexa-cakebaked node to the pallete.
3. Here’s the magic. Create an account on Ben Hardill’s website. Ben maintains the magic link between Alexa and Node Red. He does all of the AWS work for you. Adding devices could not be easier. I have 40 devices on his server now, and adding a new device takes about two minutes. If I am slow. Ben offers this service to the community for free, but I strongly recommend that you to commit a $1/month sponsorship through Github.
In this example, I will add a Sonoff Mini R4 that I just flashed with ESPHome. Alexa will know it as “Fred”, and Home Assistane already knows the ESPHome device as “sonoffminir4”.
Open the Hardill site and click on devices.
Click on Add Device. As in the image below, I named the device “Fred”, and made it a simple on-off
After adding the device to your Hardill account, tell Alexa to “Discover”. About a minute later, Alexa announces that she had found a new device: “Fred”.
In Home Assistant/Node-Red, drop the Alexa-home node on your flow. The first time you open it you will need to configure the node with your Alexa login credentials.
You should find Fred in the device dropdown. It isn’t alphabetic, but the most recent device added is usually at the bottom of the list. Select Fred then click on “Done”.
I added a debug node to show that Alexa is responding to “Fred”. Deploy, then select the Debug panel:
Now, when I say “Alexa, turn on Fred”, the Alexa Home node outputs a command, “TurnOnRequest” for on and “TurnOffRequest” for off.
From here you can do just about anything you want with the Node Red flow. But, I just want to turn the Sonoff switch on or off, so I added a switch node to determine if the command was “TurnOnRequest” or “TurnOffRequest”. Then a Change Node to change the payload to “on” or “off”, then finally into a “Call Service” node to tell Home Assistant to turn Fred on or off.
the flow code
[{"id":"a0859613214d75bc","type":"alexa-home","z":"5d1b0398.99236c","conf":"49ef520c.ed4c0c","device":"199512","acknoledge":true,"name":"Fred","topic":"","x":190,"y":2860,"wires":"d3e7050d43452a6f"},{"id":"d3e7050d43452a6f","type":"switch","z":"5d1b0398.99236c","name":"on or off","property":"command","propertyType":"msg","rules":[{"t":"eq","v":"TurnOnRequest","vt":"str"},{"t":"eq","v":"TurnOffRequest","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":360,"y":2860,"wires":[["b295e70dfb6e5e97"],["4da578b998f05402"]]},{"id":"b295e70dfb6e5e97","type":"change","z":"5d1b0398.99236c","name":"Set payload to on","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":2840,"wires":"4e46a720527e90e6"},{"id":"4da578b998f05402","type":"change","z":"5d1b0398.99236c","name":"Set payload to off","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":2880,"wires":"233cec751d2910a7"},{"id":"4e46a720527e90e6","type":"api-call-service","z":"5d1b0398.99236c","name":"Turn Fred On","server":"cc0d1734.6963a8","version":5,"debugenabled":true,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.sonoffminir4_sonoffminir4"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":800,"y":2840,"wires":[[]]},{"id":"233cec751d2910a7","type":"api-call-service","z":"5d1b0398.99236c","name":"Turn Fred Off","server":"cc0d1734.6963a8","version":5,"debugenabled":true,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.sonoffminir4_sonoffminir4"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":790,"y":2880,"wires":[[]]},{"id":"49ef520c.ed4c0c","type":"alexa-home-conf","username":"SteveMann","info":"https://alexa-node-red.bm.hardill.me.uk/"},{"id":"cc0d1734.6963a8","type":"server","name":"Home Assistant- Raspberry","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]
Assign an area to an entity
You can change the device area in the Advanced Settings here.
Bluetooth
Configure the ESP32 to work as a Bluetooth device
- How do I configure the esp32 to work as a bluetooth device? I have it setup in esphome and it sees it, but where do I go after that?
From nickrout:
Flash it with esphome with this in the config
bluetooth_proxy: active: true
Proxy
Tutorial Part 1- EASY Bluetooth Proxies in Home Assistant! Increase the range of your passive Bluetooth devices!
Tutorial Part 2- Use this CHEAP Xiaomi thermometer with an ESP32 and Home Assistant.
Sniffing BTLE
Add a line into configuration.yaml to get access to the Logger Service:
# Get access to logger.set_level service following bdraco live demo # https://youtu.be/m9gKFH8WlzY?t=3297 logger: default: warn
Restart Home Assistant
Set Bluetooth logging to debug Developer Tools → Services
service: logger.set_level data: homeassistant.components.bluetooth: debug
call service
Terminal:
cd /config tail -f home-assistant/.log | grep "bluetooth" > bt_log.txt
Watch for devices in the log, noting addresses and data
Set the logging back to warn to not fill up the uSD
service: logger.set_level data: homeassistant.components.bluetooth: warn
call service