mirror of
https://github.com/esphome/esphome.git
synced 2026-06-30 04:26:07 +00:00
Compare commits
base: github/esphome:core-blocking-warning-source
github/esphome:dev
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:jesserockz-2026-392
github/esphome:jesserockz-2026-344
github/esphome:jesserockz-2026-345
github/esphome:jesserockz-2026-342
github/esphome:jesserockz-2026-341
github/esphome:jesserockz-2026-375
github/esphome:dependabot/pip/click-8.4.2
github/esphome:beta
github/esphome:release
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-336
github/esphome:jesserockz-2026-378
github/esphome:jesserockz-2026-369
github/esphome:integration
github/esphome:web-server-logs
github/esphome:jesserockz-2026-364
github/esphome:dependabot/pip/smpclient-7.2.0
github/esphome:sendspin-artwork
github/esphome:store-yaml-firmware
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:dependabot/pip/bleak-3.0.2
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:jesserockz-2026-162
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:improv-serial-loop-perf
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:20260218-zigbee-proxy
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.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:scheduler-memw-outlined
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:dev
github/esphome:jesserockz-2026-392
github/esphome:jesserockz-2026-344
github/esphome:jesserockz-2026-345
github/esphome:jesserockz-2026-342
github/esphome:jesserockz-2026-341
github/esphome:jesserockz-2026-375
github/esphome:dependabot/pip/click-8.4.2
github/esphome:beta
github/esphome:release
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-336
github/esphome:jesserockz-2026-378
github/esphome:jesserockz-2026-369
github/esphome:integration
github/esphome:web-server-logs
github/esphome:jesserockz-2026-364
github/esphome:dependabot/pip/smpclient-7.2.0
github/esphome:sendspin-artwork
github/esphome:store-yaml-firmware
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:dependabot/pip/bleak-3.0.2
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:jesserockz-2026-162
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:improv-serial-loop-perf
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:20260218-zigbee-proxy
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.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
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8666f1b3ed |
[core] Outline Scheduler::call cleanup slow path into cold combined helper
Fold the to_remove_empty check, cleanup_slow_path_ call, and MAX_LOGICALLY_DELETED_ITEMS threshold check into a single hot-path branch + cold outlined helper. Before this change, the cleanup block in Scheduler::call compiled to two independent memw + l32i sequences (one for to_remove_empty_() inside cleanup_(), one for the separate to_remove_count_() check) because GCC cannot CSE across the memw barriers that std::atomic<uint32_t>::load emits on Xtensa. A previous attempt at collapsing these into a single inline branch (#15985) had the right assembly for the memw count but grew Scheduler::call by a handful of bytes and rearranged the control flow enough to nudge sched up ~0.5 us/iter on gatetrigger in practice. This version goes further: cleanup_slow_combined_ is annotated noinline + cold so the entire slow path (both reads, both calls) is pulled out of Scheduler::call entirely. The hot path becomes: memw; l32i a8, [to_remove_]; beqz skip call8 cleanup_slow_combined_ ; unlikely, cold and Scheduler::call's body shrinks 344 B -> 332 B (-12 B, below the dev baseline). Adjacent code (feed_wdt_slow_, etc.) stays in the same flash region, avoiding the cache-layout side-effects that made earlier attempts a net loss on busier configs. The [[unlikely]] attribute on the branch plus the cold attribute on the helper give the compiler permission to keep the skip path straight and push the call out-of-line. |
2 changed files with 30 additions and 8 deletions
@@ -601,14 +601,16 @@ uint32_t HOT Scheduler::call(uint32_t now) {
|
||||
}
|
||||
#endif /* ESPHOME_DEBUG_SCHEDULER */
|
||||
|
||||
// Cleanup removed items before processing
|
||||
// First try to clean items from the top of the heap (fast path)
|
||||
this->cleanup_();
|
||||
|
||||
// If we still have too many cancelled items, do a full cleanup
|
||||
// This only happens if cancelled items are stuck in the middle/bottom of the heap
|
||||
if (this->to_remove_count_() >= MAX_LOGICALLY_DELETED_ITEMS) {
|
||||
this->full_cleanup_removed_items_();
|
||||
// Cleanup removed items before processing. Fast path: one atomic load +
|
||||
// branch; when nothing is pending, skip both slow-path calls entirely.
|
||||
// Previously the equivalent logic was split across cleanup_() (inline,
|
||||
// loads to_remove_) and a separate to_remove_count_() check for the MAX
|
||||
// threshold, which produced two memw+l32i pairs on Xtensa (GCC can't CSE
|
||||
// across std::atomic's memw barriers). Folding the slow work into one
|
||||
// outlined cold function keeps Scheduler::call's hot-path footprint small
|
||||
// and the I-cache happy.
|
||||
if (this->to_remove_count_() != 0) [[unlikely]] {
|
||||
this->cleanup_slow_combined_();
|
||||
}
|
||||
// IMPORTANT: This loop uses index-based access (items_[0]), NOT iterators.
|
||||
// This is intentional — fired intervals are pushed back into items_ via
|
||||
@@ -761,6 +763,21 @@ bool HOT Scheduler::cleanup_slow_path_() {
|
||||
}
|
||||
return !this->items_.empty();
|
||||
}
|
||||
// Combined cold path for Scheduler::call. Only called when to_remove_ is
|
||||
// non-zero. Noinline + cold keeps the two calls and the re-read of
|
||||
// to_remove_ out of the main loop's hot path; the attribute also lets the
|
||||
// compiler push this code out to a rarely-touched flash region so the
|
||||
// scheduler's hot instructions stay in cache.
|
||||
void Scheduler::cleanup_slow_combined_() {
|
||||
// First sweep: drop cancelled items from the heap top.
|
||||
this->cleanup_slow_path_();
|
||||
// Re-read to_remove_ because cleanup_slow_path_ may have decremented it.
|
||||
// If cancelled items remain stuck below the top and the count crossed
|
||||
// the threshold, do a full sweep.
|
||||
if (this->to_remove_count_() >= MAX_LOGICALLY_DELETED_ITEMS) {
|
||||
this->full_cleanup_removed_items_();
|
||||
}
|
||||
}
|
||||
Scheduler::SchedulerItem *HOT Scheduler::pop_raw_locked_() {
|
||||
std::pop_heap(this->items_.begin(), this->items_.end(), SchedulerItem::cmp);
|
||||
|
||||
|
||||
@@ -316,6 +316,11 @@ class Scheduler {
|
||||
}
|
||||
// Slow path for cleanup_() when there are items to remove - defined in scheduler.cpp
|
||||
bool cleanup_slow_path_();
|
||||
// Combined slow path for Scheduler::call: runs cleanup_slow_path_ then, if
|
||||
// cancelled items are still stuck below the heap top, full_cleanup_removed_items_.
|
||||
// Outlined (noinline, cold) so the Scheduler::call fast path stays one atomic
|
||||
// load + branch — keeping the I-cache hot for the common zero-to-remove case.
|
||||
void __attribute__((noinline, cold)) cleanup_slow_combined_();
|
||||
// Slow path for process_to_add() when there are items to merge - defined in scheduler.cpp
|
||||
void process_to_add_slow_path_();
|
||||
// Remove and return the front item from the heap as a raw pointer.
|
||||
|
||||
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.