esphome / firmware

Holds firmware configuration files for projects that the ESPHome team provides.
https://esphome.io/projects
Apache License 2.0
152 stars 116 forks source link

Optional 2nd package to add radar and battery sensors to esp32-s3-box-3.yaml #165

Open jaymunro opened 7 months ago

jaymunro commented 7 months ago

To be added as an extra package in addition to the main esp32-s3-box-3.yaml, e.g.

packages:
  esphome.voice-assistant: github://esphome/firmware/wake-word-voice-assistant/esp32-s3-box-3.yaml
  esphome.voice-assistant-sensor: github://jaymunro/esphome_firmware/wake-word-voice-assistant/esp32-s3-box-3-sensor.yaml@sensor_dock

All additions only use GPIO pins. I2C bus is not touched so it is very low resource usage.

Provides

Sensors:

Binary Sensor:

Number:

Switch:

jesserockz commented 7 months ago

I like this.

I think we should move it out of this folder though as it can just be used generically for any s3-box-3 and doesn't need to be for voice-assistants.

Jesse

jaymunro commented 7 months ago

I and others have had this running for several weeks now with some battery calibration performed from 2 separate users. See https://community.home-assistant.io/t/esp32-s3-box3/638287/146.

I think having it as a package will make it an easy optional addition for those using the sensor dock. Not sure on the best location for it though.

jaymunro commented 7 months ago

I like this.

I think we should move it out of this folder though as it can just be used generically for any s3-box-3 and doesn't need to be for voice-assistants.

Ah ok. I'll move it to the voice-assistant folder then...

jaymunro commented 7 months ago

Development recorded here: https://github.com/esphome/feature-requests/issues/2475#issuecomment-1879449021

jaymunro commented 7 months ago

Screenshot of the device with the additional sensors and configuration options

Screenshot 2024-02-22 at 5 40 13 PM
jaymunro commented 7 months ago

Presently testing the compile with the yaml:

substitutions:
  name: esp32-s3-box-3-5ad0fc
  friendly_name: Jarvis
  micro_wake_word_model: hey_jarvis
packages:
  esphome.voice-assistant: github://esphome/firmware/wake-word-voice-assistant/esp32-s3-box-3.yaml
  esphome.voice-assistant-sensor: github://jaymunro/esphome_firmware/voice-assistant/esp32-s3-box-3-sensor.yaml@sensor_dock
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: xxxxxxxxxxxxxxxxxxxxxx=

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
jaymunro commented 7 months ago

Looking at your comment again @jesserockz, I think battery and radar stuff can be pulled out to an even more generic location (where?), but the Mute when absent is specific to voice-assistants.

Where ever the others are moved to, the Mute when absent should either be kept with the voice-assistants or there would need to be some method to automatically only include that toggle if voice-assistant is present. Is there a best practice for doing this?

jesserockz commented 7 months ago

Ah yes good point.

I think all the actual sensors could go in one file and mute on a sense could just be documented somewhere that people can add to their adopted yaml even alongside the package line they are already adding

jaymunro commented 7 months ago

I've been looking through the file structure and it seems the only location for box3 firmware is inside the voice-assistant folders. As these sensors only work with the sensor version of the dock on the box3 (not even the gen1 box), then there would need to be yet another esp32-s3-box3 folder that is not VA related.

TLDNR: Presently there is no generic location that I can see. Is there presently a non VA use for the Box3 with sensor dock in ESPHome?

jaymunro commented 7 months ago

Perhaps, what could be done is the basic functionality could be modified to be a stand-alone package and go into esp-web-tools as esp32s3box3sensor. Is this what you had in mind @jesserockz?

How then could this be made obvious to people setting up a box3 with sensor dock as a VA? Can an alias/link/shortcut to that file be put in the voice-assistant folder? Probably not best though imo as additions to it in the future that would work stand alone without VA, may conflict with VA. I am thinking of the i2c bus for temp and humidity as a very good example (there is a serious conflict with VA).

The resolution then may be just to have two versions, one in web tools, the other in voice-assistant (and maybe another in wake-word-voice-assistant?? So that people going for the micro wake word know that the sensor dock components will be compatible).

I am adding lines at the start to make it stand alone for web tools. I can also add the i2c bus with temp & humidity to it as they work and without VA present, VA will not self destruct.

Thoughts?

jaymunro commented 7 months ago

My further thoughts are that although adding a generic firmware for the box3 sensor dock could be useful for someone, I actually put the package together for VA based on a number of forum comments requesting the radar sensor so the box:

Can we think about adding it as it is so that people waiting for it can use it now? The addition to web-tools sounds like a whole new project as there are people wanting to add TH and screen interaction that conflicts with VA.

jaymunro commented 7 months ago

I'm unclear as to what the difference/purpose of the esp-web-tools folder vs. the esphome-web, so I have added the sensors as a separate generic yaml in esp-web-tools.

I have also added comments to the voice-assistant version in the voice-assistant folder on how to use it and it's purpose.

balloob commented 7 months ago

I would suggest that we create a new firmware folder. Each folder has a purpose and we don't want to mix it up.

jaymunro commented 7 months ago

I would suggest that we create a new firmware folder. Each folder has a purpose and we don't want to mix it up.

Can you clarify Paulus? Do you mean for the generic firmware or the voice-assistant specific one? Or are you suggesting putting both in a folder like box3-docks?

jaymunro commented 7 months ago

@balloob @jesserockz , I have created a new folder esp32-box-docks that could be used for all the Espressif box docks and their various uses. I've populated it with 2 yaml files:

  1. a generic version for the Box3 Sensor dock (battery level & radar for presence/absence)
  2. a voice-assistant version for the Box3 Sensor dock (battery & radar with mute on absence option)

If that makes better sense, it should be ready to go.

esphome[bot] commented 7 months ago

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks :+1:

Learn more about our pull request process.

jaymunro commented 7 months ago

@jesserockz, did my last changes meet what you were asking for?

joelis10 commented 3 months ago

Hey @jaymunro - I'm trying out your custom YAML and so far so good with everything except the battery sensors, I get collect2: error: ld returned 1 exit status *** [.pioenvs/esp32-s3-box-3-5a92ac/firmware.elf] Error 1 when trying to compile with those sensors added. Commenting them out allows it to compile again but I recently got a battery and would love it to appear in HA too. Any idea what the issue could be?