Temps d'utilisation des différents périphériques

Mon problème

Obtenir le temps d’utilisation des différents périphérique (PC, smartphone, tablette…)

Ma configuration


System Health

version core-2021.5.5
installation_type Home Assistant OS
dev false
hassio true
docker true
virtualenv false
python_version 3.8.9
os_name Linux
os_version 5.4.109
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4809
Installed Version 1.12.3
Stage running
Available Repositories 833
Installed Repositories 32
Home Assistant Supervisor
host_os Home Assistant OS 5.13
update_channel stable
supervisor_version supervisor-2021.04.3
docker_version 19.03.15
disk_total 30.8 GB
disk_used 8.2 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (9.3.1), File editor (5.2.0), Log Viewer (0.9.1), Visual Studio Code (3.4.0), Samba Backup (4.5.0)
Lovelace
dashboards 1
resources 29
views 6
mode yaml
___

Je souhaite savoir si cela est possible, nous sommes plusieurs a avoir PC, tablette, smartphone ont passe beaucoup de temps sur ces outils et j’aimerai connaitre et comparer avec d’autres utilisateurs du foyer notre temps quotidien, à la semaine au mois (la dépendance au écran le fléau du 21eme siecle :slight_smile: )

Sur android cela s’appelle le bien être numérique:

C’est un projet qui à mon sens pourrais intéressé beaucoup de parent ou de personne curieuse de voir leurs utilisation du numérique.

Peut-être qu’une intégration de ce type existe déjà, mais sait-on jamais.

Merci d’avoir prêter attention à ce sujet :slight_smile:

1 « J'aime »

@Felix62,

Il faut jouer avec le sensor history_stats,

Pour cela tu va devoir avoir l’information de combien de temps à été utiliser tel ou tel sensor/media player et ensuite lui faire des calcules.

Exemple dans mon cas pour la playstation 4

Le media player as plusieurs état possible :

  • state: « idle »

  • state: « standby »

  • state: « playing »

Dans mon cas je fait des statistiques sur 24H et sur la semaine complète

Pour ce faire voici mon code :

sensor:
  - platform: history_stats
    name: PS4 idle
    entity_id: media_player.playstation_4
    state: "idle"
    type: time
    start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}" # permet de connaitre depuis combien de temps la playstation est en état "inactive" (idle)
    end: "{{ now() }}"

  - platform: history_stats
    name: PS4 standby
    entity_id: media_player.playstation_4 
    state: "standby"
    type: time
    start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}" # permet de connaitre depuis combien de temps la playstation est dans un état "disponible" (standby)
    end: "{{ now() }}"

  - platform: history_stats
    name: PS4 Playing
    entity_id: media_player.playstation_4
    state: "playing"
    type: time
    start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}" # permet de connaitre depuis combien de temps la playstation est dans un état "En cours de jeux" (playing)
    end: "{{ now() }}"

  - platform: history_stats
    name: PS4 Weekly (Playing)
    entity_id: media_player.playstation_4
    state: "playing"
    type: time
    start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}" # permet de connaitre depuis combien de temps la playstation est dans un état "En cours de jeux" (playing) sur 1 semaine (permet de voir en gros combien d'heure a été utiliser la playstation sur les 7 derniers jours
    end: "{{ now() }}"

Une fois fait reboot ton HS en faisant un check avant pour verifier que la config est OK pour le reboot

Après si tu va dans la partie développement tools, tu pourra voir les infos remonter :

Il suffit ensuite de le mettre en forme sous lovelace ou utiliser la card prévue pour, Time Elapsed Card

Plusieurs mode d’affichage sont possible sois afficher le temps écouler ou sois faire un décompte par rapport a un temps donnée

Pour cela il faut que tu créer un input_datetime:

Configuration → Entrée → Ajouter une entrée : (Tu configure les champs comme bon te semble)

Ensuite tu rajoute la card elapse time card (ajoutez plus haut) sur ton dashbaord et tu sélectionne les sensor que tu souhaite afficher.

Voici le rendu chez moi :

C’est bien quand tu demande ton fils par exemple d’arrêter car sa fait deux heures et, qu’il te répond mais non c’est pas vrai, tu lui sort le dashboard et il te répond ok papa :grin:

Après on peut aussi allez plus loin, arriver à 2 heures d’utilisation, extinction de la playstation automatiquement ou avec une notification TTS ou visuel ou Alert SMS pour indiquer que cela fait deux heures et qu’il fait couper ou alors que ça va couper :rofl:

Voila j’espère que cela te sera utile :slight_smile:

4 « J'aime »

Merci Beaucoup pour ce partage @barto_95

2 « J'aime »

Bonjour,
je cherche suivre mon temps d’utilisation de la TV, mais celle ci n’est pas connecté. Je ne peux pas suivre l’attribut media_player.ma_tele

J’ai une prise connectée en zigbee, qui remonte divers capteurs, dont la consommation instantanée en W.
Je souhaite déclencher le compteur temps si la prise passe >20w par ex.
Dans mon bout de code, je ne sais pas quoi mettre en state: ?

# Temps d'écran
  - platform: history_stats
    name: TV SdJ allumée 
    entity_id: sensor.tv_salle_de_jeux_electricalmeasurement
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

Un conseil ?