Deux fonctionnalités que je n'arrive pas à réaliser sous HA

Bonjour,

voila maintenant plusieurs mois de passés, mon installation HA a désormais remplacée mon ancienne solution (jeedom)
Il me reste encore beaucoup de choses à ajouter dans le futur, mais c’est subordonné à des achats de matériaux et de matériels mais il faut des :euro: pour cela :cry:

Cependant, il me manque deux fonctionnalités que je trouvais bien pratique dans mon installation jeedom:
C’était les horaires de bus, en fonction de l’arrêt de bus choisi.
(plugin localisation et trajets sur jeedom)
image
C’est basé sur l’api navitia. La compagnie de bus de ma ville met à jour cette base de données.

La seconde fonctionnalité que je n’arrive pas à reproduire dans HA, c’est le programme TV:
(plugin telejjee sur jeedom)

Un grand merci si vous pouvez me donner des solutions pour reproduire c’est deux fonctionnalités, sans laisser en place un jeedom pour cela.

Ma configuration


System Health

version core-2021.10.7
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.70
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.15.2
Stage running
Available Repositories 952
Installed Repositories 26
Home Assistant Supervisor
host_os Home Assistant OS 6.5
update_channel stable
supervisor_version supervisor-2021.10.8
docker_version 20.10.7
disk_total 62.3 GB
disk_used 10.7 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (9.5.1), DahuaVTO2MQTT (1.0.14), Portainer (1.5.2), Duck DNS (1.14.0), Samba Backup (5.0.0), Z-Wave JS to MQTT (0.28.0), Grafana (7.2.0), SQLite Web (3.1.0)
Lovelace
dashboards 3
resources 16
views 24
mode storage

salut,
pour le programme tv j’utilise une carte iframe toute bête en utilisant la page web de teleloisir : https://m.programme-tv.net/programme/canal-5/

tu peux choisir tes bouquets (canal+, orange, ect…) creer un compte aussi pour personnaliser ta liste de chaines aussi ect…

Après, pour l’horaire des bus, le plugin jeedom devait taper sur une url, est elle indiquée dans la doc du plugin?

Merci, je ne connaissais pas la carte iframe :upside_down_face:
A défaut d’intégration, je vais utiliser cette méthode.
Je vais également me servir d’iframe pour afficher d’autres pages web comme celle de l’ecocompteur

Pour les horaires de bus, je me souviens que quand je l’avais configuré j’avais utilisé http://canaltp.github.io/navitia-playground/play pour trouver les bonnes options d’arrêts, de source …
j’ai un token navitia.io pour pouvoir l’utiliser

Je met quelque ligne ici (a adapter selon vos besoins, au cas ou cela peu aidé quelque personne. Ca permet de ce passer du top menu du site en question.

          - type: 'custom:html-template-card'
            content: >
              <div style="position: absolute; height: 1000px; width: 400px; overflow: hidden;">
              <iframe
              src="https://m.programme-tv.net/programme/en-ce-moment.html"
              frameborder="0" allowfullscreen="true" allowtransparency="true" style="width: 100%; min-height:
              1000px; border: 0; margin-top: 0px; margin-bottom: 0px; position: absolute; top: -238px;"></iframe>
              </div>

et le résultat visuel :

3 « J'aime »

Salut,

Je viens un peu tard…
Je n’ai jamais utilisé, mais pour les histoires de bus, si je devais le faire je regarderais ça:

  • La carte Markdown pour un « joli » affichage.
  • Et l’intégration Restful avec un Restful sensor pour les requêtes.

C’est clairement pas du out of the box…mais comme tu as déjà grenouillé dans l’API de la compagnie de bus, ça devrait aider!

3 messages ont été scindés en un nouveau sujet : Carte Page Web (iframe) ne fonctionne pas sur tous les appareils

Bonjour à tous,
des news sur ses deux fonctionnalités.
Je n’ai pas encore regardé pour le programme tv.
Par contre cet après-midi, j’ai travaillé sur la fonctionnalité Navitia
Via Node-red, j’arrive à alimenter MQTT. Il me reste à faire des sensors dans home assistant et une carte markdown.


Capture

1 « J'aime »

Je n’arrive pas à faire fonctionner ta card…
J’ai ce résultat :

            type: 'custom:html-template-card'
            content: >
              <div style="position: absolute; height: 1000px; width: 400px; overflow: hidden;">
              <iframe
              src="https://m.programme-tv.net/programme/en-ce-moment.html"
              frameborder="0" allowfullscreen="true" allowtransparency="true" style="width: 100%; min-height:
              1000px; border: 0; margin-top: 0px; margin-bottom: 0px; position: absolute; top: -238px;"></iframe>
              </div>

Une idée du problème ?

PS: c’est bien cette intégration ?

Merci d’avance

Slt j’ai jeté un coup d’oeil.

C bien le repo de PiotrMachowsk Home-Assistant-Lovelace-HTML-Jinja2-Template-card.

Si tu met le code en mode visuel il faut enlever le « - » devant type.

Et sinon je viens de voir que sur chrome ca pose probleme mais sur firefox c ok. Faudra que je me penche sur la question.

Oui j’ai des problèmes d’affichage sous Chrome.
J’ai un message d’erreur dans la fenêtre :

Capture d’écran 2022-03-23 084854

J’ai réussi à voir une fois la page web.
Mais le problème c’est qu’il y avait des pub de partout :flushed:

Du coup j’ai trouvé cette solution alternative qui me convient :

type: iframe
url: https://tv-programme.com/widget.php?type=ce-soir&hover_color=%23dff0d8
aspect_ratio: 100%

3 « J'aime »

Bonsoir @Vince60 ,

J’ai exactement le même besoin. J’arrive de Jeedom où je récupérais facilement les horaires de bus de plusieurs lignes.
Par contre, je suis complètement débutant sur Node-Red.
J’ai pu reproduire le schéma que tu as partagé, mais j’ai aucune idée de comment paramétrer les différents composants.
Pourrais-tu me guider plus en détail ?

Merci

Bonsoir @djtale ,
je l’ai un peu modifié depuis.

le inject: Attention à la limitation du nombre de requêtes autorisées par mois (5 000), je l’ai réglé à 8 minutes pour une seule requête, entre 5h30 et 22h30. Il n’y a pas de bus sur ma ligne entre ces horaires, inutile que je rafraichisse les horaires.

Auth header:

msg.headers = {}
msg.headers['Authorization'] = "***************************";
//Renseigner le Token Navitia");
return msg;

Dans recherche horaires navitia, il faut que tu indiques ta requête Navitia qui correspond à ton besoin.

La fonction Départs c’est simplement:(a adapter si tu veux les arrivées, car tu as un horaire d’arrivée et un horaire de départ de l’arrêt concerné.

msg.payload = msg.payload.departures;

return msg;

Le reste, c’est de la mise en forme avant de publier dans MQTT

Ensuite, dans homeassistant, j’ai même réussi à utiliser un code couleur, écriture verte si je suis dans les temps pour le prendre, rouge s’il est en approche ou horaire dépassé (car tu as 8 minutes avant la prochaine mise à jour)

Merci beaucoup @Vince60 pour ces indications.
Je vais voir comment je m’en sors et apprendre un peu par moi meme aussi.

Tu utilises bien le playground de navitia pour trouver l’url à envoyer ?
canaltp github io | navitia-playground

Une petite idée mais je ne sais pas si c’est faisable. Ajouter un compteur pour savoir combien de re^quetes ont été exécutées sur le mois. Pour être sûr de ne pas dépasser le quota.

Oui, j’ai préparé ma requête à partir de https://canaltp.github.io/navitia-playground/play.html?

Pour le compteur, oui, cela doit être faisable facilement, tu rajoutes une seconde branche derrière le filtre horaire.
Il faudra que tu rajoutes une initialisation du compteur le 1er jour du mois.

Sinon, 5000 / 31 (nb jours max) = nb de requêtes max par jour
Ce résultat / nb d’heures que tu utilises le service = nb de requêtes par heure.
Enfin, 60 / par ce résultat = ton interval pour inject

Sous Jeedom, on ne pouvait pas régler finement, et le rafraichissement n’était pas si bas que 8 minutes, si je me rappelle bien, c’était 15 minutes.

1 « J'aime »

J’'avance petit à petit.
Pour le moment je me contente d’écrire dans un fichier les horaires que je récupère.
J’ai pas encore trop compris comment fonctionnait lesobjets ‹ split › et ‹ route ›.
Je vais voir ensuite pour mettre mes valeurs dans des sensors.

Est-ce qu’il y a une technique pour débugger dans NodeRed ? Genre voir le payload à chaque étape ?

Sur Jeedom, si je me souviens bien je lançais un refresh à chaque fois que #time# == départ du 1er horaire de bus. Comme ca mon widget se rafraichissement régulièrement et le prochain bus était toujours en première ligne.
Je n’avais de soucis de dépassement de quota car finalement, quand il n’y a pas de bus, il n’y avait pas de refresh.

Bonsoir @Vince60 ,

Est-ce que pour le programme TV tu as testé quelque chose de ton côté ?
Du mien, j’ai commencé à scraper le site tv-programme. Avec 3 html nodes différents, j’arrive à récupérer les logo des chaines, les 2 programmes de la soirée, et les horaires dé début des 2 programmes.
J’ai réussi à mettre à jour un sensor mqtt qui récupère le logo de TF1.

Je me demande si c’est possible de faciliter l’affectation des logos (je commence pour cela au début) dans les différents sensor mqtt. Ou bien faut-il avoir autant de nodes mqtt que j’aurais de sensor.
Je sais pas si ca t’intéresse de bosser dessus avec moi.

Salut,

La fréquence de variations des logos des chaines n’est pas si courante, personnellement je mettrai ça en dur dans une banque d’image pour l’exploiter dans les cartes lovelace, plutôt que de les scrapper tous les jours et de passer par mqtt.

1 « J'aime »

En effet, c’est une bonne idée.
Voici ce que j’ai obtenu pour le moment :

Voici un aperçu du flow :

Le code node-red n’est pas du tout optimisé mais ca fait le taff.
Il me reste à comprendre comment lancer le flow au redémarrage de HA et à une certaine heure de la journée.
L’objectif final est également de pouvoir envoyer un message à Telegram et de recevoir en retour la liste des programmes.

Des nodes comme bigtimer existent pour planifier les actions. Pour le lancement de HA, tu as les status de sensor.uptime (dernier boot)

@djtale Oui et non, j’ai fait un lovelace de tests avec les solutions de @Psychoses et @jybi89 proposées plus haut mais je l’utilise peu.

Ton projet me plait,

  • pour le coté paramétrage (choix des chaines)
  • l’idée d’envoyer un message telegram et d’avoir en réponse le programme TV
  • l’utilisation de Node red / MQTT ce qui rend la solution perenne et multi plateformes