Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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 :)
Dernière modification par Thecyp31 le 22 févr. 2017, 19:16, modifié 2 fois.
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ?

Message 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 :)
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ? help :)

Message par Thecyp31 »

Bon je stagne toujours :(

Quelqu'un à une idée ? :)
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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&param=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&param=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&param=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&param=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&param=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&param=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&param=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&param=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&param=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&param=udevice&idx=16&nvalue=0&svalue=Idle"
fi
ericxt500
Messages : 114
Inscription : 28 mai 2016, 23:48

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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 " ?
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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 !
ericxt500
Messages : 114
Inscription : 28 mai 2016, 23:48

Re: RE: Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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
ericxt500
Messages : 114
Inscription : 28 mai 2016, 23:48

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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 ?
Thecyp31
Messages : 17
Inscription : 14 févr. 2017, 19:05

Re: Piloter Chromecast, pychromecast ? EDIT : Fonctionne avec nodecastor

Message 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 :

Code : Tout sélectionner

sudo chmod +x tonfichier.sh
puis

Code : Tout sélectionner

crontab -e
puis tu ajoute ceci :

Code : Tout sélectionner

*/01 * * * *  /tonfichier.sh  2>&1 >/dev/null

*/01 veut dire qu'il tourne toute les minutes.

Et voila ça devrais fonctionner :)
Répondre