Call out for usability testers: ESPHome GUI for beginners

Hey y’all :wave: on-staff designer for ESPHome (and other OHF products here)

I’m conducting some usability tests on the ESPHome GUI prototypes and I’ll be looking for a few (1-2) of expert ESPHome users and many more (5-8) beginners to ESPHome to have conversations about the proposed GUI.

Beginners would be categorised as β€˜People that want to build a device from scratch using electronics boards, sensors etc. on ESPHome (to connect to Home Assistant) but haven’t yet started or only looked once or twice at what’s involved’.

Enthusiastic beginners :tada:

Please reach out either by replying to me here or dropping me a DM or if you prefer email then you can reach me on [email protected] and i’ll send more details on how to book in for the usability test!

Using this photo from SOTOH yesterday to show an early version of the GUI I’m speaking about here:

Prototypes are likely beloved here, however some screenshot is not necessarily enough to attract people. Let us know more…

What would you like to know? There’s some more details over here: Lower the barrier to entry for ESPHome by introducing a graphical UI for building ESPHome devices Β· Issue #21 Β· OpenHomeFoundation/roadmap Β· GitHub

Hey folks! we're doing some more structured usability testing for the ESPHome GUI builder!

Specifically we're looking for beginner folks that are less familiar with building electronics/smart devices or have started to build 1 or 2 simpler devices etc.

Additionally we have a preference for:
People that would use the GUI+yaml interface to build
Students of electronics that are not as familiar with custom smart home devices
Home Assistant users that have never looked into ESPHome but are curious to learn

You can use this link to fill out a quick survey and register your interest in taking part: The remote user research platform for human insights

@Erioldoesdesign, the layout looks nice and I think the upgrades to the UI overall across HA have been a vast improvement. But, I'm really curious how much the design team(s) talk about the elephant in the room, namely AI?

In short, I wonder if these UI updates are going to be quickly outdated. AI is really close now and only going to get better at writing configurations (automations, scripts, etc.) for HA. I suspect the drop in traffic here on this forum is due to AI already.

Just to give an example, I just now entered this into Claude AI:

Create an ESPHome configuration for a ESP32S3 that has 1) a DS18B20 temp sensor, 2) a BH1750 light sensor, and 3) a relay that when a button is pressed in Home Assistant will turn on for 500ms. Use an API key of "my-secret-api-key" and enable the ESPhome web server.

I understand the focus has been on beginner users, but what could be easier for a beginner than just describing the parts they have and what they want to build using a prompt like above?

Perhaps the UI changes should be a series of questions asking the user what they want to build and what components they have to help formulate a prompt like that?

I didn't flash this as this is just a quick example, but that prompt generated this, which I doubt the current UI could generate.

ESPHome YAML generated by Claude
esphome:
  name: esp32s3-sensors
  friendly_name: ESP32-S3 Sensor Node

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "my-secret-api-key"

# Enable OTA updates
ota:
  - platform: esphome
    password: "my-secret-api-key"

# WiFi configuration β€” fill in your credentials
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "ESP32S3 Fallback Hotspot"
    password: "fallback-password"

captive_portal:

# ESPHome web server
web_server:
  port: 80

# ─────────────────────────────────────────
# 1. DS18B20 β€” 1-Wire Temperature Sensor
#    Wiring: DATA pin β†’ GPIO4 (with 4.7kΞ© pull-up to 3.3 V)
# ─────────────────────────────────────────
dallas_ng:
  - pin: GPIO4           # Change to your actual DATA pin
    update_interval: 30s

sensor:
  - platform: dallas_temp
    name: "Temperature"
    unit_of_measurement: "Β°C"
    accuracy_decimals: 1
    device_class: temperature
    state_class: measurement

# ─────────────────────────────────────────
# 2. BH1750 β€” IΒ²C Light Sensor
#    Wiring: SDA β†’ GPIO8, SCL β†’ GPIO9 (ESP32-S3 defaults)
# ─────────────────────────────────────────
i2c:
  sda: GPIO8             # Change to your actual SDA pin
  scl: GPIO9             # Change to your actual SCL pin
  scan: true

  # (BH1750 sensor block lives under the top-level sensor: key below)

# Merge all sensor entries under one key
# ESPHome allows multiple sensor: blocks; they are combined at compile time.
sensor:
  - platform: bh1750
    name: "Illuminance"
    address: 0x23        # Default address; use 0x5C if ADDR pin is HIGH
    update_interval: 30s
    unit_of_measurement: "lx"
    accuracy_decimals: 1
    device_class: illuminance
    state_class: measurement

# ─────────────────────────────────────────
# 3. Relay β€” momentary 500 ms pulse
#    Triggered by a button press in Home Assistant
#    Wiring: Relay IN β†’ GPIO10
# ─────────────────────────────────────────
switch:
  - platform: gpio
    name: "Relay"
    pin:
      number: GPIO10     # Change to your actual relay pin
      mode:
        output: true
    restore_mode: ALWAYS_OFF
    # The automation below fires whenever Home Assistant calls
    # the switch's turn_on service, pulses for 500 ms, then turns off.
    on_turn_on:
      - delay: 500ms
      - switch.turn_off: relay_switch
    id: relay_switch

AI has a lot of issues, but it's really good at building out a starting config which you can build on -- and the more involved or complex the task the less the UI can help.

Spoiler alert: it doesn't work.

Right. And we see that over and over when people post code generated by AI here. Which is a BIG tell. Humans also write automations that don't work, too. But, that's a bit beside the point here.

But the AI is getting much better and that's happening quickly. How much effort to put into the new UI if people find the AI faster, easier to use and it can tell you to add a 4.7kΞ© pull-up? Just a question about the likely future.

People that want to use AI can still use AI (and then post here when it generated something that doesn't work and they have no idea how to fix it), but I think there's absolutely a place for people that want to use a curated tool like the one presented.

FWIW, I've been hearing the "it will become much better soon" mantra for a while now, yet your example is showing that, apparently, Claude is still just a fancy autocomplete that just makes stuff up and presents the user with syntactically incorrect YAML. How is that of any use to beginners?

True. And I'm still wondering why anyone would want the "internet" on their phone. But I digress. :wink: Again, I like all the UI updates.


And I'll leave you with this fun thing from yesterday where I asked Google how to move my active chat from my phone to my laptop and it gave me instruction how to do it on ChatGPT:

It can also tell you to add 4.7k pull-down. Or other no-sense. I agree it's getting better and better but it still can suddenly tell absurd things. And frequently updated esphome is hard bone for AI that got trained several years ago.

Not sure that applies to just AI.

It will be interesting to see what happens over the next few years. The posts here in the last year or so probably give a good idea of the future.

Absolutely not. Some dormant topic from 3years ago on this forum likely gives you as much outdated info.

Sure. We got internet, cell phones, digital cameras etc. within small timeframe ~25-30 years ago and here we are on next level. At certain point bubble has to burst but after that real adoption starts..

I have been using the experimental ESPHome Device Builder (beta) for a few weeks and it is great.

I learnt YAML and how to make my nodes useful and do things! However, honestly I forget the complete ins and outs of how I arrived at a particular sensor / automation. The new GUI inspires me to go back and relook at all my YAML and check I am up to date.

I would describe myself as old guy problem solver :rofl: Let me know if I can help.

Edit 1: I was surprised there was not more mention of this and dedicated conversation
Edit 2: Not helped by topic being hijacked!