No clue where to begin with MQTT

Yes, Vin on the D1 Mini is the micro USB which obviously takes 5V. The 3.3V pin on the other hand is the output of the LDO which takes the 5V and drops it to 3.3V.

Well, again it’s true that the ESP’s internally works with a 3.3 Voltage but it’s in general safe to use 5V logic on the GPIO’s as according to the CEO of Espressif. :tada:

I do this since many years without any problems :muscle:

Let me introduce yet another rabbit hole to go into.

Node Red

It occurred to me that I have a similar device myself. I built some devices that display the time and other data using MQTT. Every ten seconds an MQTT message is published with the time and other data topics. This was all done before I discovered Home Assistant.

I use Node-Red to publish the MQTT data and it only takes five nodes:

Using Node Red or Home Assistant to publish the MQTT messages would mean no change to your existing clock firmware.

I would prefer my devices to run ESPHome, but they use 14-segment LED displays and there are no platforms (similar to an Arduino library) for the 14-segment display.

Thank you for this info. The creator of the firmware for the clock I build also uses Node Red, but his is much more complicated.

If I can accomplish this using ESPhome, would you recommend going that route instead of MQTT/Node Red?

The only thing I’m not sure of with the ESPhome clock firmware I have is that my data wiring is a different order than the person I got this code from. I assume that will need to be changed, but I’m not sure how to do that. If I post the code, would you be able to print me in the right direction?

I can’t imagine why.

It’s entirely your choice. As I said, I would prefer my project be on ESPHome, but the necessary platform doesn’t exist. In your case, you can buy another ESP module and use this project as a way to learn ESPHome. Or you could install the Node Red Add-on in Home Assistant and publish the same time in the same topic/data format that the clock uses today. Or you could send the MQTT messages directly from Home Assistant. Each method has advantages. As I said there are a lot of rabbit holes to get you to the same result.

yes it does

Where? The only place I can find the ht16k33 14-segment LED display in the docs is a couple of feature requests. I did find a three-year old project on GitHub using platform: lcd_ht16k33 but no such platform appears in my search.

You are the first person in the thread to mention ht16k33.

@SoCalDave I think you are on the right track. You could have run esphome on the m5stick, but the d1 should work equally well.

The code from thingiverse I don’t quite understand, but it should get you in the right direction.

The code from

I know this is getting a long way off-topic, but you are the one who said there was a platform for 14-segment LED displays (without a link), so show me ANY platform or component for a 14-segment LED display on Home Assistant or ESPHome. Please.

It is fastled.

Hi all, I am a little stuck on two lines in the ESPhome code for this LED clock. The two I am unsure of are:

  level: DEBUG
# Enable Home Assistant API
  password: !secret hassio_api_password

  password: !secret ota_password

I don’t know which passwords those are (hassio_api_password and ota_password) or where to find them. Can anyone point me in the right direction?

Thank you!


Passwords for ESPHome devices are for the paranoid. You only need


Passwords are optional.

When you first create the device in the ESPHome panel, ESPHome generates passwords for you. But you can use any password you want, and even the same password for every ESPHome device. Just put them in the secrets.yaml file.

Or don’t bother with passwords.

What this phrase is doing

password: !secret hassio_api_password

is saying “get the password from the secrets.yaml file where it is stored with the name hassio_api_password.”

This saves you having to type the password for every esphome yaml file, and also means that when you share your yaml file with the world, you don’t show your password to the world.

This would not work out of the box with esphome as the FAQ tells us :bulb:

Which is the opposite of best practice as it disables any authentication :unlock:

The only password deprecated is the one for the api because it was succeeded by an encryption key which enables transport encryption which is heavily advisable for everyone :key: :white_check_mark:

Again, bad practice - please don’t advise such poor practices even if you don’t care :+1:

I never said it was a good practice, but of the many thousands of ESPHome devices around the world, can you find just ONE that was ever hacked from no API password? Just one.

For the mildly paranoid, you can use the same API password for every device. The one that ESPHome suggests is just a random number.

But passwords are not required.


API passwords are deprecated since half a year and shouldn’t be used at all anymore :point_down:

“Also, ESPHome is deprecating the old password-based authentication for its API in favor of the more secure encryption key. If one of your ESPHome devices is still using a plain password, Home Assistant will notify you by creating an issue in your Repairs dashboard.”

Release Notes: 2023.2: How can I Assist? - Home Assistant

Just use an encryption key which conveniently get’s created for you when using the ESPHome dashboard wizard to create a new node :mage:

That’s just incorrect. ESPHome by default does provide a key which is not a “random number” but a 32-byte base64 encoded string which is used as pre-shared key for encryption. :lock:

You know why ESPHome does that for you, me and others @stevemann? Because many (probably the majority) users have no or little clue about encryption and securing communications. And that’s totally fine as encryption is complex and even a small bug/error can render it unsafe. Worst is probably only your suggestion to “don’t bother” and communicate in plain text without any authentication :man_facepalming:

In case you want to explore new unknowns you could start with a read of the noise protocol which is used under the hood in ESPHome. :bookmark_tabs:

Hi all,

I have another question regarding my code. I have it running, but it definitely isn’t formatted correctly. I believe it is using 1 pixel per segment, but I need it to use 3 pixels per segment. I know there is code I can use to define segments, but I am not sure how to implement that (where in my code it should be placed) and how to get the code to use those segments.

I can upload my code if that will help, but I appreciated any help you can provide.


Please do that.