From 578bd57ae19b5f1e8c2413c1e315db2b90df1b08 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 3 Nov 2021 13:04:02 +0100 Subject: [PATCH] 2021.11: Visit device & service section --- .../_posts/2021-11-03-release-202111.markdown | 55 +++++++----------- source/images/blog/2021-11/visit-device.png | Bin 0 -> 9131 bytes 2 files changed, 20 insertions(+), 35 deletions(-) create mode 100644 source/images/blog/2021-11/visit-device.png diff --git a/source/_posts/2021-11-03-release-202111.markdown b/source/_posts/2021-11-03-release-202111.markdown index f964e44e92c..12c2d075f62 100644 --- a/source/_posts/2021-11-03-release-202111.markdown +++ b/source/_posts/2021-11-03-release-202111.markdown @@ -67,44 +67,29 @@ upgrade! ## Visit devices and services +Your device has a web interface, but you don't remember the (IP) address it +has on your network... So you start guessing a couple of addresses; And end upi +checking your router, looking it up in an app, or scanning the network... +Sounds familiar? Annoying, right? -Some integrations that added support for this already (TODO: make nice...): +Well, as of today, integrations can provide the URLs to devices or services +where the device can be managed or configured. -- Add service configuration URL to Stookalert ([@frenck] - [#57697]) ([stookalert docs]) -- Add device configuration URL to Plugwise ([@frenck] - [#57696]) ([plugwise docs]) -- Add service configuration URL to Spotify ([@frenck] - [#57701]) ([spotify docs]) -- Add configuration url to Synology DSM ([@mib1185] - [#57704]) ([synology_dsm docs]) -- Add configuration_url to Uptime Robot ([@ludeeus] - [#57709]) ([uptimerobot docs]) -- Add service configuration URL to Verisure ([@frenck] - [#57713]) ([verisure docs]) -- Add service configuration URL to Speedtest.net ([@frenck] - [#57715]) ([speedtestdotnet docs]) -- Add device configuration URL to WLED ([@frenck] - [#57692]) ([wled docs]) -- Add service configuration URL to MQTT ([@frenck] - [#57731]) ([mqtt docs]) -- Add configuration url to Pi hole ([@mib1185] - [#57718]) ([pi_hole docs]) -- Add configuration_url to gogogate2 ([@bdraco] - [#57739]) ([gogogate2 docs]) -- Add configuration url to nexia ([@bdraco] - [#57740]) ([nexia docs]) -- Add configuration url to rachio ([@bdraco] - [#57738]) ([rachio docs]) -- Add configuration URL to RainMachine ([@bachya] - [#57732]) ([rainmachine docs]) -- Add configuration_url to Sense ([@bdraco] - [#57814]) ([sense docs]) -- Add configuration URL to Efergy ([@tkdrob] - [#57839]) ([efergy docs]) -- Add configuration url to Tasmota ([@emontnemery] - [#57957]) ([tasmota docs]) -- Add configuration url to Juicenet ([@jesserockz] - [#57999]) ([juicenet docs]) -- Add configuration_url and entity_category to Fritz ([@chemelli74] - [#58004]) ([fritz docs]) -- Add configuration url to Airthings ([@Danielhiversen] - [#58041]) ([airthings docs]) -- Add configuration url to Tractive ([@Danielhiversen] - [#58038]) ([tractive docs]) -- Add configuration url to Surepetcare ([@Danielhiversen] - [#58039]) ([surepetcare docs]) -- Add configuration url to Sonarr ([@jesserockz] - [#58085]) ([sonarr docs]) -- Add `configuration_url` to Denon AVR integration ([@bieniu] - [#58116]) ([denonavr docs]) -- Add `configuration_url` to Sonos devices ([@jjlawren] - [#58148]) ([sonos docs]) -- Add `configuration_url` to Plex integration ([@jjlawren] - [#58149]) ([plex docs]) -- Add support for device configuration URL to Axis devices ([@Kane610] - [#58176]) ([axis docs]) -- Add `configuration_url` to AsusWrt integration ([@bieniu] - [#58172]) ([asuswrt docs]) -- Add `configuration_url` to Netatmo devices ([@cgtobi] - [#58160]) ([netatmo docs]) -- Add support for device configuration URL to UniFi Controller ([@Kane610] - [#58237]) ([unifi docs]) -- Pull configuration_url from library in gogogate2 ([@bdraco] - [#58318]) ([gogogate2 docs]) -- Fix configuration url in gogogate2 ([@bdraco] - [#58365]) ([gogogate2 docs]) -- Add configuration_url to isy994 ([@bdraco] - [#58372]) ([isy994 docs]) -- Add state_class/entity_category to Verisure ([@frenck] - [#58403]) ([verisure docs]) +

+Screenshot of WLED that now a button that links to the WLED web interface of the device directly +Screenshot of WLED that now a button that links to the WLED web interface of the device directly. +

+If an integration provides a single web interface to configure multiple devices, +it can even deep-link to the specific device page for that device. + +Over **50!** integrations have already added support for this feature, which is +fantastic! Just to name a few integrations: MQTT, Tasmota, WLED, Synology, Plex, +Netatmo, Pi-hole, RainMachine, Plugwise, Sure Petcare, Axis, UniFi Controller, +FRITZ!Box, and many more! + +If you are a custom integration developer, you can add support for this feature +too; [Read all about it on our developer blog](https://developers.home-assistant.io/blog/2021/10/26/config-entity#device-configuration-url). ## Entity categorization diff --git a/source/images/blog/2021-11/visit-device.png b/source/images/blog/2021-11/visit-device.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1e4adab6cf21be118904e6d015e10c9682e14d GIT binary patch literal 9131 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

~G z_D&#(iDe;1^ReE-3hS6d`Ck&E=1fX&EI`o{n>g;>5oKMWPJ0v$3}X~t0C~uI=@ut6cL}BxKwy=9|xRn^trDX!aK>a3jFW0 zF`m!flfbOltufI)6iP&~Yz3{)_I~yn`*w~b?Suk8kNw%-Af8Eya?ps7d4YtP z4a^*B&L5fp3nNczCs(MYQBXrD5Dxv%mq>u(zn=e}AO7(h4GFo!MpGzR7zTG{grc5{Me{jkM`=ytA^*?I!fXX(;DFH6E7(eKDyUY~Bh zFaL0Pyau%z%bhCGZjx~eBcEVLV$1>)E#XB3N8xuE#+P25Z4V!>wwqO1Z?(JaYQd^~ z&UdhJ@s}|StAgC|Alpe9rPHO1A?G`qn9t^_Kx3Ns*PCRB2+L!y7x68o)C#q0PzZDl zd^}Mw&=o?E6K2_l!Qo!U#V?mlQHRAXt%tPA7 zJZYccK{GS6_I_r?@bT;9&hnB|D_t*i?s+`|jDWozFp9KJyUUhvd(&aUfYdF~`r99| zmHpBp>gEO@>z6L+@%+(0T*K_%z9ho=_QJ;Z^4DD?8ot!@F_e6Q3)~N%^~38jlXlq% z1tHWh76eaKIk-AnF}tY51ghn(r86i5eUIVAavjDuTfL6^S(LC6lF@q;tk7g_)w_+p zXl4oY{S{P~VV&^$*l+tcm1FlHz=jzoF#Mv$>sYG*&MPP=Xq~PqU>b3M3SZ&=jN6a4 zM(>}GWr~nQo2_>Sd7fLV5)LuOG0H?)+mx5#TtmG)cl3n7-k# zf^Sp*i@&U)=3`+$+qc23PA#@w!4FpVBr&PMP7l~iEs!sDJIVMFP(rbiz5fG00E)hE ztvhEwuD6*gjj<;(e#aDQ4)r=V+OTaVJJ!!0qw#JF*C(uKHX9&)f{7f;=zxWDrH� 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 literal 0 HcmV?d00001