mirror of
https://github.com/esphome/esphome.git
synced 2026-08-23 22:56:19 +00:00
Compare commits
base: github/esphome:api-uint16-message-type
github/esphome:dev
github/esphome:noise-session-resume
github/esphome:esp8266-arduino-toolchain
github/esphome:esp8266-native-ninja-emission
github/esphome:beta
github/esphome:release
github/esphome:esp8266-native-build-spec
github/esphome:esp8266-native-build-infra
github/esphome:esp8266-native-build-surgery
github/esphome:esp8266-native-framework-installer
github/esphome:esp8266-native-library-backend
github/esphome:esp8266-native-toolchain-plumbing
github/esphome:esp8266-native-shared-helpers
github/esphome:esp8266-native-library-converter
github/esphome:noise-libsodium-dep
github/esphome:noise-component
github/esphome:noise-ota
github/esphome:esp8266-native-converter-hardening
github/esphome:esp8266-native-idedata-helpers
github/esphome:gpio-binary-sensor-isr-define
github/esphome:jesserockz-2026-617
github/esphome:espidf-size-summary-guards
github/esphome:get-bool-env-spellings
github/esphome:writer-build-info-malformed
github/esphome:time-filter-posix-tz
github/esphome:light-filter-json-schema
github/esphome:esp32-ble-filter-advertising
github/esphome:uart-filter-debugger
github/esphome:mqtt-filter-entity-sources
github/esphome:i2s-speaker-filter-spdif
github/esphome:filter-source-files-from-defines
github/esphome:jesserockz-2026-578
github/esphome:network_tcp_send_buffer
github/esphome:bt_congestion_warn_once
github/esphome:remove-posix-tz-parser-2026-9
github/esphome:esp32_exclude_wifi_stack
github/esphome:str_contains_ignore_case_p
github/esphome:radon-eye-single-node
github/esphome:neutral-ble-client
github/esphome:web-server-idf-filter-multipart
github/esphome:jesserockz-2026-607
github/esphome:api-uint16-message-type
github/esphome:web-server-offline-hint
github/esphome:espidf_parallel_tool_prefetch
github/esphome:esp8266-sw-serial-edge-rx
github/esphome:proxy-subscribe-acks
github/esphome:jesserockz-2026-584
github/esphome:lvgl-setup-priority-float-literal
github/esphome:ld2420-listen-first-startup
github/esphome:api-noise-c-branch-test
github/esphome:uart-idf-write-before-setup-guard
github/esphome:ld2420-extract-frame-builders
github/esphome:sensor-lazy-integration-imports
github/esphome:binary-sensor-lazy-integration-imports
github/esphome:logger-lazy-platform-imports
github/esphome:integration3
github/esphome:jesserockz-2026-503
github/esphome:rp2-lwip-plus-3slots-test
github/esphome:kahrendt-va-runtime-model-loading
github/esphome:radon-eye-neutral-gatt
github/esphome:gatt-consumer-support
github/esphome:20260218-zigbee-proxy
github/esphome:dnm-codspeed-deepcopy-proof
github/esphome:feat/nrf52_pwm
github/esphome:jesserockz-2026-441
github/esphome:json-escape-core-helper
github/esphome:store-yaml-firmware
github/esphome:dependabot/pip/click-8.4.2
github/esphome:integration
github/esphome:logger-boot-log-buffer
github/esphome:jesserockz-2026-378
github/esphome:jesserockz-2026-446
github/esphome:jesserockz-2026-392
github/esphome:jesserockz-2026-436
github/esphome:dependabot/pip/smpclient-7.3.0
github/esphome:esp32-log-v2-idf61
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-369
github/esphome:jesserockz-2026-364
github/esphome:sendspin-artwork
github/esphome:copilot/usb-uart-fix-baud-rate-forwarding
github/esphome:esp32-idf-spaces-path-fix
github/esphome:dnm-memory-impact-proof
github/esphome:koan/vscode-component-not-found-key
github/esphome:core-blocking-warning-source
github/esphome:esp8266-stock-delay-millis
github/esphome:multi-interface-poc
github/esphome:esp32-loop-task-stack-dram-attr
github/esphome:c6-test-partitions
github/esphome:speedup-mipi-display-tests
github/esphome:lvgl-lazy-widget-schemas
github/esphome:ci-uv-installs-probe
github/esphome:ci/sync-device-classes-uv
github/esphome:socket-lwip-raw-udp
github/esphome:test-dashboard-deprecation-bot
github/esphome:core-prebuilt-dir-upload
github/esphome:dnm-socket-recv-diag-15953
github/esphome:test-device-builder-ci
github/esphome:claude/network-switching-config-gL3sq
github/esphome:bk72xx-crash-handler
github/esphome:sensor-timeout-filter-scheduler
github/esphome:dnm_test_api_connection_comment
github/esphome:dnm_test_cover_comment
github/esphome:split-hal-per-platform
github/esphome:esp32-preferences-defer-init-log
github/esphome:api-server-incomplete-type-fix
github/esphome:scheduler-memw-outlined
github/esphome:scheduler-memw-only
github/esphome:app-loop-optimize-speed
github/esphome:scheduler-snapshot-counters
github/esphome:config-version-hash-constexpr
github/esphome:core-chunked-setup
github/esphome:pr-15656
github/esphome:light-inline-color-mode-to-bit
github/esphome:ledc-iram-safety
github/esphome:remote-receiver-iram-safety
github/esphome:benchmark-crypto-o2
github/esphome:proto-speed-optimized
github/esphome:fast-millis-rp2040
github/esphome:core-fast-select-scan-stats
github/esphome:api-unroll-varint-encode
github/esphome:sx1509-interrupt-pin
github/esphome:fix-rotary-encoder-templatable-type
github/esphome:max6956_gpio_cache_banks
github/esphome:remove_posix_tz_parser
github/esphome:remove-set-retry
github/esphome:20260327-bsec2-tidying
github/esphome:20260324-ir_rf_proxy-rx-freq
github/esphome:jesserockz-2026-040
github/esphome:copilot/lvgl-v9-api
github/esphome:esp32-log-v2
github/esphome:copilot/audit-assertion-calls
github/esphome:copilot/add-deprecated-component-label
github/esphome:pipsolar_teleinfo
github/esphome:copilot/fix-10045
github/esphome:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
github/esphome:copilot/fix-internal-gpio-attach-issues
github/esphome:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
github/esphome:copilot/fix-deprecated-pulse-counter-driver
github/esphome:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
github/esphome:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
github/esphome:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
github/esphome:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
github/esphome:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
github/esphome:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
github/esphome:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
github/esphome:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
github/esphome:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
github/esphome:jesserockz-2025-297
github/esphome:jesserockz-2025-423
github/esphome:jesserockz-2025-370
github/esphome:copilot/fix-9982
github/esphome:jesserockz-2025-352
github/esphome:revert-9439-lib_compat_mode_fix
github/esphome:jesserockz-2025-326
github/esphome:jesserockz-2025-322
github/esphome:copilot/fix-9603
github/esphome:jesserockz-2025-287
github/esphome:jesserockz-2025-250
github/esphome:jesserockz-2025-217
github/esphome:jesserockz-2025-102
github/esphome:jesserockz-2025-064
github/esphome:ld2420
github/esphome:jesserockz-2024-578
github/esphome:jesserockz-2024-565
github/esphome:jesserockz-2023-304
github/esphome:jesserockz-2023-232
github/esphome:jesserockz-2023-284
github/esphome:jesserockz-2024-416
github/esphome:power-supply-logs
github/esphome:jesserockz-2024-399
github/esphome:jesserockz-2024-251
github/esphome:jesserockz-2024-248
github/esphome:jesserockz-2024-210
github/esphome:bluetooth-proxy-log-device-requests
github/esphome:jesserockz-2024-196
github/esphome:jesserockz-2024-151
github/esphome:jesserockz-2023-284-2
github/esphome:jesserockz-2023-415
github/esphome:jesserockz-2023-409
github/esphome:ina226-extra-logs
github/esphome:remove-unique-id
github/esphome:jesserockz-2023-284-v2.6
github/esphome:socket-client-mode
github/esphome:jesserockz-2022-199
github/esphome:jesserockz-2023-121
github/esphome:jesserockz-2023-110
github/esphome:jesserockz-2023-045
github/esphome:jesserockz-2022-398
github/esphome:jesserockz-2022-381
github/esphome:jesserockz-2022-321
github/esphome:jesserockz-2022-284
github/esphome:jesserockz-2022-172
github/esphome:jesserockz-2022-094
github/esphome:ble-server-controller
github/esphome:oral-b-brush
github/esphome:improv_serial/log-levels
github/esphome:2026.8.1
github/esphome:2026.8.0
github/esphome:2026.8.0b6
github/esphome:2026.8.0b5
github/esphome:2026.8.0b4
github/esphome:2026.8.0b3
github/esphome:2026.8.0b2
github/esphome:2026.8.0b1
github/esphome:2026.7.4
github/esphome:2026.7.3
github/esphome:2026.7.2
github/esphome:2026.7.1
github/esphome:2026.7.0
github/esphome:2026.7.0b4
github/esphome:2026.7.0b3
github/esphome:2026.7.0b2
github/esphome:2026.7.0b1
github/esphome:2026.6.5
github/esphome:2026.6.4
github/esphome:2026.6.3
github/esphome:2026.6.2
github/esphome:2026.6.1
github/esphome:2026.6.0
github/esphome:2026.6.0b4
github/esphome:2026.6.0b3
github/esphome:2026.6.0b2
github/esphome:2026.6.0b1
github/esphome:2026.5.3
github/esphome:2026.5.2
github/esphome:2026.5.1
github/esphome:2026.5.0
github/esphome:2026.5.0b4
github/esphome:2026.5.0b3
github/esphome:2026.5.0b2
github/esphome:2026.5.0b1
github/esphome:2026.4.5
github/esphome:2026.4.4
github/esphome:2026.4.3
github/esphome:2026.4.2
github/esphome:2026.4.1
github/esphome:2026.4.0
github/esphome:2026.4.0b3
github/esphome:2026.4.0b2
github/esphome:2026.4.0b1
github/esphome:2026.3.3
github/esphome:2026.3.2
github/esphome:2026.3.1
github/esphome:2026.3.0
github/esphome:2026.3.0b5
github/esphome:2026.3.0b4
github/esphome:2026.3.0b3
github/esphome:2026.3.0b2
github/esphome:2026.3.0b1
github/esphome:2026.2.4
github/esphome:2026.2.3
github/esphome:2026.2.2
github/esphome:2026.2.1
github/esphome:2026.2.0
github/esphome:2026.2.0b5
github/esphome:2026.2.0b4
github/esphome:2026.2.0b3
github/esphome:2026.2.0b2
github/esphome:2026.2.0b1
github/esphome:2026.1.5
github/esphome:2026.1.4
github/esphome:2026.1.3
github/esphome:2026.1.2
github/esphome:2026.1.1
github/esphome:2026.1.0
github/esphome:2026.1.0b4
github/esphome:2026.1.0b3
github/esphome:2025.12.7
github/esphome:2026.1.0b2
github/esphome:2026.1.0b1
github/esphome:2025.12.6
github/esphome:2025.12.5
github/esphome:2025.12.4
github/esphome:2025.12.3
github/esphome:2025.12.2
github/esphome:2025.12.1
github/esphome:2025.12.0
github/esphome:2025.12.0b5
github/esphome:2025.12.0b4
github/esphome:2025.12.0b3
github/esphome:2025.12.0b2
github/esphome:2025.12.0b1
github/esphome:2025.11.5
github/esphome:2025.11.4
github/esphome:2025.11.3
github/esphome:2025.11.2
github/esphome:2025.11.1
github/esphome:2025.11.0
github/esphome:2025.11.0b5
github/esphome:2025.11.0b4
github/esphome:2025.11.0b3
github/esphome:2025.11.0b2
github/esphome:2025.11.0b1
github/esphome:2025.10.5
github/esphome:2025.10.4
github/esphome:2025.10.3
github/esphome:2025.10.2
github/esphome:2025.10.1
github/esphome:2025.10.0
github/esphome:2025.10.0b4
github/esphome:2025.10.0b3
github/esphome:2025.10.0b2
github/esphome:2025.10.0b1
github/esphome:2025.9.3
github/esphome:2025.9.2
github/esphome:2025.9.1
github/esphome:2025.9.0
github/esphome:2025.9.0b4
github/esphome:2025.9.0b3
github/esphome:2025.9.0b2
github/esphome:2025.9.0b1
github/esphome:2025.8.4
github/esphome:2025.8.3
github/esphome:2025.8.2
github/esphome:2025.8.1
github/esphome:2025.8.0
github/esphome:2025.8.0b4
github/esphome:2025.8.0b3
github/esphome:2025.8.0b2
github/esphome:2025.8.0b1
github/esphome:2025.7.5
github/esphome:2025.7.4
github/esphome:2025.7.3
github/esphome:2025.7.2
github/esphome:2025.7.1
github/esphome:2025.7.0
github/esphome:2025.7.0b5
github/esphome:2025.7.0b4
github/esphome:2025.7.0b3
github/esphome:2025.7.0b2
github/esphome:2025.7.0b1
github/esphome:2025.6.3
github/esphome:2025.6.2
github/esphome:2025.6.1
github/esphome:2025.6.0
github/esphome:2025.6.0b3
github/esphome:2025.6.0b2
github/esphome:2025.6.0b1
github/esphome:2025.5.2
github/esphome:2025.5.1
github/esphome:2025.5.0
github/esphome:2025.5.0b6
github/esphome:2025.5.0b5
github/esphome:2025.5.0b4
github/esphome:2025.5.0b3
github/esphome:2025.5.0b2
github/esphome:2025.5.0b1
github/esphome:2025.4.2
github/esphome:2025.4.1
github/esphome:2025.4.0
github/esphome:2025.4.0b3
github/esphome:2025.4.0b2
github/esphome:2025.4.0b1
github/esphome:2025.3.3
github/esphome:2025.3.2
github/esphome:2025.3.1
github/esphome:2025.3.0
github/esphome:2025.3.0b5
github/esphome:2025.3.0b4
github/esphome:2025.3.0b3
github/esphome:2025.3.0b2
github/esphome:2025.3.0b1
github/esphome:2025.2.2
github/esphome:2025.2.1
github/esphome:2025.2.0
github/esphome:2025.2.0b6
github/esphome:2025.2.0b5
github/esphome:2025.2.0b4
github/esphome:2025.2.0b3
github/esphome:2025.2.0b2
github/esphome:2025.2.0b1
github/esphome:2024.12.4
github/esphome:2024.12.3
github/esphome:2024.12.2
github/esphome:2024.12.1
github/esphome:2024.12.0
github/esphome:2024.12.0b3
github/esphome:2024.12.0b2
github/esphome:2024.12.0b1
github/esphome:2024.11.3
github/esphome:2024.11.2
github/esphome:2024.11.1
github/esphome:2024.11.0
github/esphome:2024.11.0b4
github/esphome:2024.11.0b3
github/esphome:2024.11.0b2
github/esphome:2024.11.0b1
github/esphome:2024.10.3
github/esphome:2024.10.2
github/esphome:2024.10.1
github/esphome:2024.10.0
github/esphome:2024.10.0b2
github/esphome:2024.10.0b1
github/esphome:2024.9.2
github/esphome:2024.9.1
github/esphome:2024.9.0
github/esphome:2024.9.0b4
github/esphome:2024.9.0b3
github/esphome:2024.9.0b2
github/esphome:2024.9.0b1
github/esphome:2024.8.3
github/esphome:2024.8.2
github/esphome:2024.8.1
github/esphome:2024.8.0
github/esphome:2024.8.0b4
github/esphome:2024.8.0b3
github/esphome:2024.8.0b2
github/esphome:2024.8.0b1
github/esphome:2024.7.3
github/esphome:2024.7.2
github/esphome:2024.7.1
github/esphome:2024.7.0
github/esphome:2024.7.0b4
github/esphome:2024.7.0b3
github/esphome:2024.7.0b2
github/esphome:2024.7.0b1
github/esphome:2024.6.6
github/esphome:2024.6.5
github/esphome:2024.6.4
github/esphome:2024.6.3
github/esphome:2024.6.2
github/esphome:2024.6.1
github/esphome:2024.6.0
github/esphome:2024.6.0b5
github/esphome:2024.6.0b4
github/esphome:2024.6.0b3
github/esphome:2024.6.0b2
github/esphome:2024.6.0b1
github/esphome:2024.5.5
github/esphome:2024.5.4
github/esphome:2024.5.3
github/esphome:2024.5.2
github/esphome:2024.5.1
github/esphome:2024.5.0
github/esphome:2024.5.0b6
github/esphome:2024.5.0b5
github/esphome:2024.5.0b4
github/esphome:2024.5.0b3
github/esphome:2024.5.0b2
github/esphome:2024.5.0b1
github/esphome:2024.4.2
github/esphome:2024.4.1
github/esphome:2024.4.0
github/esphome:2024.4.0b3
github/esphome:2024.4.0b2
github/esphome:2024.4.0b1
github/esphome:2024.3.2
github/esphome:2024.3.1
github/esphome:2024.3.0
github/esphome:2024.3.0b5
github/esphome:2024.3.0b4
github/esphome:2024.3.0b3
github/esphome:2024.3.0b2
github/esphome:2024.3.0b1
github/esphome:2024.2.2
github/esphome:2024.2.1
github/esphome:2024.2.0
github/esphome:2024.2.0b3
github/esphome:2024.2.0b2
github/esphome:2024.2.0b1
github/esphome:2023.12.9
github/esphome:2023.12.8
github/esphome:2023.12.7
github/esphome:2023.12.6
github/esphome:2023.12.5
github/esphome:2023.12.4
github/esphome:2023.12.3
github/esphome:2023.12.2
github/esphome:2023.12.1
github/esphome:2023.12.0
github/esphome:2023.12.0b6
github/esphome:2023.12.0b5
github/esphome:2023.12.0b4
github/esphome:2023.12.0b3
github/esphome:2023.12.0b2
github/esphome:2023.12.0b1
github/esphome:2023.11.6
github/esphome:2023.11.5
github/esphome:2023.11.4
github/esphome:2023.11.3
github/esphome:2023.11.2
github/esphome:2023.11.1
github/esphome:2023.11.0
github/esphome:2023.11.0b7
github/esphome:2023.11.0b6
github/esphome:2023.11.0b5
github/esphome:2023.11.0b4
github/esphome:2023.11.0b3
github/esphome:2023.11.0b2
github/esphome:2023.11.0b1
github/esphome:2023.10.6
github/esphome:2023.10.5
github/esphome:2023.10.4
github/esphome:2023.10.3
github/esphome:2023.10.2
github/esphome:2023.10.1
github/esphome:2023.10.0
github/esphome:2023.10.0b4
github/esphome:2023.10.0b3
github/esphome:2023.10.0b2
github/esphome:2023.10.0b1
github/esphome:2023.9.3
github/esphome:2023.9.2
github/esphome:2023.9.1
github/esphome:2023.9.0
github/esphome:2023.9.0b4
github/esphome:2023.9.0b3
github/esphome:2023.9.0b2
github/esphome:2023.9.0b1
github/esphome:2023.8.3
github/esphome:2023.8.2
github/esphome:2023.8.1
github/esphome:2023.8.0
github/esphome:2023.8.0b4
github/esphome:2023.8.0b3
github/esphome:2023.8.0b2
github/esphome:2023.8.0b1
github/esphome:2023.7.1
github/esphome:2023.7.0
github/esphome:2023.7.0b3
github/esphome:2023.7.0b2
github/esphome:2023.7.0b1
github/esphome:2023.6.5
github/esphome:2023.6.4
github/esphome:2023.6.3
github/esphome:2023.6.2
github/esphome:2023.6.1
github/esphome:2023.6.0
github/esphome:2023.6.0b7
github/esphome:2023.6.0b6
github/esphome:2023.6.0b5
github/esphome:2023.6.0b4
github/esphome:2023.6.0b3
github/esphome:2023.6.0b2
github/esphome:2023.6.0b1
github/esphome:2023.5.5
github/esphome:2023.5.4
github/esphome:2023.5.3
github/esphome:2023.5.2
github/esphome:2023.5.1
github/esphome:2023.5.0
github/esphome:2023.5.0b5
github/esphome:2023.5.0b4
github/esphome:2023.5.0b3
github/esphome:2023.5.0b2
github/esphome:2023.5.0b1
github/esphome:2023.4.4
github/esphome:2023.4.3
github/esphome:2023.4.2
github/esphome:2023.4.1
github/esphome:2023.4.0
github/esphome:2023.4.0b4
github/esphome:2023.4.0b3
github/esphome:2023.4.0b2
github/esphome:2023.4.0b1
github/esphome:2023.3.2
github/esphome:2023.3.1
github/esphome:2023.3.0
github/esphome:2023.3.0b6
github/esphome:2023.3.0b5
github/esphome:2023.3.0b4
github/esphome:2023.3.0b3
github/esphome:2023.3.0b2
github/esphome:2023.3.0b1
github/esphome:2023.2.4
github/esphome:2023.2.3
github/esphome:2023.2.2
github/esphome:2023.2.1
github/esphome:2023.2.0
github/esphome:2023.2.0b5
github/esphome:2023.2.0b4
github/esphome:2023.2.0b3
github/esphome:2023.2.0b2
github/esphome:2023.2.0b1
github/esphome:2022.12.8
github/esphome:2022.12.7
github/esphome:2022.12.6
github/esphome:2022.12.5
github/esphome:2022.12.4
github/esphome:2022.12.3
github/esphome:2022.12.2
github/esphome:2022.12.1
github/esphome:2022.12.0
github/esphome:2022.12.0b6
github/esphome:2022.12.0b5
github/esphome:2022.12.0b4
github/esphome:2022.12.0b3
github/esphome:2022.12.0b2
github/esphome:2022.12.0b1
github/esphome:2022.11.5
github/esphome:2022.11.4
github/esphome:2022.11.3
github/esphome:2022.11.2
github/esphome:2022.11.1
github/esphome:2022.11.0
github/esphome:2022.11.0b6
github/esphome:2022.11.0b5
github/esphome:2022.11.0b4
github/esphome:2022.11.0b3
github/esphome:2022.11.0b2
github/esphome:2022.11.0b1
github/esphome:2022.10.2
github/esphome:2022.10.1
github/esphome:2022.10.0
github/esphome:2022.10.0b2
github/esphome:2022.10.0b1
github/esphome:2022.9.4
github/esphome:2022.9.3
github/esphome:2022.9.2
github/esphome:2022.9.1
github/esphome:2022.9.0
github/esphome:2022.9.0b5
github/esphome:2022.9.0b4
github/esphome:2022.9.0b3
github/esphome:2022.9.0b2
github/esphome:2022.9.0b1
github/esphome:2022.8.3
github/esphome:2022.8.2
github/esphome:2022.8.1
github/esphome:2022.8.0
github/esphome:2022.8.0b3
github/esphome:2022.8.0b2
github/esphome:2022.8.0b1
github/esphome:2022.6.3
github/esphome:2022.6.2
github/esphome:2022.6.1
github/esphome:2022.6.0
github/esphome:2022.6.0b4
github/esphome:2022.6.0b3
github/esphome:2022.6.0b2
github/esphome:2022.6.0b1
github/esphome:2022.5.1
github/esphome:2022.5.0
github/esphome:2022.5.0b4
github/esphome:2022.5.0b3
github/esphome:2022.5.0b2
github/esphome:2022.5.0b1
github/esphome:2022.4.0
github/esphome:2022.4.0b4
github/esphome:2022.4.0b3
github/esphome:2022.4.0b2
github/esphome:2022.4.0b1
github/esphome:2022.3.2
github/esphome:2022.3.1
github/esphome:2022.3.0
github/esphome:2022.3.0b2
github/esphome:2022.3.0b1
github/esphome:2022.2.6
github/esphome:2022.2.5
github/esphome:2022.2.4
github/esphome:2022.2.3
github/esphome:2022.2.2
github/esphome:2022.2.1
github/esphome:2022.2.0
github/esphome:2022.2.0b3
github/esphome:2022.2.0b2
github/esphome:2022.2.0b1
github/esphome:2022.1.4
github/esphome:2022.1.3
github/esphome:2022.1.2
github/esphome:2022.1.1
github/esphome:2022.1.0
github/esphome:2022.1.0b4
github/esphome:2022.1.0b3
github/esphome:2022.1.0b2
github/esphome:2022.1.0b1
github/esphome:2021.12.3
github/esphome:2021.12.2
github/esphome:2021.12.1
github/esphome:2021.12.0
github/esphome:2021.12.0b6
github/esphome:2021.12.0b5
github/esphome:2021.12.0b4
github/esphome:2021.12.0b3
github/esphome:2021.12.0b2
github/esphome:2021.12.0b1
github/esphome:2021.11.4
github/esphome:2021.11.3
github/esphome:2021.11.2
github/esphome:2021.11.1
github/esphome:2021.11.0
github/esphome:2021.11.0b9
github/esphome:2021.11.0b8
github/esphome:2021.11.0b7
github/esphome:2021.11.0b6
github/esphome:2021.11.0b5
github/esphome:2021.11.0b4
github/esphome:2021.11.0b3
github/esphome:2021.11.0b2
github/esphome:2021.11.0b1
github/esphome:2021.10.3
github/esphome:2021.10.2
github/esphome:2021.10.1
github/esphome:2021.10.0
github/esphome:2021.10.0b11
github/esphome:2021.10.0b10
github/esphome:2021.10.0b9
github/esphome:2021.10.0b8
github/esphome:2021.10.0b7
github/esphome:2021.10.0b6
github/esphome:2021.10.0b5
github/esphome:2021.10.0b4
github/esphome:2021.10.0b3
github/esphome:2021.10.0b2
github/esphome:2021.10.0b1
github/esphome:2021.9.3
github/esphome:2021.9.2
github/esphome:2021.9.1
github/esphome:2021.9.0
github/esphome:2021.9.0b5
github/esphome:2021.9.0b4
github/esphome:2021.9.0b3
github/esphome:2021.9.0b2
github/esphome:2021.9.0b1
github/esphome:2021.8.2
github/esphome:2021.8.1
github/esphome:2021.8.0
github/esphome:v1.21.0b3
github/esphome:v1.21.0b2
github/esphome:v1.21.0b1
github/esphome:v1.20.4
github/esphome:v1.20.3
github/esphome:v1.20.2
github/esphome:v1.20.1
github/esphome:v1.20.0
github/esphome:v1.20.0b6
github/esphome:v1.20.0b5
github/esphome:v1.20.0b4
github/esphome:v1.20.0b3
github/esphome:v1.20.0b2
github/esphome:v1.20.0b1
github/esphome:v1.19.4
github/esphome:v1.19.3
github/esphome:v1.19.2
github/esphome:v1.19.1
github/esphome:v1.19.0
github/esphome:v1.19.0b7
github/esphome:v1.19.0b6
github/esphome:v1.19.0b5
github/esphome:v1.19.0b4
github/esphome:v1.19.0b3
github/esphome:v1.19.0b2
github/esphome:v1.19.0b1
github/esphome:v1.18.0
github/esphome:v1.18.0b4
github/esphome:v1.18.0b3
github/esphome:v1.18.0b2
github/esphome:v1.18.0b1
github/esphome:v1.17.2
github/esphome:v1.17.1
github/esphome:v1.17.0
github/esphome:v1.17.0b1
github/esphome:v1.16.2
github/esphome:v1.16.1
github/esphome:v1.16.0
github/esphome:v1.16.0b8
github/esphome:v1.16.0b7
github/esphome:v1.16.0b6
github/esphome:v1.16.0b5
github/esphome:v1.16.0b4
github/esphome:v1.16.0b3
github/esphome:v1.16.0b2
github/esphome:v1.16.0b1
github/esphome:v1.15.3
github/esphome:v1.15.2
github/esphome:v1.15.1
github/esphome:v1.15.0
github/esphome:v1.15.0b4
github/esphome:v1.15.0b3
github/esphome:v1.15.0b2
github/esphome:v1.15.0b1
github/esphome:v1.14.5
github/esphome:v1.14.4
github/esphome:v1.14.3
github/esphome:v1.14.2
github/esphome:v1.14.1
github/esphome:v1.14.0
github/esphome:v1.14.0b5
github/esphome:v1.14.0b4
github/esphome:v1.14.0b3
github/esphome:v1.14.0b2
github/esphome:v1.14.0b1
github/esphome:v1.13.6
github/esphome:v1.13.5
github/esphome:v1.13.4
github/esphome:v1.13.3
github/esphome:v1.13.2
github/esphome:v1.13.1
github/esphome:v1.13.0
github/esphome:v1.13.0b7
github/esphome:v1.13.0b6
github/esphome:v1.13.0b5
github/esphome:v1.13.0b4
github/esphome:v1.13.0b3
github/esphome:v1.13.0b2
github/esphome:v1.13.0b1
github/esphome:v1.12.2
github/esphome:v1.12.1
github/esphome:v1.12.0
github/esphome:v1.12.0b4
github/esphome:v1.12.0b3
github/esphome:v1.12.0b2
github/esphome:v1.12.0b1
github/esphome:v1.11.2
github/esphome:v1.11.1
github/esphome:v1.11.0
github/esphome:v1.11.0b3
github/esphome:v1.11.0b2
github/esphome:v1.11.0b1
github/esphome:v1.10.1
github/esphome:v1.10.0
github/esphome:v1.10.0b2
github/esphome:v1.10.0b1
github/esphome:v1.9.3
github/esphome:v1.9.2
github/esphome:v1.9.1
github/esphome:v1.9.0
github/esphome:v1.9.0b6
github/esphome:v1.9.0b5
github/esphome:v1.9.0b4
github/esphome:v1.9.0b3
github/esphome:v1.9.0b2
github/esphome:v1.9.0b1
github/esphome:v1.8.2
github/esphome:v1.8.1
github/esphome:v1.8.0
github/esphome:v1.7.0
github/esphome:v1.6.2
github/esphome:v1.6.1
github/esphome:v1.6.0
github/esphome:v1.5.3
github/esphome:v1.5.2
github/esphome:v1.5.1
github/esphome:v1.5.0
github/esphome:v1.4.0
github/esphome:v1.3.0
github/esphome:v1.2.2
github/esphome:v1.2.1
github/esphome:v1.1
...
compare: github/esphome:fast-millis-rp2040
github/esphome:noise-session-resume
github/esphome:esp8266-arduino-toolchain
github/esphome:esp8266-native-ninja-emission
github/esphome:dev
github/esphome:beta
github/esphome:release
github/esphome:esp8266-native-build-spec
github/esphome:esp8266-native-build-infra
github/esphome:esp8266-native-build-surgery
github/esphome:esp8266-native-framework-installer
github/esphome:esp8266-native-library-backend
github/esphome:esp8266-native-toolchain-plumbing
github/esphome:esp8266-native-shared-helpers
github/esphome:esp8266-native-library-converter
github/esphome:noise-libsodium-dep
github/esphome:noise-component
github/esphome:noise-ota
github/esphome:esp8266-native-converter-hardening
github/esphome:esp8266-native-idedata-helpers
github/esphome:gpio-binary-sensor-isr-define
github/esphome:jesserockz-2026-617
github/esphome:espidf-size-summary-guards
github/esphome:get-bool-env-spellings
github/esphome:writer-build-info-malformed
github/esphome:time-filter-posix-tz
github/esphome:light-filter-json-schema
github/esphome:esp32-ble-filter-advertising
github/esphome:uart-filter-debugger
github/esphome:mqtt-filter-entity-sources
github/esphome:i2s-speaker-filter-spdif
github/esphome:filter-source-files-from-defines
github/esphome:jesserockz-2026-578
github/esphome:network_tcp_send_buffer
github/esphome:bt_congestion_warn_once
github/esphome:remove-posix-tz-parser-2026-9
github/esphome:esp32_exclude_wifi_stack
github/esphome:str_contains_ignore_case_p
github/esphome:radon-eye-single-node
github/esphome:neutral-ble-client
github/esphome:web-server-idf-filter-multipart
github/esphome:jesserockz-2026-607
github/esphome:api-uint16-message-type
github/esphome:web-server-offline-hint
github/esphome:espidf_parallel_tool_prefetch
github/esphome:esp8266-sw-serial-edge-rx
github/esphome:proxy-subscribe-acks
github/esphome:jesserockz-2026-584
github/esphome:lvgl-setup-priority-float-literal
github/esphome:ld2420-listen-first-startup
github/esphome:api-noise-c-branch-test
github/esphome:uart-idf-write-before-setup-guard
github/esphome:ld2420-extract-frame-builders
github/esphome:sensor-lazy-integration-imports
github/esphome:binary-sensor-lazy-integration-imports
github/esphome:logger-lazy-platform-imports
github/esphome:integration3
github/esphome:jesserockz-2026-503
github/esphome:rp2-lwip-plus-3slots-test
github/esphome:kahrendt-va-runtime-model-loading
github/esphome:radon-eye-neutral-gatt
github/esphome:gatt-consumer-support
github/esphome:20260218-zigbee-proxy
github/esphome:dnm-codspeed-deepcopy-proof
github/esphome:feat/nrf52_pwm
github/esphome:jesserockz-2026-441
github/esphome:json-escape-core-helper
github/esphome:store-yaml-firmware
github/esphome:dependabot/pip/click-8.4.2
github/esphome:integration
github/esphome:logger-boot-log-buffer
github/esphome:jesserockz-2026-378
github/esphome:jesserockz-2026-446
github/esphome:jesserockz-2026-392
github/esphome:jesserockz-2026-436
github/esphome:dependabot/pip/smpclient-7.3.0
github/esphome:esp32-log-v2-idf61
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-369
github/esphome:jesserockz-2026-364
github/esphome:sendspin-artwork
github/esphome:copilot/usb-uart-fix-baud-rate-forwarding
github/esphome:esp32-idf-spaces-path-fix
github/esphome:dnm-memory-impact-proof
github/esphome:koan/vscode-component-not-found-key
github/esphome:core-blocking-warning-source
github/esphome:esp8266-stock-delay-millis
github/esphome:multi-interface-poc
github/esphome:esp32-loop-task-stack-dram-attr
github/esphome:c6-test-partitions
github/esphome:speedup-mipi-display-tests
github/esphome:lvgl-lazy-widget-schemas
github/esphome:ci-uv-installs-probe
github/esphome:ci/sync-device-classes-uv
github/esphome:socket-lwip-raw-udp
github/esphome:test-dashboard-deprecation-bot
github/esphome:core-prebuilt-dir-upload
github/esphome:dnm-socket-recv-diag-15953
github/esphome:test-device-builder-ci
github/esphome:claude/network-switching-config-gL3sq
github/esphome:bk72xx-crash-handler
github/esphome:sensor-timeout-filter-scheduler
github/esphome:dnm_test_api_connection_comment
github/esphome:dnm_test_cover_comment
github/esphome:split-hal-per-platform
github/esphome:esp32-preferences-defer-init-log
github/esphome:api-server-incomplete-type-fix
github/esphome:scheduler-memw-outlined
github/esphome:scheduler-memw-only
github/esphome:app-loop-optimize-speed
github/esphome:scheduler-snapshot-counters
github/esphome:config-version-hash-constexpr
github/esphome:core-chunked-setup
github/esphome:pr-15656
github/esphome:light-inline-color-mode-to-bit
github/esphome:ledc-iram-safety
github/esphome:remote-receiver-iram-safety
github/esphome:benchmark-crypto-o2
github/esphome:proto-speed-optimized
github/esphome:fast-millis-rp2040
github/esphome:core-fast-select-scan-stats
github/esphome:api-unroll-varint-encode
github/esphome:sx1509-interrupt-pin
github/esphome:fix-rotary-encoder-templatable-type
github/esphome:max6956_gpio_cache_banks
github/esphome:remove_posix_tz_parser
github/esphome:remove-set-retry
github/esphome:20260327-bsec2-tidying
github/esphome:20260324-ir_rf_proxy-rx-freq
github/esphome:jesserockz-2026-040
github/esphome:copilot/lvgl-v9-api
github/esphome:esp32-log-v2
github/esphome:copilot/audit-assertion-calls
github/esphome:copilot/add-deprecated-component-label
github/esphome:pipsolar_teleinfo
github/esphome:copilot/fix-10045
github/esphome:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
github/esphome:copilot/fix-internal-gpio-attach-issues
github/esphome:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
github/esphome:copilot/fix-deprecated-pulse-counter-driver
github/esphome:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
github/esphome:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
github/esphome:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
github/esphome:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
github/esphome:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
github/esphome:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
github/esphome:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
github/esphome:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
github/esphome:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
github/esphome:jesserockz-2025-297
github/esphome:jesserockz-2025-423
github/esphome:jesserockz-2025-370
github/esphome:copilot/fix-9982
github/esphome:jesserockz-2025-352
github/esphome:revert-9439-lib_compat_mode_fix
github/esphome:jesserockz-2025-326
github/esphome:jesserockz-2025-322
github/esphome:copilot/fix-9603
github/esphome:jesserockz-2025-287
github/esphome:jesserockz-2025-250
github/esphome:jesserockz-2025-217
github/esphome:jesserockz-2025-102
github/esphome:jesserockz-2025-064
github/esphome:ld2420
github/esphome:jesserockz-2024-578
github/esphome:jesserockz-2024-565
github/esphome:jesserockz-2023-304
github/esphome:jesserockz-2023-232
github/esphome:jesserockz-2023-284
github/esphome:jesserockz-2024-416
github/esphome:power-supply-logs
github/esphome:jesserockz-2024-399
github/esphome:jesserockz-2024-251
github/esphome:jesserockz-2024-248
github/esphome:jesserockz-2024-210
github/esphome:bluetooth-proxy-log-device-requests
github/esphome:jesserockz-2024-196
github/esphome:jesserockz-2024-151
github/esphome:jesserockz-2023-284-2
github/esphome:jesserockz-2023-415
github/esphome:jesserockz-2023-409
github/esphome:ina226-extra-logs
github/esphome:remove-unique-id
github/esphome:jesserockz-2023-284-v2.6
github/esphome:socket-client-mode
github/esphome:jesserockz-2022-199
github/esphome:jesserockz-2023-121
github/esphome:jesserockz-2023-110
github/esphome:jesserockz-2023-045
github/esphome:jesserockz-2022-398
github/esphome:jesserockz-2022-381
github/esphome:jesserockz-2022-321
github/esphome:jesserockz-2022-284
github/esphome:jesserockz-2022-172
github/esphome:jesserockz-2022-094
github/esphome:ble-server-controller
github/esphome:oral-b-brush
github/esphome:improv_serial/log-levels
github/esphome:2026.8.1
github/esphome:2026.8.0
github/esphome:2026.8.0b6
github/esphome:2026.8.0b5
github/esphome:2026.8.0b4
github/esphome:2026.8.0b3
github/esphome:2026.8.0b2
github/esphome:2026.8.0b1
github/esphome:2026.7.4
github/esphome:2026.7.3
github/esphome:2026.7.2
github/esphome:2026.7.1
github/esphome:2026.7.0
github/esphome:2026.7.0b4
github/esphome:2026.7.0b3
github/esphome:2026.7.0b2
github/esphome:2026.7.0b1
github/esphome:2026.6.5
github/esphome:2026.6.4
github/esphome:2026.6.3
github/esphome:2026.6.2
github/esphome:2026.6.1
github/esphome:2026.6.0
github/esphome:2026.6.0b4
github/esphome:2026.6.0b3
github/esphome:2026.6.0b2
github/esphome:2026.6.0b1
github/esphome:2026.5.3
github/esphome:2026.5.2
github/esphome:2026.5.1
github/esphome:2026.5.0
github/esphome:2026.5.0b4
github/esphome:2026.5.0b3
github/esphome:2026.5.0b2
github/esphome:2026.5.0b1
github/esphome:2026.4.5
github/esphome:2026.4.4
github/esphome:2026.4.3
github/esphome:2026.4.2
github/esphome:2026.4.1
github/esphome:2026.4.0
github/esphome:2026.4.0b3
github/esphome:2026.4.0b2
github/esphome:2026.4.0b1
github/esphome:2026.3.3
github/esphome:2026.3.2
github/esphome:2026.3.1
github/esphome:2026.3.0
github/esphome:2026.3.0b5
github/esphome:2026.3.0b4
github/esphome:2026.3.0b3
github/esphome:2026.3.0b2
github/esphome:2026.3.0b1
github/esphome:2026.2.4
github/esphome:2026.2.3
github/esphome:2026.2.2
github/esphome:2026.2.1
github/esphome:2026.2.0
github/esphome:2026.2.0b5
github/esphome:2026.2.0b4
github/esphome:2026.2.0b3
github/esphome:2026.2.0b2
github/esphome:2026.2.0b1
github/esphome:2026.1.5
github/esphome:2026.1.4
github/esphome:2026.1.3
github/esphome:2026.1.2
github/esphome:2026.1.1
github/esphome:2026.1.0
github/esphome:2026.1.0b4
github/esphome:2026.1.0b3
github/esphome:2025.12.7
github/esphome:2026.1.0b2
github/esphome:2026.1.0b1
github/esphome:2025.12.6
github/esphome:2025.12.5
github/esphome:2025.12.4
github/esphome:2025.12.3
github/esphome:2025.12.2
github/esphome:2025.12.1
github/esphome:2025.12.0
github/esphome:2025.12.0b5
github/esphome:2025.12.0b4
github/esphome:2025.12.0b3
github/esphome:2025.12.0b2
github/esphome:2025.12.0b1
github/esphome:2025.11.5
github/esphome:2025.11.4
github/esphome:2025.11.3
github/esphome:2025.11.2
github/esphome:2025.11.1
github/esphome:2025.11.0
github/esphome:2025.11.0b5
github/esphome:2025.11.0b4
github/esphome:2025.11.0b3
github/esphome:2025.11.0b2
github/esphome:2025.11.0b1
github/esphome:2025.10.5
github/esphome:2025.10.4
github/esphome:2025.10.3
github/esphome:2025.10.2
github/esphome:2025.10.1
github/esphome:2025.10.0
github/esphome:2025.10.0b4
github/esphome:2025.10.0b3
github/esphome:2025.10.0b2
github/esphome:2025.10.0b1
github/esphome:2025.9.3
github/esphome:2025.9.2
github/esphome:2025.9.1
github/esphome:2025.9.0
github/esphome:2025.9.0b4
github/esphome:2025.9.0b3
github/esphome:2025.9.0b2
github/esphome:2025.9.0b1
github/esphome:2025.8.4
github/esphome:2025.8.3
github/esphome:2025.8.2
github/esphome:2025.8.1
github/esphome:2025.8.0
github/esphome:2025.8.0b4
github/esphome:2025.8.0b3
github/esphome:2025.8.0b2
github/esphome:2025.8.0b1
github/esphome:2025.7.5
github/esphome:2025.7.4
github/esphome:2025.7.3
github/esphome:2025.7.2
github/esphome:2025.7.1
github/esphome:2025.7.0
github/esphome:2025.7.0b5
github/esphome:2025.7.0b4
github/esphome:2025.7.0b3
github/esphome:2025.7.0b2
github/esphome:2025.7.0b1
github/esphome:2025.6.3
github/esphome:2025.6.2
github/esphome:2025.6.1
github/esphome:2025.6.0
github/esphome:2025.6.0b3
github/esphome:2025.6.0b2
github/esphome:2025.6.0b1
github/esphome:2025.5.2
github/esphome:2025.5.1
github/esphome:2025.5.0
github/esphome:2025.5.0b6
github/esphome:2025.5.0b5
github/esphome:2025.5.0b4
github/esphome:2025.5.0b3
github/esphome:2025.5.0b2
github/esphome:2025.5.0b1
github/esphome:2025.4.2
github/esphome:2025.4.1
github/esphome:2025.4.0
github/esphome:2025.4.0b3
github/esphome:2025.4.0b2
github/esphome:2025.4.0b1
github/esphome:2025.3.3
github/esphome:2025.3.2
github/esphome:2025.3.1
github/esphome:2025.3.0
github/esphome:2025.3.0b5
github/esphome:2025.3.0b4
github/esphome:2025.3.0b3
github/esphome:2025.3.0b2
github/esphome:2025.3.0b1
github/esphome:2025.2.2
github/esphome:2025.2.1
github/esphome:2025.2.0
github/esphome:2025.2.0b6
github/esphome:2025.2.0b5
github/esphome:2025.2.0b4
github/esphome:2025.2.0b3
github/esphome:2025.2.0b2
github/esphome:2025.2.0b1
github/esphome:2024.12.4
github/esphome:2024.12.3
github/esphome:2024.12.2
github/esphome:2024.12.1
github/esphome:2024.12.0
github/esphome:2024.12.0b3
github/esphome:2024.12.0b2
github/esphome:2024.12.0b1
github/esphome:2024.11.3
github/esphome:2024.11.2
github/esphome:2024.11.1
github/esphome:2024.11.0
github/esphome:2024.11.0b4
github/esphome:2024.11.0b3
github/esphome:2024.11.0b2
github/esphome:2024.11.0b1
github/esphome:2024.10.3
github/esphome:2024.10.2
github/esphome:2024.10.1
github/esphome:2024.10.0
github/esphome:2024.10.0b2
github/esphome:2024.10.0b1
github/esphome:2024.9.2
github/esphome:2024.9.1
github/esphome:2024.9.0
github/esphome:2024.9.0b4
github/esphome:2024.9.0b3
github/esphome:2024.9.0b2
github/esphome:2024.9.0b1
github/esphome:2024.8.3
github/esphome:2024.8.2
github/esphome:2024.8.1
github/esphome:2024.8.0
github/esphome:2024.8.0b4
github/esphome:2024.8.0b3
github/esphome:2024.8.0b2
github/esphome:2024.8.0b1
github/esphome:2024.7.3
github/esphome:2024.7.2
github/esphome:2024.7.1
github/esphome:2024.7.0
github/esphome:2024.7.0b4
github/esphome:2024.7.0b3
github/esphome:2024.7.0b2
github/esphome:2024.7.0b1
github/esphome:2024.6.6
github/esphome:2024.6.5
github/esphome:2024.6.4
github/esphome:2024.6.3
github/esphome:2024.6.2
github/esphome:2024.6.1
github/esphome:2024.6.0
github/esphome:2024.6.0b5
github/esphome:2024.6.0b4
github/esphome:2024.6.0b3
github/esphome:2024.6.0b2
github/esphome:2024.6.0b1
github/esphome:2024.5.5
github/esphome:2024.5.4
github/esphome:2024.5.3
github/esphome:2024.5.2
github/esphome:2024.5.1
github/esphome:2024.5.0
github/esphome:2024.5.0b6
github/esphome:2024.5.0b5
github/esphome:2024.5.0b4
github/esphome:2024.5.0b3
github/esphome:2024.5.0b2
github/esphome:2024.5.0b1
github/esphome:2024.4.2
github/esphome:2024.4.1
github/esphome:2024.4.0
github/esphome:2024.4.0b3
github/esphome:2024.4.0b2
github/esphome:2024.4.0b1
github/esphome:2024.3.2
github/esphome:2024.3.1
github/esphome:2024.3.0
github/esphome:2024.3.0b5
github/esphome:2024.3.0b4
github/esphome:2024.3.0b3
github/esphome:2024.3.0b2
github/esphome:2024.3.0b1
github/esphome:2024.2.2
github/esphome:2024.2.1
github/esphome:2024.2.0
github/esphome:2024.2.0b3
github/esphome:2024.2.0b2
github/esphome:2024.2.0b1
github/esphome:2023.12.9
github/esphome:2023.12.8
github/esphome:2023.12.7
github/esphome:2023.12.6
github/esphome:2023.12.5
github/esphome:2023.12.4
github/esphome:2023.12.3
github/esphome:2023.12.2
github/esphome:2023.12.1
github/esphome:2023.12.0
github/esphome:2023.12.0b6
github/esphome:2023.12.0b5
github/esphome:2023.12.0b4
github/esphome:2023.12.0b3
github/esphome:2023.12.0b2
github/esphome:2023.12.0b1
github/esphome:2023.11.6
github/esphome:2023.11.5
github/esphome:2023.11.4
github/esphome:2023.11.3
github/esphome:2023.11.2
github/esphome:2023.11.1
github/esphome:2023.11.0
github/esphome:2023.11.0b7
github/esphome:2023.11.0b6
github/esphome:2023.11.0b5
github/esphome:2023.11.0b4
github/esphome:2023.11.0b3
github/esphome:2023.11.0b2
github/esphome:2023.11.0b1
github/esphome:2023.10.6
github/esphome:2023.10.5
github/esphome:2023.10.4
github/esphome:2023.10.3
github/esphome:2023.10.2
github/esphome:2023.10.1
github/esphome:2023.10.0
github/esphome:2023.10.0b4
github/esphome:2023.10.0b3
github/esphome:2023.10.0b2
github/esphome:2023.10.0b1
github/esphome:2023.9.3
github/esphome:2023.9.2
github/esphome:2023.9.1
github/esphome:2023.9.0
github/esphome:2023.9.0b4
github/esphome:2023.9.0b3
github/esphome:2023.9.0b2
github/esphome:2023.9.0b1
github/esphome:2023.8.3
github/esphome:2023.8.2
github/esphome:2023.8.1
github/esphome:2023.8.0
github/esphome:2023.8.0b4
github/esphome:2023.8.0b3
github/esphome:2023.8.0b2
github/esphome:2023.8.0b1
github/esphome:2023.7.1
github/esphome:2023.7.0
github/esphome:2023.7.0b3
github/esphome:2023.7.0b2
github/esphome:2023.7.0b1
github/esphome:2023.6.5
github/esphome:2023.6.4
github/esphome:2023.6.3
github/esphome:2023.6.2
github/esphome:2023.6.1
github/esphome:2023.6.0
github/esphome:2023.6.0b7
github/esphome:2023.6.0b6
github/esphome:2023.6.0b5
github/esphome:2023.6.0b4
github/esphome:2023.6.0b3
github/esphome:2023.6.0b2
github/esphome:2023.6.0b1
github/esphome:2023.5.5
github/esphome:2023.5.4
github/esphome:2023.5.3
github/esphome:2023.5.2
github/esphome:2023.5.1
github/esphome:2023.5.0
github/esphome:2023.5.0b5
github/esphome:2023.5.0b4
github/esphome:2023.5.0b3
github/esphome:2023.5.0b2
github/esphome:2023.5.0b1
github/esphome:2023.4.4
github/esphome:2023.4.3
github/esphome:2023.4.2
github/esphome:2023.4.1
github/esphome:2023.4.0
github/esphome:2023.4.0b4
github/esphome:2023.4.0b3
github/esphome:2023.4.0b2
github/esphome:2023.4.0b1
github/esphome:2023.3.2
github/esphome:2023.3.1
github/esphome:2023.3.0
github/esphome:2023.3.0b6
github/esphome:2023.3.0b5
github/esphome:2023.3.0b4
github/esphome:2023.3.0b3
github/esphome:2023.3.0b2
github/esphome:2023.3.0b1
github/esphome:2023.2.4
github/esphome:2023.2.3
github/esphome:2023.2.2
github/esphome:2023.2.1
github/esphome:2023.2.0
github/esphome:2023.2.0b5
github/esphome:2023.2.0b4
github/esphome:2023.2.0b3
github/esphome:2023.2.0b2
github/esphome:2023.2.0b1
github/esphome:2022.12.8
github/esphome:2022.12.7
github/esphome:2022.12.6
github/esphome:2022.12.5
github/esphome:2022.12.4
github/esphome:2022.12.3
github/esphome:2022.12.2
github/esphome:2022.12.1
github/esphome:2022.12.0
github/esphome:2022.12.0b6
github/esphome:2022.12.0b5
github/esphome:2022.12.0b4
github/esphome:2022.12.0b3
github/esphome:2022.12.0b2
github/esphome:2022.12.0b1
github/esphome:2022.11.5
github/esphome:2022.11.4
github/esphome:2022.11.3
github/esphome:2022.11.2
github/esphome:2022.11.1
github/esphome:2022.11.0
github/esphome:2022.11.0b6
github/esphome:2022.11.0b5
github/esphome:2022.11.0b4
github/esphome:2022.11.0b3
github/esphome:2022.11.0b2
github/esphome:2022.11.0b1
github/esphome:2022.10.2
github/esphome:2022.10.1
github/esphome:2022.10.0
github/esphome:2022.10.0b2
github/esphome:2022.10.0b1
github/esphome:2022.9.4
github/esphome:2022.9.3
github/esphome:2022.9.2
github/esphome:2022.9.1
github/esphome:2022.9.0
github/esphome:2022.9.0b5
github/esphome:2022.9.0b4
github/esphome:2022.9.0b3
github/esphome:2022.9.0b2
github/esphome:2022.9.0b1
github/esphome:2022.8.3
github/esphome:2022.8.2
github/esphome:2022.8.1
github/esphome:2022.8.0
github/esphome:2022.8.0b3
github/esphome:2022.8.0b2
github/esphome:2022.8.0b1
github/esphome:2022.6.3
github/esphome:2022.6.2
github/esphome:2022.6.1
github/esphome:2022.6.0
github/esphome:2022.6.0b4
github/esphome:2022.6.0b3
github/esphome:2022.6.0b2
github/esphome:2022.6.0b1
github/esphome:2022.5.1
github/esphome:2022.5.0
github/esphome:2022.5.0b4
github/esphome:2022.5.0b3
github/esphome:2022.5.0b2
github/esphome:2022.5.0b1
github/esphome:2022.4.0
github/esphome:2022.4.0b4
github/esphome:2022.4.0b3
github/esphome:2022.4.0b2
github/esphome:2022.4.0b1
github/esphome:2022.3.2
github/esphome:2022.3.1
github/esphome:2022.3.0
github/esphome:2022.3.0b2
github/esphome:2022.3.0b1
github/esphome:2022.2.6
github/esphome:2022.2.5
github/esphome:2022.2.4
github/esphome:2022.2.3
github/esphome:2022.2.2
github/esphome:2022.2.1
github/esphome:2022.2.0
github/esphome:2022.2.0b3
github/esphome:2022.2.0b2
github/esphome:2022.2.0b1
github/esphome:2022.1.4
github/esphome:2022.1.3
github/esphome:2022.1.2
github/esphome:2022.1.1
github/esphome:2022.1.0
github/esphome:2022.1.0b4
github/esphome:2022.1.0b3
github/esphome:2022.1.0b2
github/esphome:2022.1.0b1
github/esphome:2021.12.3
github/esphome:2021.12.2
github/esphome:2021.12.1
github/esphome:2021.12.0
github/esphome:2021.12.0b6
github/esphome:2021.12.0b5
github/esphome:2021.12.0b4
github/esphome:2021.12.0b3
github/esphome:2021.12.0b2
github/esphome:2021.12.0b1
github/esphome:2021.11.4
github/esphome:2021.11.3
github/esphome:2021.11.2
github/esphome:2021.11.1
github/esphome:2021.11.0
github/esphome:2021.11.0b9
github/esphome:2021.11.0b8
github/esphome:2021.11.0b7
github/esphome:2021.11.0b6
github/esphome:2021.11.0b5
github/esphome:2021.11.0b4
github/esphome:2021.11.0b3
github/esphome:2021.11.0b2
github/esphome:2021.11.0b1
github/esphome:2021.10.3
github/esphome:2021.10.2
github/esphome:2021.10.1
github/esphome:2021.10.0
github/esphome:2021.10.0b11
github/esphome:2021.10.0b10
github/esphome:2021.10.0b9
github/esphome:2021.10.0b8
github/esphome:2021.10.0b7
github/esphome:2021.10.0b6
github/esphome:2021.10.0b5
github/esphome:2021.10.0b4
github/esphome:2021.10.0b3
github/esphome:2021.10.0b2
github/esphome:2021.10.0b1
github/esphome:2021.9.3
github/esphome:2021.9.2
github/esphome:2021.9.1
github/esphome:2021.9.0
github/esphome:2021.9.0b5
github/esphome:2021.9.0b4
github/esphome:2021.9.0b3
github/esphome:2021.9.0b2
github/esphome:2021.9.0b1
github/esphome:2021.8.2
github/esphome:2021.8.1
github/esphome:2021.8.0
github/esphome:v1.21.0b3
github/esphome:v1.21.0b2
github/esphome:v1.21.0b1
github/esphome:v1.20.4
github/esphome:v1.20.3
github/esphome:v1.20.2
github/esphome:v1.20.1
github/esphome:v1.20.0
github/esphome:v1.20.0b6
github/esphome:v1.20.0b5
github/esphome:v1.20.0b4
github/esphome:v1.20.0b3
github/esphome:v1.20.0b2
github/esphome:v1.20.0b1
github/esphome:v1.19.4
github/esphome:v1.19.3
github/esphome:v1.19.2
github/esphome:v1.19.1
github/esphome:v1.19.0
github/esphome:v1.19.0b7
github/esphome:v1.19.0b6
github/esphome:v1.19.0b5
github/esphome:v1.19.0b4
github/esphome:v1.19.0b3
github/esphome:v1.19.0b2
github/esphome:v1.19.0b1
github/esphome:v1.18.0
github/esphome:v1.18.0b4
github/esphome:v1.18.0b3
github/esphome:v1.18.0b2
github/esphome:v1.18.0b1
github/esphome:v1.17.2
github/esphome:v1.17.1
github/esphome:v1.17.0
github/esphome:v1.17.0b1
github/esphome:v1.16.2
github/esphome:v1.16.1
github/esphome:v1.16.0
github/esphome:v1.16.0b8
github/esphome:v1.16.0b7
github/esphome:v1.16.0b6
github/esphome:v1.16.0b5
github/esphome:v1.16.0b4
github/esphome:v1.16.0b3
github/esphome:v1.16.0b2
github/esphome:v1.16.0b1
github/esphome:v1.15.3
github/esphome:v1.15.2
github/esphome:v1.15.1
github/esphome:v1.15.0
github/esphome:v1.15.0b4
github/esphome:v1.15.0b3
github/esphome:v1.15.0b2
github/esphome:v1.15.0b1
github/esphome:v1.14.5
github/esphome:v1.14.4
github/esphome:v1.14.3
github/esphome:v1.14.2
github/esphome:v1.14.1
github/esphome:v1.14.0
github/esphome:v1.14.0b5
github/esphome:v1.14.0b4
github/esphome:v1.14.0b3
github/esphome:v1.14.0b2
github/esphome:v1.14.0b1
github/esphome:v1.13.6
github/esphome:v1.13.5
github/esphome:v1.13.4
github/esphome:v1.13.3
github/esphome:v1.13.2
github/esphome:v1.13.1
github/esphome:v1.13.0
github/esphome:v1.13.0b7
github/esphome:v1.13.0b6
github/esphome:v1.13.0b5
github/esphome:v1.13.0b4
github/esphome:v1.13.0b3
github/esphome:v1.13.0b2
github/esphome:v1.13.0b1
github/esphome:v1.12.2
github/esphome:v1.12.1
github/esphome:v1.12.0
github/esphome:v1.12.0b4
github/esphome:v1.12.0b3
github/esphome:v1.12.0b2
github/esphome:v1.12.0b1
github/esphome:v1.11.2
github/esphome:v1.11.1
github/esphome:v1.11.0
github/esphome:v1.11.0b3
github/esphome:v1.11.0b2
github/esphome:v1.11.0b1
github/esphome:v1.10.1
github/esphome:v1.10.0
github/esphome:v1.10.0b2
github/esphome:v1.10.0b1
github/esphome:v1.9.3
github/esphome:v1.9.2
github/esphome:v1.9.1
github/esphome:v1.9.0
github/esphome:v1.9.0b6
github/esphome:v1.9.0b5
github/esphome:v1.9.0b4
github/esphome:v1.9.0b3
github/esphome:v1.9.0b2
github/esphome:v1.9.0b1
github/esphome:v1.8.2
github/esphome:v1.8.1
github/esphome:v1.8.0
github/esphome:v1.7.0
github/esphome:v1.6.2
github/esphome:v1.6.1
github/esphome:v1.6.0
github/esphome:v1.5.3
github/esphome:v1.5.2
github/esphome:v1.5.1
github/esphome:v1.5.0
github/esphome:v1.4.0
github/esphome:v1.3.0
github/esphome:v1.2.2
github/esphome:v1.2.1
github/esphome:v1.1
6
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
feb734c8b7 |
[rp2040] Add interrupt guard to millis() accumulator
Wiegand and ZyAura call millis() from ISR handlers on all platforms including RP2040 (no platform restrictions on either component). The accumulator's mutable statics need protection from concurrent ISR access. Uses save_and_disable_interrupts()/restore_interrupts() — same pattern as InterruptLock in rp2040/helpers.cpp. |
||
|
|
12d227dee8 |
[rp2040] Bound the while loop in millis() accumulator
Same approach as ESP8266: split into common path (while loop, ≤10 iterations) and rare path (constant-time /1000 multiply for gaps >10 ms). RP2040 has no ISR callers so no interrupt guard needed, but the bounded loop avoids worst-case latency if millis() is called from a context that was blocked for a long time. |
||
|
|
85c51967f5 |
[rp2040] Merge accumulator into millis(), struct statics, cleanup
Merge millis_accumulator() into millis() and pack statics into a struct for smaller code. Remove unused USE_FAST_MILLIS_ACCUMULATOR define. Add NOLINTNEXTLINE for __wrap_millis reserved identifier. |
||
|
|
31aa00f1d5 | [rp2040] Add USE_FAST_MILLIS_ACCUMULATOR define for benchmark guard | ||
|
|
a50a24aed3 | [rp2040] Fix clang-format: drop trailing underscore from static function | ||
|
|
357835cc20 |
[rp2040] Replace millis() with fast accumulator, wrap Arduino callers
Arduino-pico's millis() uses time_us_64() (64-bit hardware timer read) then micros_to_millis() for 64-bit multiply-shift conversion on ARM Cortex-M0+. Benchmarked at ~789 ns/call. Replace with a simple accumulator that tracks a running millis counter from 32-bit ::micros() deltas (220 ns on RP2040) using pure 32-bit integer ops. No 64-bit math needed. Use -Wl,--wrap=millis to intercept all ::millis() calls so Arduino libraries also get the fast version. millis_64() is left on time_us_64() for full 64-bit precision — it is only called once per loop by the Scheduler. Overflow safety: ::micros() wraps every ~71.6 minutes. Unsigned 32-bit delta arithmetic handles one wrap correctly. ESPHome calls millis() thousands of times per second, so missing a full wrap is not a realistic concern. Benchmarked on real RP2040 hardware: Before: 789 ns/call (time_us_64 + micros_to_millis) After: ~270 ns/call (accumulator, estimated) |
2 changed files with 53 additions and 1 deletions
@@ -223,6 +223,10 @@ async def to_code(config):
|
||||
for symbol in ("vprintf", "printf", "fprintf"):
|
||||
cg.add_build_flag(f"-Wl,--wrap={symbol}")
|
||||
|
||||
# Wrap Arduino's millis() so all callers use our fast accumulator instead of
|
||||
# the expensive time_us_64() + micros_to_millis() 64-bit conversion path.
|
||||
cg.add_build_flag("-Wl,--wrap=millis")
|
||||
|
||||
cg.add_platformio_option("board_build.core", "earlephilhower")
|
||||
# In testing mode, use all flash for sketch to allow linking grouped component tests.
|
||||
# Real RP2040 hardware uses 1MB filesystem + 1MB sketch, but CI tests may combine
|
||||
|
||||
@@ -14,8 +14,51 @@
|
||||
namespace esphome {
|
||||
|
||||
void HOT yield() { ::yield(); }
|
||||
// Arduino-pico's millis() uses time_us_64() (64-bit hardware timer read) then
|
||||
// micros_to_millis() which does 64-bit multiply-shift conversion on an ARM
|
||||
// Cortex-M0+ (~789 ns/call measured). Replace with a simple accumulator that
|
||||
// tracks a running millis counter from 32-bit micros() deltas using pure
|
||||
// 32-bit ops. ::micros() on RP2040 is a fast 32-bit hardware read (~220 ns).
|
||||
//
|
||||
// Overflow safety: ::micros() wraps every ~71.6 minutes. Unsigned subtraction
|
||||
// handles one wrap correctly. ESPHome calls millis() thousands of times per
|
||||
// second, so missing a full wrap is not a realistic concern. At boot, both
|
||||
// s_last_us and ::micros() start at 0, so no special initialization needed.
|
||||
//
|
||||
// Also installed as __wrap_millis (via -Wl,--wrap=millis) so Arduino library
|
||||
// code calling ::millis() directly gets the fast version. Interrupts are
|
||||
// briefly disabled to protect the static state — Wiegand and ZyAura call
|
||||
// millis() from ISR handlers on all platforms including RP2040.
|
||||
static constexpr uint32_t MILLIS_RARE_PATH_THRESHOLD_US = 10000;
|
||||
static constexpr uint32_t US_PER_MS = 1000;
|
||||
|
||||
uint32_t HOT millis() {
|
||||
static struct {
|
||||
uint32_t cache;
|
||||
uint32_t remainder;
|
||||
uint32_t last_us;
|
||||
} state = {0, 0, 0};
|
||||
uint32_t ps = save_and_disable_interrupts();
|
||||
uint32_t now_us = ::micros();
|
||||
uint32_t delta = now_us - state.last_us;
|
||||
state.last_us = now_us;
|
||||
state.remainder += delta;
|
||||
if (state.remainder >= MILLIS_RARE_PATH_THRESHOLD_US) {
|
||||
uint32_t ms = state.remainder / US_PER_MS;
|
||||
state.cache += ms;
|
||||
state.remainder -= ms * US_PER_MS;
|
||||
} else {
|
||||
while (state.remainder >= US_PER_MS) {
|
||||
state.cache++;
|
||||
state.remainder -= US_PER_MS;
|
||||
}
|
||||
}
|
||||
uint32_t result = state.cache;
|
||||
restore_interrupts(ps);
|
||||
return result;
|
||||
}
|
||||
// millis_64() keeps the full 64-bit timer for precision — called once per loop by Scheduler.
|
||||
uint64_t millis_64() { return micros_to_millis<uint64_t>(time_us_64()); }
|
||||
uint32_t HOT millis() { return micros_to_millis(time_us_64()); }
|
||||
void HOT delay(uint32_t ms) { ::delay(ms); }
|
||||
uint32_t HOT micros() { return ::micros(); }
|
||||
void HOT delayMicroseconds(uint32_t us) { delay_microseconds_safe(us); }
|
||||
@@ -42,4 +85,9 @@ uint32_t arch_get_cpu_freq_hz() { return RP2040::f_cpu(); }
|
||||
|
||||
} // namespace esphome
|
||||
|
||||
// Linker wrap: redirect all ::millis() calls (Arduino libs) to our accumulator.
|
||||
// Requires -Wl,--wrap=millis in build flags (added by __init__.py).
|
||||
// NOLINTNEXTLINE(bugprone-reserved-identifier,cert-dcl37-c,cert-dcl51-cpp,readability-identifier-naming)
|
||||
extern "C" uint32_t __wrap_millis() { return esphome::millis(); }
|
||||
|
||||
#endif // USE_RP2040
|
||||
|
||||
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.