From 697d01073fbff18820e12092495d1e51b6a2185c Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:32:32 +0100 Subject: [PATCH] 2022.2.0: Add diagnostics section --- .../_posts/2022-02-02-release-20222.markdown | 94 +++++------------- source/images/blog/2022-02/diagnostics.png | Bin 0 -> 8627 bytes 2 files changed, 27 insertions(+), 67 deletions(-) create mode 100644 source/images/blog/2022-02/diagnostics.png diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 4977277aeea..70d7c20df5b 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -164,74 +164,34 @@ Checking for any update, is now just a single click. This feature is currently available for the Home Assistant OS, and Home Assistant Supervisor installation methods. -Integrations that have adopted it this release (needs to be writte out nicely) +## Diagnostics for integrations and devices + +To make debugging and reporting issues with integrations or devices easier, +both in terms of reporting it, but also for developers to fix them, we introduce: + +**Diagnostics**. + +Diagnostics can be provided by integrations and allow you to download diagnostic +information, bout an integration or device you have set up, +directly from the Home Assistant UI. + +

+SScreenshot showing the Download Diagnostics button on a Sonos device page +Screenshot of the Download Diagnostics button on the device page +

+ +The above screenshot is from the device page of a Sonos speaker in Home +Assistant. The downloadable diagnostics file can be viewed, as a text file, +and can be used for sharing when reporting an issue in our issue tracker. + +The diagnostics data can be extremely helpful in finding the root causes of +issues and getting them fixed. As a matter of fact, it helped us pin-pointing +and fixing issues during the beta of this release. + +The good news is, that **61**! integrations already added support this new +diagnostics feature in this release, including Z-Wave JS, ESPHome, Sonos, +Tuya, Shelly, WLED, Unifi, Nest, deCONZ, KNX, Roku, Samsung TV, and many more! -- Add diagnostics support to Sonos ([@jjlawren] - [#64576]) ([sonos docs]) -- Add diagnostics support to Tuya ([@frenck] - [#64374]) ([tuya docs]) -- Add diagnostics support to Verisure ([@frenck] - [#64789]) ([verisure docs]) -- Add diagnostics to Launch Library ([@ludeeus] - [#64871]) ([launch_library docs]) -- Add diagnostics support to RDW ([@frenck] - [#64787]) -- Add diagnostics support to Stookalert ([@frenck] - [#64747]) ([stookalert docs]) -- Add diagnostics support to CPU Speed ([@frenck] - [#64745]) ([cpuspeed docs]) -- Add diagnostics support to Whois ([@frenck] - [#64855]) ([whois docs]) -- Add event statistics to Sonos diagnostics ([@jjlawren] - [#64845]) ([sonos docs]) -- Add diagnostics to Notion ([@bachya] - [#64713]) ([notion docs]) -- Add diagnostics to Flu Near You ([@bachya] - [#64597]) ([flunearyou docs]) -- Add diagnostics to ReCollect Waste ([@bachya] - [#64814]) ([recollect_waste docs]) -- Add diagnostics support to Tailscale ([@frenck] - [#64649]) ([tailscale docs]) -- Add diagnostics support to Sensor.Community ([@frenck] - [#64636]) ([luftdaten docs]) -- Add diagnostics support to Elgato ([@frenck] - [#64652]) ([elgato docs]) -- Add diagnostics to NAM ([@bieniu] - [#64743]) ([nam docs]) -- Add diagnostics support to PVOutput ([@frenck] - [#64625]) ([pvoutput docs]) -- Add diagnostics support to Open-Meteo ([@frenck] - [#64645]) ([open_meteo docs]) -- Add diagnostics to Renault integration ([@epenet] - [#64531]) ([renault docs]) ([diagnostics docs]) -- Add rainforest diagnostics ([@balloob] - [#64647]) ([rainforest_eagle docs]) -- Add diagnostics support to TwenteMilieu ([@frenck] - [#64627]) ([twentemilieu docs]) -- Add diagnostics to Brother integration ([@bieniu] - [#64478]) ([brother docs]) -- Add CO2signal diagnostics ([@balloob] - [#64646]) ([co2signal docs]) -- Add diagnostics platform to AVM Fritz!Smarthome ([@mib1185] - [#64657]) ([fritzbox docs]) -- Add diagnostics support to Axis integration ([@Kane610] - [#64637]) ([axis docs]) -- Add diagnostics support for homekit_controller ([@Jc2k] - [#64773]) ([homekit_controller docs]) -- Add diagnostics support to roku ([@ctalkington] - [#64729]) ([roku docs]) -- Add diagnostics platform to Shelly ([@mib1185] - [#64660]) ([shelly docs]) -- Add diagnostics to OpenUV ([@bachya] - [#64716]) ([openuv docs]) -- Add diagnostics support to UniFi Network integration ([@Kane610] - [#64640]) ([unifi docs]) -- Add diagnostics to IQVIA ([@bachya] - [#64602]) ([iqvia docs]) -- Add diagnostics to Elexa Guardian ([@bachya] - [#64599]) ([guardian docs]) -- Add diagnostics integration ([@balloob] - [#64330]) ([default_config docs]) ([diagnostics docs]) (new-integration) -- Add zwave_js support for diagnostics ([@raman325] - [#64336]) ([zwave_js docs]) -- Add diagnostics to RainMachine ([@bachya] - [#64788]) ([rainmachine docs]) -- Add diagnostics to Nanoleaf ([@ludeeus] - [#64835]) ([nanoleaf docs]) -- Add diagnostics to Synology DSM integration ([@mib1185] - [#64480]) ([synology_dsm docs]) -- Add diagnostics to Mazda integration ([@bdr99] - [#64606]) ([mazda docs]) -- Add diagnostics to deCONZ integration ([@Kane610] - [#64585]) ([deconz docs]) -- Tibber diagnostics ([@Danielhiversen] - [#64472]) ([tibber docs]) -- Add evil genius labs diagnostics ([@balloob] - [#64339]) ([evil_genius_labs docs]) -- Add diagnostic information for nest ([@allenporter] - [#64405]) ([nest docs]) -- Add diagnostics to the core files ([@epenet] - [#64417]) -- Fix attr spelling error in Nest SDM SensorBase ([@iMicknl] - [#64490]) ([nest docs]) -- Add diagnostics for the AirVisual integration ([@bachya] - [#64479]) ([airvisual docs]) -- Add diagnostics to KNX ([@farmio] - [#64471]) ([knx docs]) -- Add diagnostics to Overkiz integration ([@iMicknl] - [#64427]) ([overkiz docs]) -- Add zwave_js device diagnostics ([@raman325] - [#64504]) -- Add device diagnostics support to Tuya ([@frenck] - [#64537]) ([tuya docs]) -- Add diagnostics to Netatmo integration ([@cgtobi] - [#64392]) ([netatmo docs]) -- Add diagnostics to Ambient PWS ([@bachya] - [#64489]) ([ambient_station docs]) ([airvisual docs]) -- Add diagnostics to GitHub integration ([@ludeeus] - [#64385]) ([github docs]) -- Add diagnostics to UptimeRobot ([@ludeeus] - [#64905]) ([uptimerobot docs]) -- Add diagnostics for Coinbase ([@TomBrien] - [#64900]) -- Add diagnostics to Tile ([@bachya] - [#64875]) ([tile docs]) -- Add diagnostics to Ridwell ([@bachya] - [#64863]) ([ridwell docs]) -- Add diagnostics to WattTime ([@bachya] - [#64887]) ([watttime docs]) -- Add diagnostics download to ESPHome ([@jesserockz] - [#65008]) ([esphome docs]) (beta fix) -- Add diagnostics support to P1 Monitor ([@klaasnicolaas] - [#65060]) ([p1_monitor docs]) (beta fix) -- Add diagnostics support to onewire ([@epenet] - [#65131]) ([onewire docs]) (beta fix) -- Add diagnostics for rtsp_to_webrtc ([@allenporter] - [#65138]) ([rtsp_to_webrtc docs]) (beta fix) -- Update nest diagnostics ([@allenporter] - [#65141]) ([nest docs]) (beta fix) -- Add diagnostics to Advantage Air ([@Bre77] - [#65006]) ([advantage_air docs]) (beta fix) -- Add HomeWizard diagnostics ([@DCSBL] - [#65297]) ([homewizard docs]) (beta fix) (new-integration) -- Add diagnostics support to WLED ([@frenck] - [#65317]) ([wled docs]) (beta fix) -- Add diagnostics for SamsungTV ([@chemelli74] - [#65342]) ([samsungtv docs]) (beta fix ## Improved handling of device tracker entities diff --git a/source/images/blog/2022-02/diagnostics.png b/source/images/blog/2022-02/diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..b72e54a8a9ca5ecae50d4b966ef9f45a26830e7c GIT binary patch literal 8627 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 P!9_`4U9MW@eenMQG8xmw literal 0 HcmV?d00001