{"id":21363573,"url":"https://github.com/acvigue/esphome-nixie2","last_synced_at":"2025-04-15T11:39:03.594Z","repository":{"id":246253359,"uuid":"820547999","full_name":"acvigue/esphome-nixie2","owner":"acvigue","description":"ESPHome powered Smart Nixie Clock with USB-C Power Delivery","archived":false,"fork":false,"pushed_at":"2025-03-26T00:28:43.000Z","size":5053,"stargazers_count":7,"open_issues_count":8,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T03:35:08.233Z","etag":null,"topics":["altium","esp-idf","esp32","esphome","nixie"],"latest_commit_sha":null,"homepage":"https://vigue.me","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acvigue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"acvigue"}},"created_at":"2024-06-26T17:32:33.000Z","updated_at":"2025-03-20T20:51:45.000Z","dependencies_parsed_at":"2024-11-22T07:01:28.671Z","dependency_job_id":null,"html_url":"https://github.com/acvigue/esphome-nixie2","commit_stats":null,"previous_names":["acvigue/esphome-nixie2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acvigue%2Fesphome-nixie2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acvigue%2Fesphome-nixie2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acvigue%2Fesphome-nixie2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acvigue%2Fesphome-nixie2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acvigue","download_url":"https://codeload.github.com/acvigue/esphome-nixie2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249062113,"owners_count":21206624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["altium","esp-idf","esp32","esphome","nixie"],"created_at":"2024-11-22T06:19:58.796Z","updated_at":"2025-04-15T11:39:03.563Z","avatar_url":"https://github.com/acvigue.png","language":"C++","funding_links":["https://github.com/sponsors/acvigue"],"categories":[],"sub_categories":[],"readme":"# ESPHome for Nixie2\n\nIncludes custom component for HV5222 low-side shift register\n\nRead more [here](https://vigue.me/nixie-clock)\n\nAltium 3D Viewer \u0026 Assembly Preview: [here](https://365.altium.com/files/F7F2C198-6388-416A-9E94-9685C6B443AA)\n\nExample configuration:\n\n```yaml\nesphome:\n  name: nixieclock\n  friendly_name: nixieclock\n  on_boot:\n    then:\n      - number.set:\n          id: nixie_1\n          value: 9\n      - number.set:\n          id: nixie_2\n          value: 9\n      - number.set:\n          id: nixie_3\n          value: 9\n      - number.set:\n          id: nixie_4\n          value: 9\n      - number.set:\n          id: nixie_5\n          value: 9\n      - number.set:\n          id: nixie_6\n          value: 9\n\nesp32:\n  board: esp32-s3-devkitc-1\n  framework:\n    type: esp-idf\n\n# Enable logging\nlogger:\n  level: WARN\n\nexternal_components:\n  - source: github://acvigue/esphome-nixie2\n    components: [hv5222]\n    refresh: 1s\n\n# Enable Home Assistant API\napi:\n  encryption:\n    key: \"##########\"\n\nota:\n  - platform: esphome\n    password: \"##########\"\n\nwifi:\n  ssid: !secret wifi_ssid\n  password: !secret wifi_password\n\n  # Enable fallback hotspot (captive portal) in case wifi connection fails\n  ap:\n    ssid: \"Nixieclock Fallback Hotspot\"\n    password: \"##########\"\n\nglobals:\n  - id: military_time\n    type: bool\n    restore_value: yes\n    initial_value: \"false\"\n  - id: cleaning\n    type: bool\n    restore_value: no\n    initial_value: \"false\"\n\nlight:\n  - platform: esp32_rmt_led_strip\n    rgb_order: GRB\n    pin: 21\n    num_leds: 6\n    rmt_channel: 1\n    chipset: ws2812\n    is_rgbw: True\n    name: \"Backlight\"\n    restore_mode: RESTORE_DEFAULT_OFF\n  - platform: monochromatic\n    output: calibrated_oe_out\n    id: oe\n    name: \"HV5222 OE\"\n    restore_mode: RESTORE_DEFAULT_OFF\n\nspi:\n  id: spi_hv5222\n  clk_pin: 12\n  mosi_pin: 10\n  interface: software\n\nhv5222:\n  - id: myHV5222\n    spi_id: spi_hv5222\n    data_rate: 10MHz\n    spi_mode: MODE0\n    count: 2\n\noutput:\n  - platform: ledc\n    pin: 11\n    frequency: 18kHz\n    id: oe_out\n    inverted: True\n  - platform: template\n    id: calibrated_oe_out\n    type: float\n    write_action:\n      - if:\n          condition:\n            lambda: return state \u003e 0;\n          then:\n            - output.set_level:\n                id: oe_out\n                level: !lambda |-\n                  const int min_percentage=40;\n                  float min=static_cast\u003cfloat\u003e(min_percentage)/100.0f;\n                  float k=(1.0f-min)/0.99f;\n                  float m=(0.99f-1.0f+min)/0.99f;\n                  return k*state+m;\n          else:\n            - output.set_level:\n                id: oe_out\n                level: 0\n\nnumber:\n  - platform: hv5222\n    id: nixie_6\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n  - platform: hv5222\n    id: nixie_5\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]\n  - platform: hv5222\n    id: nixie_4\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]\n  - platform: hv5222\n    id: nixie_3\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [30, 31, 32, 33, 34, 35, 36, 37, 38, 39]\n  - platform: hv5222\n    id: nixie_2\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [40, 41, 42, 43, 44, 45, 46, 47, 48, 49]\n  - platform: hv5222\n    id: nixie_1\n    count_back: True\n    count_back_speed: 50\n    hv5222: myHV5222\n    pins: [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]\n\ntime:\n  - platform: sntp\n    id: sntp_time\n    on_time:\n      - cron: \"0 0 * * * *\"\n        then:\n          - globals.set:\n              id: cleaning\n              value: \"true\"\n          - repeat:\n              count: 45\n              then:\n                - number.increment:\n                    id: nixie_1\n                - number.increment:\n                    id: nixie_2\n                - number.increment:\n                    id: nixie_3\n                - number.increment:\n                    id: nixie_4\n                - number.increment:\n                    id: nixie_5\n                - number.increment:\n                    id: nixie_6\n                - delay: 0.25s\n          - globals.set:\n              id: cleaning\n              value: \"false\"\n      - cron: \"* * * * * *\"\n        then:\n          lambda: |\n            if(!id(cleaning)) {\n            auto time = id(sntp_time).now();\n            auto call1 = id(nixie_1).make_call();\n            call1.set_value(time.second % 10);\n            call1.perform();\n            auto call2 = id(nixie_2).make_call();\n            call2.set_value(time.second / 10);\n            call2.perform();\n            auto call3 = id(nixie_3).make_call();\n            call3.set_value(time.minute % 10);\n            call3.perform();\n            auto call4 = id(nixie_4).make_call();\n            call4.set_value(time.minute / 10);\n            call4.perform();\n            auto hours = time.hour;\n            if(!id(military_time)) {\n            hours = hours % 12;\n            if (hours == 0) hours = 12;\n            }\n            auto call5 = id(nixie_5).make_call();\n            call5.set_value(hours % 10);\n            call5.perform();\n            auto call6 = id(nixie_6).make_call();\n            call6.set_value(hours / 10);\n            call6.perform();\n            }\n\ncaptive_portal:\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facvigue%2Fesphome-nixie2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facvigue%2Fesphome-nixie2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facvigue%2Fesphome-nixie2/lists"}