Sensor mostrar strings em vez de valores

Sim, sim, quando digo que da pra fazer ouvir qualquer tópico mqtt é o sensor mqtt mesmo, inclusive se publicar em um topico especial pelo esp da pra fazer o ha criar o sensor sozinho.
Ai voce faz automacao na mudanca de estado para notificacao.

Na verdade a parte de controle de acesso eu deixaria no proprio ESP mesmo o que eu quis dizer e que voce pode enviar os mesmos comandos que esta enviando por blueetooth pelo mqtt usando interface do HA ai a parte de cadastro fica pelo HA.

Ah sim ai fica questao de preferencia pessoal eu como programador vejo deixar esses ids assim hardcoded na lambda como má pratica e me daria um pouco de ansiedade usar assim kkkkk
Funcionar funciona mas eu prefiro ter isso alterável em tempo de execução.

Não é bem uma linguagem, é tudo declarativo.

Se fosse pensar em programação
pensa em switch como uma classe, turn_on como um metodo da classe switch, e trigger relay o objjeto que voce ta chamando a funcao
Se voce olhar o codigo com mais calma pode ver que trigger_relay foi definido em outra parte do progranma e la foi declarado o pino

Como voce ja sabe arduino pra esse projeto especifico eu manteria em arduino. Esphome é otimo pra coisas simples, como reles pra iluminação e interruptores, em 5 minutos voce tem pronto algo que demoraria significativamente mais no arduino. Vale muito a pena aprender a usar esphome e tasmota.
Mas pra fazer coisas mais complexas como nesse caso poder alterar digitais por aplicativo da muito mais trabalho com esphome do que com arduino.

Inclusive fiz um projeto semelhante para casa dos meus pais se quiser dar uma olhada:

No fim acabei nem integrando com HA porque eles nao sentiram necessidade eu fiz toda gerencia de adicionar digitais pelo proprio dispositivo.
Mas fazer em arduino me deu a liberdade de por exemplo fazer ações diferentes quando segurar uma digital valida por certo tempo no sensor, que com esphome não sei nem se é possivel.