Good method to use 8-bit 74HC595 shift register like Arduino IDE can?

I’m hoping to update an older ESP8266 project to use ESPhome, that drives six Nixie display tubes.
It’s a classic Nixie clock, and gets Network Time (NTP) to set the time and date on it’s own. SSID and PW are set at compile time.
The project runs and looks great, but in an automated home it would be nice to have it turn on or off via presence detection in HA to save it’s tube life, and maybe display other things that can be done with 6 digits when you have the flexibility of ESPhome yaml…

To that end I looked at ways to drive the four 74HC595 Shift Registers in ESPhome, and came up blank other than by bit banging via the serial bus, and probably long and ugly coding to serial write to them that way. I could not find any support for a function like Arduino’s shiftOut in ESPhome.

Anyway, somebody might have done this and point me in the right direction to efficiently driving the 74HC595’s with ESPhome?

Serial to Parallel Shifting-Out with a 74HC595 | Arduino Documentation

SNx4HC595 8-Bit Shift Registers With 3-State Output Registers datasheet (Rev. J) (

NixieClock/PCB/NixieClock.pdf at master · gztproject/NixieClock · GitHub

The built in component doesn’t achieve what you need?

No not really. That seems to create a list of switch: pins for each I/O of the 74HC595 accessible individually.
The 74HC595’s on the old project drive BCD to decimal drivers for the Nixies (74141’s), so I was looking for ideas to send display bytes for each BCD chip via them without creating something to go from a large array of switches.
In my head I was hoping to find something that I can define 74HC595 pins to be a group of BCD drivers without going to the low level of setting individual pins (switches).
Hope that makes sense, I’m on the bleeding edge of my knowledge here…

Edit: To be clear, I didn’t write the original project code, it’s way beyond my experience. I do find ESPhome yaml much easier thankfully.