Récupérer la version de Adguard, installer sur un NAS

Mon problème

Bonjour,
J’ai changer d’installation de ADGuard que j’avais en Addon sur HA. Je l’ai installé sur mon NAS ( DS214+ ) sans docker. J’utilise l’installation AdGuardHome_linux_armv7 et j’ai planifié une tache qui le lance a chaque démarrage.
J’ai ensuite installer l’intégration Adguard sur HA, pour récupérer les stats et protection activer.

Comme je n’est plus ADGuard sur HA, je voudrais récupérer la version de ADGuard pour la comparer avec l’entité du github et me faire un Template pour m’alerter d’une nouvelle maj.

On peut voir la version de ADguard sur l’intégration de HA:

Mais je ne trouve aucun sensor qui aurait l’information ( même dans les attributs ).

Mon entité github:

Directrement sur la page de Adguard ( par l’ip local ):

Connaissez vous une solution pour récupérer la version de ADGuard, soit par l’intégration ou par l’application sur le NAS ?

System Information

version core-2024.3.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.1.73-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4996
Installed Version 1.34.0
Stage running
Available Repositories 1426
Downloaded Repositories 79
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.0
update_channel stable
supervisor_version supervisor-2024.03.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 109.3 GB
disk_used 16.3 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.10.0), File editor (5.8.0), pigpio (1.5.2), Mosquitto broker (6.4.0), Zigbee2MQTT (1.36.0-1), Home Assistant Google Drive Backup (0.112.1), ESPHome (2024.3.0), NGINX Home Assistant SSL proxy (3.9.0), MyElectricalData (0.12.0), openWakeWord (1.10.0), Piper (1.5.0), vosk (1.6.0), porcupine (1.1.0), Let’s Encrypt (5.0.15)
Dashboards
dashboards 4
resources 55
views 29
mode storage
Recorder
oldest_recorder_run 19 mars 2024 à 15:45
current_recorder_run 21 mars 2024 à 06:51
estimated_db_size 260.21 MiB
database_engine sqlite
database_version 3.44.2
Spotify
api_endpoint_reachable ok
Xiaomi Gateway 3
version 3.3.6 (6a494ae)
Xiaomi Miot Auto
component_version 0.7.17
can_reach_server ok
can_reach_spec ok
logged_accounts 0
total_devices 0

Salut @WarC0zes

Avec l’url de ton instance adguard + /control/status genre :

http://192.168.0.x/control/status

Tu récupères un json :

{"version":"v0.107.46","language":"fr","dns_addresses":["127.0.0.1","::1","10.0.2.100","fd00::4c9b:d3ff:fefc:66ca","fe80::4c9b:d3ff:fefc:66ca%tap0"],"dns_port":53,"http_port":80,"protection_disabled_duration":0,"protection_enabled":true,"dhcp_available":true,"running":true}

La suite, je pense que tu devrais t’en sortir :wink:

[EDIT] faudra prévoir l’authent quand même :wink:

1 « J'aime »

Salut @Herbs,
toujours au top :+1:

{
  "version": "v0.107.46",
  "language": "fr",
  "dns_addresses": [
    "127.0.0.1",
    "::1",
    "192.168.1.2"
  ],

Allez je m’attaque a la suite.
Merci

1 « J'aime »

Ça devrait le faire :wink:

Avec un sensor rest, j’ai bon ?

sensor:
  - platform: rest
    resource: http://xxxx:xxxxx@192.168.1.2:xxx/control/status
    name: "AdGuard Version"
    value_template: "{{ value_json.version }}"

Tu peux essayer de voir si ça passe comme ça.

Mais je pense qu’il va te manquer des trucs sur l’authent :wink:

En tout cas, c’est une bonne piste !!!

@WarC0zes alors tu t’en sors ?

@WarC0zes dis oui car je suis l’histoire
:pray: :pray:

Oui, je viens juste de fini et tester si c’est bon.
Je crois que j’y suis arrivé :upside_down_face:

J’ai configurer le rest sensor comme telle et c’est bon.

  - platform: rest
    name: "ADGuard Version"
    unique_id: adguard_version
    resource: http://192.168.1.2:xxxx/control/status
    username: !secret useradguard
    password: !secret passadguard
    authentication: basic
    headers:
      User-Agent: homeassistant
      Content-Type: application/json
    verify_ssl: false
    value_template: "{{ value_json.version }}"

je sais pas si l’option scan_interval est toujours fonctionelle ?

1 « J'aime »

Le hic, c’est qu’elle n’est plus dans la liste des variables dans la doc « rest sensor ».

Mais qu’on la retrouve dans les exemples de cette même doc.

Et qu’on la voit dans la doc « rest »

Bref, je dirai que ça doit fonctionner, mais le fait que tu poses la question et la doc me mettent le doute :confused:

Et oui, comme toi j’ai remarquer pareil, c’est pas en option, mais ta des exemples avec.
Et comme c’est une option qui disparait sur pas mal d’autre intégration, j’ai un doute.

Je laisse sans :stuck_out_tongue:

Après juste un template qui compare les versions , ca doit suffire pour me faire une entité update?

edit:
je vais faire comme ça:

{% if states('sensor.adguard_version') == states('sensor.adguardteam_adguardhome_derniere_balise') %}
  off
{% else %}
  on
{% endif %}

Voila, j’ai refait mon icone adguard :smiley:
image

Edit2:
more-info presque comme une vrai entité update .
image

1 « J'aime »

Donc le « scan_interval » fonctionne.

J’ai mon Adguard derrière mon reverse proxy, donc en checkant les logs :

  • Sans « scan interval » dans la définition du sensor, poll toutes les 30 secondes (valeur par défault) :
herbs [22/Mar/2024:12:10:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:11:15 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:11:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:12:15 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:12:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:13:15 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:13:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:14:15 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:14:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:15:15 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:15:45 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
  • Avec « scan interval » à 120 secondes, bah ça poll toutes les 2 minutes :smiley: :
herbs [22/Mar/2024:12:27:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:29:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:31:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:33:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:35:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:37:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:39:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:41:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:43:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:45:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
herbs [22/Mar/2024:12:47:42 +0100] TLSv1.3 "GET /control/status HTTP/1.1" 200 219 "-" "HomeAssistant/2024.3.1 httpx/0.27.0 Python/3.12" "-"
1 « J'aime »

Bonjour @WarC0zes,
Comme toi, j’ai une instance séparé de AdGuard, j’ai essayé ton code, mais j’ai une erreur :

Error loading /config/configuration.yaml: mapping values are not allowed here
in "/config/integrations/../entities/rest_commands/adguard_version.yaml", line 2, column 7

c’est a mettre dans sensor.yaml.

montre ton adguard_version.yaml ?

J’ai une configuration en yaml séparé…
Je te l’envoie tout à l’heure, je suis en extérieur pour le moment et pas devant un pc :sweat:

1 « J'aime »

Re @WarC0zes
alors voici ce que j’ai mis dans le adguard_version.yaml dans le dossier sensors

platform: rest
  name: "ADGuard Version"
  unique_id: adguard_version
  resource: http://192.168.120.253:80/control/status
  username: !secret adguard_user
  password: !secret adguard_passaword
  authentication: basic
  headers:
    User-Agent: homeassistant
    Content-Type: application/json
  verify_ssl: false
  value_template: "{{ value_json.version }}"

adguard_user et adguard_passaword sont définis dans mon fichier secret avec leurs autres homologues !

PS: j’ai tenté avec et sans le 80 après l’adresse de AdGuard mais pareille

j’utilise la méthode des packages.
dans mon configuration.yaml:

homeassistant:
  packages: !include_dir_named packages

dans mon fichier sensor.yaml, /config/packages/sensor.yaml:

sensor:
  - platform: rest
    name: "ADGuard Version"
    unique_id: adguard_version
    resource: http://192.168.1.2:30xx/control/status
    username: !secret useradguard
    password: !secret passadguard
    authentication: basic
    headers:
      User-Agent: homeassistant
      Content-Type: application/json
    verify_ssl: false
    value_template: "{{ value_json.version }}"
    scan_interval: 3600

merci,
j’ai réussi à faire fonctionner ton code en le mettant dans mon dossier packages !
:thinking: :thinking: bizarre…

bon il me reste à choper la version en ligne :scream: