Page 1 sur 2
Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 15 févr. 2017, 11:15
par Thecyp31
Bonjour à tous,
Alors voila, depuis quelques semaine je m’intéresse à la domotique.
Je suis tombé sur Domoticz, c'est fabuleux
Vu que pour l'instant je n'est rien à interfacer a Domoticz, je fait quelques test de scripts pour intégrer mes "objets" actuel.
Le but de mon installation est de pouvoir piloter tout mon multimédia et (une fois commande reçu) la suite xiaomi smart home.
Ma question actuel, j'ai plusieurs chromecast dont j'aimerais récupérer le statut et faire des scénario suivant le statut.
Après plusieurs recherche, je suis tombé sur Pychromecast, mais je n'ai pas tout compris ^^
J'ai aussi réussi a récupérer quelques info des chromecast avec les requêtes Curl, mais rien sur le type de lecture en cours ( Plex, Netflix, Spotify etc ..).
Est-ce que l'un d'entre vous à réussi a faire ce genre d'intégration ou pas ?
Merci d'avance et bonne journée

Re: Piloter Chromecast, pychromecast ?
Publié : 15 févr. 2017, 20:17
par Thecyp31
Bonsoir,
bon j'avance mais ce n'est pas ça...
Voici mon scripts :
Code : Tout sélectionner
from __future__ import print_function
import time
import sys
import logging
import json
import codecs
import urllib
import pychromecast
cast = pychromecast.Chromecast("192.168.xx.xx")
print(cast.device)
print(cast.status)
print(cast.media_controller.status)
Voici ce que me retourne ma commande
python test.py
Code : Tout sélectionner
DeviceStatus(friendly_name=u'Salon', model_name=u'Eureka Dongle', manufacturer=u'Google Inc.', api_version=(1, 0), uuid=UUID('xx'), cast_type='cast')
None
<MediaStatus {'player_state': 'UNKNOWN', 'volume_level': 1, 'images': [], 'media_custom_data': {}, 'duration': None, 'current_time': 0, 'playback_rate': 1, 'title': None, 'media_session_id': None, 'volume_muted': False, 'supports_skip_forward': False, 'track': None, 'season': None, 'idle_reason': None, 'stream_type': 'UNKNOWN', 'supports_stream_mute': False, 'supports_stream_volume': False, 'content_type': None, 'metadata_type': None, 'subtitle_tracks': {}, 'album_name': None, 'series_title': None, 'album_artist': None, 'media_metadata': {}, 'episode': None, 'artist': None, 'supported_media_commands': 0, 'supports_seek': False, 'current_subtitle_tracks': [], 'content_id': None, 'supports_skip_backward': False, 'supports_pause': False}>
Donc je récupère bien les info du chromecast avec print(cast.device) mais print(cast.media_controller.status) ne me retourne rien, alors que je devrais avoir player_state IDLE
J'ai trouvé ce post :
http://www.domoticz.com/forum/viewtopic.php?t=7022
J'ai essayer le scripts en python 2.7 en changeant ce qui indiqué, il à fonctionné une fois et pas plus
des idées les pro du python ?
Merci d'avance

Re: Piloter Chromecast, pychromecast ? help :)
Publié : 20 févr. 2017, 20:03
par Thecyp31
Bon je stagne toujours
Quelqu'un à une idée ?

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 22 févr. 2017, 19:18
par Thecyp31
Bonsoir,
Petit message pour dire que j'ai réussi avec du JS , avec nodecastor.
Si cela peut intérésse quelqu'un voici mon petit script sans prétention (et un peu dégueux ^^) qui renvoi dans une Dummy Text la valeur de mes chromecast :
Code : Tout sélectionner
bin/chromecast status 192.168.0.40 > /tmp/chromecastsalon
bin/chromecast status 192.168.0.38 > /tmp/chromecastchambre
#checkChambre
if grep -q disconnected /tmp/chromecastchambre
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=17&nvalue=0&svalue=Offline"
fi
if grep -q Netflix /tmp/chromecastchambre
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=17&nvalue=0&svalue=Playing_Netflix"
fi
if grep -q Plex /tmp/chromecastchambre
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=17&nvalue=0&svalue=Playing_Plex"
fi
if grep -q Spotify /tmp/chromecastchambre
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=17&nvalue=0&svalue=Playing_Spotify"
fi
if grep -q Backdrop /tmp/chromecastchambre
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=17&nvalue=0&svalue=Idle"
fi
#checkSalon
if grep -q disconnected /tmp/chromecastsalon
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=16&nvalue=0&svalue=Offline"
fi
if grep -q Netflix /tmp/chromecastsalon
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=16&nvalue=0&svalue=Playing_Netflix"
fi
if grep -q Plex /tmp/chromecastsalon
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=16&nvalue=0&svalue=Playing_Plex"
fi
if grep -q Spotify /tmp/chromecastsalon
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=16&nvalue=0&svalue=Playing_Spotify"
fi
if grep -q Backdrop /tmp/chromecastsalon
then
curl --silent -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=16&nvalue=0&svalue=Idle"
fi
Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 09:16
par ericxt500
hello,
moi ça m'intéresse aussi mais je ne maîtrise pas encore les codes malheureusement.
est ce que si j'utilise ton code je n'ai qu'à modifier les adresses IP et supprimer la partie #chambre (je n'ai qu'un seul chromecast)
ensuite mettre le script dans le dossier json et c'est tout ou alors - " c'est un peu plus compliqué que ça mon p'tit gars et tu reviendras quand tu auras un plus d'expérience " ?
Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 11:27
par Thecyp31
Salut,
Alors il faut installer nodecastor :
https://www.npmjs.com/package/nodecastor
c'est assez simple
Pour trouver ou ce trouver ton dossier nodecastor ( ou il y'a bin dedans ) :
find / -name nodecastor
Ensuite pour tester si ça fonctionne, va dans le dossier nodecastor et : bin/chromecast status tonip
Moi j'ai deux trois message d'erreur mais j'ai quand même le statut.
Si tout fonctionne tu peut faire le même scripts que moi en modifiant les ip et les idx etc ...
Puis une crontab qui passe toutes les minutes et hop
Moi aussi je suis pas un pro linux et encore moins en scripting mais j'ai réussi ^^
Good luck !
Re: RE: Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 12:57
par ericxt500
Thecyp31 a écrit :Salut,
Alors il faut installer nodecastor :
https://www.npmjs.com/package/nodecastor
c'est assez simple
Pour trouver ou ce trouver ton dossier nodecastor ( ou il y'a bin dedans ) :
find / -name nodecastor
Ensuite pour tester si ça fonctionne, va dans le dossier nodecastor et : bin/chromecast status tonip
Moi j'ai deux trois message d'erreur mais j'ai quand même le statut.
Si tout fonctionne tu peut faire le même scripts que moi en modifiant les ip et les idx etc ...
Puis une crontab qui passe toutes les minutes et hop
Moi aussi je suis pas un pro linux et encore moins en scripting mais j'ai réussi ^^
Good luck !
Merci pour la réponse, je vais étudier ça !
Envoyé de mon XT1072 en utilisant Tapatalk
Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 16:07
par Thecyp31
Par contre il s'agit d'un script en bash , donc en .sh
ne pas oublier de mettre ceci au début :
#!/bin/bash
Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 16:53
par ericxt500
Thecyp31 a écrit :Par contre il s'agit d'un script en bash , donc en .sh
ne pas oublier de mettre ceci au début :
#!/bin/bash
même si c'est simple pour toi , je crois que ça va bien dépasser mes compétences !
nodecastor, tu l'installes sur le raspberry ?
Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor
Publié : 23 févr. 2017, 16:57
par Thecyp31
Ne t'en fait pas ^^
Pour nodecastor, oui tu l'installe sur le raspberry, cf un tuto :
https://github.com/vincentbernat/nodecastor
Puis tu modifier mon script et l'enregistre en .sh ( en rajoutant au tout début ce que j'ai mis dans mon post d'avant).
puis tu fait :
puis
puis tu ajoute ceci :
*/01 veut dire qu'il tourne toute les minutes.
Et voila ça devrais fonctionner
