Last active
January 25, 2026 02:17
-
-
Save clydebarrow/de629c5ace2c345f0703e6074bc50659 to your computer and use it in GitHub Desktop.
Pincode Blueprint
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| blueprint: | |
| name: ESPHome PIN Code Manager | |
| description: > | |
| Manage PIN codes for ESPHome pincode component. Configure up to 10 PIN codes | |
| with names and automatically update the ESPHome device when changes are made. | |
| domain: automation | |
| input: | |
| esphome_device: | |
| name: ESPHome Device | |
| description: The ESPHome device with the pincode component | |
| selector: | |
| device: | |
| integration: esphome | |
| text_sensor_entity: | |
| name: PIN Configuration Text Entity | |
| description: The text entity that receives PIN code updates (e.g., text.pincode_test_pin_code) - must be a 'text' entity, not 'sensor' | |
| selector: | |
| entity: | |
| domain: text | |
| integration: esphome | |
| # PIN Code 1 | |
| pin1_enabled: | |
| name: PIN 1 - Enable | |
| default: true | |
| selector: | |
| boolean: | |
| pin1_code: | |
| name: PIN 1 - Code | |
| description: 4-16 digit PIN code (numbers only) | |
| default: "1234" | |
| selector: | |
| text: | |
| type: text | |
| pin1_name: | |
| name: PIN 1 - Name | |
| description: Name for this PIN (no colons allowed) | |
| default: "Admin" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 2 | |
| pin2_enabled: | |
| name: PIN 2 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin2_code: | |
| name: PIN 2 - Code | |
| default: "5678" | |
| selector: | |
| text: | |
| type: text | |
| pin2_name: | |
| name: PIN 2 - Name | |
| default: "User1" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 3 | |
| pin3_enabled: | |
| name: PIN 3 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin3_code: | |
| name: PIN 3 - Code | |
| default: "9999" | |
| selector: | |
| text: | |
| type: text | |
| pin3_name: | |
| name: PIN 3 - Name | |
| default: "User2" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 4 | |
| pin4_enabled: | |
| name: PIN 4 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin4_code: | |
| name: PIN 4 - Code | |
| default: "1111" | |
| selector: | |
| text: | |
| type: text | |
| pin4_name: | |
| name: PIN 4 - Name | |
| default: "Guest" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 5 | |
| pin5_enabled: | |
| name: PIN 5 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin5_code: | |
| name: PIN 5 - Code | |
| default: "2222" | |
| selector: | |
| text: | |
| type: text | |
| pin5_name: | |
| name: PIN 5 - Name | |
| default: "Cleaner" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 6 | |
| pin6_enabled: | |
| name: PIN 6 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin6_code: | |
| name: PIN 6 - Code | |
| default: "3333" | |
| selector: | |
| text: | |
| type: text | |
| pin6_name: | |
| name: PIN 6 - Name | |
| default: "Service" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 7 | |
| pin7_enabled: | |
| name: PIN 7 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin7_code: | |
| name: PIN 7 - Code | |
| default: "4444" | |
| selector: | |
| text: | |
| type: text | |
| pin7_name: | |
| name: PIN 7 - Name | |
| default: "Temp1" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 8 | |
| pin8_enabled: | |
| name: PIN 8 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin8_code: | |
| name: PIN 8 - Code | |
| default: "5555" | |
| selector: | |
| text: | |
| type: text | |
| pin8_name: | |
| name: PIN 8 - Name | |
| default: "Temp2" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 9 | |
| pin9_enabled: | |
| name: PIN 9 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin9_code: | |
| name: PIN 9 - Code | |
| default: "6666" | |
| selector: | |
| text: | |
| type: text | |
| pin9_name: | |
| name: PIN 9 - Name | |
| default: "Temp3" | |
| selector: | |
| text: | |
| type: text | |
| # PIN Code 10 | |
| pin10_enabled: | |
| name: PIN 10 - Enable | |
| default: false | |
| selector: | |
| boolean: | |
| pin10_code: | |
| name: PIN 10 - Code | |
| default: "7777" | |
| selector: | |
| text: | |
| type: text | |
| pin10_name: | |
| name: PIN 10 - Name | |
| default: "Temp4" | |
| selector: | |
| text: | |
| type: text | |
| mode: single | |
| max_exceeded: silent | |
| variables: | |
| pin1_enabled: !input pin1_enabled | |
| pin1_code: !input pin1_code | |
| pin1_name: !input pin1_name | |
| pin2_enabled: !input pin2_enabled | |
| pin2_code: !input pin2_code | |
| pin2_name: !input pin2_name | |
| pin3_enabled: !input pin3_enabled | |
| pin3_code: !input pin3_code | |
| pin3_name: !input pin3_name | |
| pin4_enabled: !input pin4_enabled | |
| pin4_code: !input pin4_code | |
| pin4_name: !input pin4_name | |
| pin5_enabled: !input pin5_enabled | |
| pin5_code: !input pin5_code | |
| pin5_name: !input pin5_name | |
| pin6_enabled: !input pin6_enabled | |
| pin6_code: !input pin6_code | |
| pin6_name: !input pin6_name | |
| pin7_enabled: !input pin7_enabled | |
| pin7_code: !input pin7_code | |
| pin7_name: !input pin7_name | |
| pin8_enabled: !input pin8_enabled | |
| pin8_code: !input pin8_code | |
| pin8_name: !input pin8_name | |
| pin9_enabled: !input pin9_enabled | |
| pin9_code: !input pin9_code | |
| pin9_name: !input pin9_name | |
| pin10_enabled: !input pin10_enabled | |
| pin10_code: !input pin10_code | |
| pin10_name: !input pin10_name | |
| text_sensor_entity: !input text_sensor_entity | |
| esphome_device: !input esphome_device | |
| input_text_helper: !input input_text_helper | |
| pin_codes: > | |
| {% set pins = [] %} | |
| {% if pin1_enabled %} | |
| {% set pins = pins + [pin1_code ~ ':' ~ pin1_name] %} | |
| {% endif %} | |
| {% if pin2_enabled %} | |
| {% set pins = pins + [pin2_code ~ ':' ~ pin2_name] %} | |
| {% endif %} | |
| {% if pin3_enabled %} | |
| {% set pins = pins + [pin3_code ~ ':' ~ pin3_name] %} | |
| {% endif %} | |
| {% if pin4_enabled %} | |
| {% set pins = pins + [pin4_code ~ ':' ~ pin4_name] %} | |
| {% endif %} | |
| {% if pin5_enabled %} | |
| {% set pins = pins + [pin5_code ~ ':' ~ pin5_name] %} | |
| {% endif %} | |
| {% if pin6_enabled %} | |
| {% set pins = pins + [pin6_code ~ ':' ~ pin6_name] %} | |
| {% endif %} | |
| {% if pin7_enabled %} | |
| {% set pins = pins + [pin7_code ~ ':' ~ pin7_name] %} | |
| {% endif %} | |
| {% if pin8_enabled %} | |
| {% set pins = pins + [pin8_code ~ ':' ~ pin8_name] %} | |
| {% endif %} | |
| {% if pin9_enabled %} | |
| {% set pins = pins + [pin9_code ~ ':' ~ pin9_name] %} | |
| {% endif %} | |
| {% if pin10_enabled %} | |
| {% set pins = pins + [pin10_code ~ ':' ~ pin10_name] %} | |
| {% endif %} | |
| {{ pins | join(', ') }} | |
| trigger: | |
| - platform: homeassistant | |
| event: start | |
| - platform: event | |
| event_type: automation_reloaded | |
| - platform: time_pattern | |
| hours: "/1" | |
| action: | |
| - service: text.set_value | |
| target: | |
| entity_id: "{{ text_sensor_entity }}" | |
| data: | |
| value: "{{ pin_codes }}" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment