Je viens proposer à la communauté de dev de Jeedom de plancher sur un un emulateur de Roku comme celui que Home Assistant propose:
https://community.home-assistant.io/t/e ... mony/21491
Cet émulateur étant vu et intégéré par les télécommandes multimédia qui sont capables de commander un Roku via son API en IP, telle que la Harmony HUB ou Premium.
Le gros avantage est que maintenanant avec un tel plugin, la télécommande Harmony devient une vraie télécommande de domotique en même temps, permettant de commander n'importe quel module.
Le plugin agirait dans ce cas comme un proxy entre la télécommande Harmony et les différents modules gérés par Jeedom. On pourrait associer tous les boutons du Roku émulé de la télécommande, vus comme des évnements, avec des commandes ou des scénarios; Bref une super intégration d'une télécommande pour tout faire, lancer un film sur Netflix par exemple et tamiser les lumières par la suite.
La Harmony Hub effectivement intrègre quelques objets domotiques comme la Hue, mais celle se limite à des scénarios HUE seulement et ne propose que 2 boutons pour cela.
Je suis persuadé que les possesseurs de télécommandes Harmony comme moi et ils sont nombreux, seraient fortement interréssés par un tel plugin.
Et pour commencer, une grosse partie du dev est faite pour l'émulateur, puisque celui-ci a été dévelopé sous forme d'API:
https://gitlab.com/mindig.marton/emulated_roku
Bref, ce serait un gros plus pour la plateforme Jeedom et ses multiples capacités d'intégration déjà existantes.
Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
J'avais posté ce message dans le forum Multimédia avant de m'aperçevoir qu'il existait un forum spécifiquement pour cela. Voici mon message original donc
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Entre temps, donc entre hier et aujourd'hui, j'ai développé un semblant d'intégration sous forme de script que l'on peut lancer comme un daemon au besoin. Voici les étapes pour cela, en espérant qu'un dev de la communauté s'y interresse et puisse l'intégrer comme plugin.
Voici donc mon Tuto, le tout fonctionne Nickel en passant:
Requis:
- Python 3.5 minimum
Procédure:
0- Créer un objet virtuel via le plugin virtuel avec une seule commande de type Info/Autre. Notez la valeur de l'ID de la commande.
1- Installer l'API à la version 0.1.4, les versions ultérieures sont dans un mode que je n'arrive pas à intégrer:
pip3 install 'emulated-roku==0.1.4'
2- Installer les modules requis:
pip3 install urllib.request asyncio
3- Créer ce script (roku.py par exemple) dans un répertoire accessible à l'usager www-data si vous voulez l'executer comme daemon, sinon n'importe quel autre répertoire:
Remplacer les valeurs xx.xx.xx.xx et par l'IP de votre Jeedom, la valeur de aaabbbcccddd par la clé API de votre box et zzzzz avec la valeur de l'ID du virtuel crée au début. Vous pouvez aussi mettre le script en mode débug à la ligne 11 comme ceci: logging.basicConfig(level=logging.DEBUG) le temps de tester.
4- Ajouter un attribut executable via chmod+x roku.py
5- lancer le script et démmarrez ensuite l'application Harmony sur votre Android ou Iphone.
6- Ajoutez un dispositif Multimédia de type Roku modèle Roku 4. L'application devrait le trouver facilement.
7- Créer une activité Harmony avec comme seul dispositif, le Roku précédemment ajouté. Cette étape est optionnelle et n'est nécessaire que si vous avez comme moi une télécommande de type Companion qui ne peut executer que des commandes via une activité.
8 Créer finalement un scénario dans Jeedom de type provoqué avec la commande du virtuel crée au début comme déclencheur et qui execute des commande selon la valeur du bouton pressé sur la Harmony:
Les valeurs possibles recupérées via le virtuel et pouvant êytre utilisées dans le scénario sont (selon la télécommande):
Certe ce n'est pas très optimal comme intégration et pour cette raison je pense qu'un plugin serait mieux adapté. Par exemple au lieu de passer par un scénario, on pourrait directement via un plugin contenant toutes les commandes possibles, executer des commandes via l'option native dans Jeedom ou déclencher d'autres scénarios.
En attendant, certains je crois trouveront une utilité à cette petite intégration.
Voici donc mon Tuto, le tout fonctionne Nickel en passant:
Requis:
- Python 3.5 minimum
Procédure:
0- Créer un objet virtuel via le plugin virtuel avec une seule commande de type Info/Autre. Notez la valeur de l'ID de la commande.
1- Installer l'API à la version 0.1.4, les versions ultérieures sont dans un mode que je n'arrive pas à intégrer:
pip3 install 'emulated-roku==0.1.4'
2- Installer les modules requis:
pip3 install urllib.request asyncio
3- Créer ce script (roku.py par exemple) dans un répertoire accessible à l'usager www-data si vous voulez l'executer comme daemon, sinon n'importe quel autre répertoire:
Remplacer les valeurs xx.xx.xx.xx et par l'IP de votre Jeedom, la valeur de aaabbbcccddd par la clé API de votre box et zzzzz avec la valeur de l'ID du virtuel crée au début. Vous pouvez aussi mettre le script en mode débug à la ligne 11 comme ceci: logging.basicConfig(level=logging.DEBUG) le temps de tester.
Code : Tout sélectionner
#!/usr/bin/python3
"""Example script for using the Emulated Roku api."""
if __name__ == "__main__":
import socket
import asyncio
import logging
import emulated_roku
import os
import urllib.request
logging.basicConfig(level=logging.INFO)
loop = asyncio.get_event_loop()
servers = []
DEFAULT_HOST_IP = "xx.xx.xx.xx"
DEFAULT_LISTEN_PORTS = "8060"
JEEDOM_URL = "http://xx.xx.xx.xx/core/api/jeeApi.php?apikey=aaabbbbccccddd&type=virtual&id=zzzzz&value="
DEFAULT_UPNP_BIND_MULTICAST = True
class SENDRokuCommandHandler(emulated_roku.RokuCommandHandler):
"""Emulated Roku command handler."""
def send(self, event, usn, message):
urllib.request.urlopen(JEEDOM_URL + key)
def on_keydown(self, roku_usn, key):
urllib.request.urlopen(JEEDOM_URL + key)
def on_keyup(self, roku_usn, key):
urllib.request.urlopen(JEEDOM_URL + key)
def on_keypress(self, roku_usn, key):
print(roku_usn)
urllib.request.urlopen(JEEDOM_URL + key)
def launch(self, roku_usn, app_id):
urllib.request.urlopen(JEEDOM_URL + app_id)
@asyncio.coroutine
def init(loop):
handler = SENDRokuCommandHandler()
discovery_endpoint, roku_api_endpoint = emulated_roku.make_roku_api(
loop=loop,
handler=handler,
host_ip=DEFAULT_HOST_IP,
listen_port=DEFAULT_LISTEN_PORTS,
advertise_ip=DEFAULT_HOST_IP,
advertise_port=DEFAULT_LISTEN_PORTS,
bind_multicast=DEFAULT_UPNP_BIND_MULTICAST)
discovery_transport, _ = yield from discovery_endpoint
api_server = yield from roku_api_endpoint
servers.append(discovery_transport)
servers.append(api_server)
loop.run_until_complete(init(loop))
loop.run_forever()
5- lancer le script et démmarrez ensuite l'application Harmony sur votre Android ou Iphone.
6- Ajoutez un dispositif Multimédia de type Roku modèle Roku 4. L'application devrait le trouver facilement.
7- Créer une activité Harmony avec comme seul dispositif, le Roku précédemment ajouté. Cette étape est optionnelle et n'est nécessaire que si vous avez comme moi une télécommande de type Companion qui ne peut executer que des commandes via une activité.
8 Créer finalement un scénario dans Jeedom de type provoqué avec la commande du virtuel crée au début comme déclencheur et qui execute des commande selon la valeur du bouton pressé sur la Harmony:
Les valeurs possibles recupérées via le virtuel et pouvant êytre utilisées dans le scénario sont (selon la télécommande):
Code : Tout sélectionner
KEY_HOME = 'Home'
KEY_REV = 'Rev'
KEY_FWD = 'Fwd'
KEY_PLAY = 'Play'
KEY_SELECT = 'Select'
KEY_LEFT = 'Left'
KEY_RIGHT = 'Right'
KEY_DOWN = 'Down'
KEY_UP = 'Up'
KEY_BACK = 'Back'
KEY_INSTANTREPLAY = 'InstantReplay'
KEY_INFO = 'Info'
KEY_BACKSPACE = 'Backspace'
KEY_SEARCH = 'Search'
KEY_ENTER = 'Enter'
KEY_FINDREMOTE = 'FindRemote'
KEY_VOLUMEDOWN = 'VolumeDown'
KEY_VOLUMEMUTE = 'VolumeMute'
KEY_VOLUMEUP = 'VolumeUp'
KEY_POWEROFF = 'PowerOff'
KEY_CHANNELUP = 'ChannelUp'
KEY_CHANNELDOWN = 'ChannelDown'
KEY_INPUTTUNER = 'InputTuner'
KEY_INPUTHDMI1 = 'InputHDMI1'
KEY_INPUTHDMI2 = 'InputHDMI2'
KEY_INPUTHDMI3 = 'InputHDMI3'
KEY_INPUTHDMI4 = 'InputHDMI4'
KEY_INPUTAV1 = 'InputAV1'
Certe ce n'est pas très optimal comme intégration et pour cette raison je pense qu'un plugin serait mieux adapté. Par exemple au lieu de passer par un scénario, on pourrait directement via un plugin contenant toutes les commandes possibles, executer des commandes via l'option native dans Jeedom ou déclencher d'autres scénarios.
En attendant, certains je crois trouveront une utilité à cette petite intégration.
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Hello,
J'ai un plugin en beta sur le market a testé.
Les commandes sont mappées comme des infos binaires qui passent à 1 quand activées.
Mais de base, elles permettent de saisir des actions et scénarios en configuration qui sont éxécutés directement.
J'ai un plugin en beta sur le market a testé.
Les commandes sont mappées comme des infos binaires qui passent à 1 quand activées.
Mais de base, elles permettent de saisir des actions et scénarios en configuration qui sont éxécutés directement.
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Bonjour Lunarock,
Je souhaiterais testé ton plug-in. J'ai juste du mal a comprendre comment ma télécommande Harmony Elite peut intéragir avec jeedom une fois le module installé ?
Je souhaiterais testé ton plug-in. J'ai juste du mal a comprendre comment ma télécommande Harmony Elite peut intéragir avec jeedom une fois le module installé ?
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Depuis ton harmony tu dois pouvoir lancer un scan a la recherche d'équipements compatibles. Il va trouver un Roku sur l'iPhone de jeedom
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Ok je vois de quoi tu parle. je tente ça merci!
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Ca fonctionne nickel. Par contre pourquoi je ne vois pas les commande Power on, sleep et certaine autre dans mon objet. Car elle n'ont pas de commande API ?
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Oui c'est que c'est pas dans l'API. D'ailleurs ces boutons je les vois pas sur robyte (l'appli télécommande que j'utilise pour tester, la Smart remote ne trouvant rien elle)
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Ok. en tout cas merci pour le boulot !
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
@Lunarok, merci pour le taf! Je m'absente 5 jours du topic et une révolution a eu lieu
Bref je vais pouvoir tester, peux-tu m'envvoyer un lien pour télécharger ton plugin?
Merci
Bref je vais pouvoir tester, peux-tu m'envvoyer un lien pour télécharger ton plugin?
Merci
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Pour le commandes disponibles, seules celles supportée par le roku existent sur Harmony. Je ne pense pas exemple que la commande Power ou sleep existe sur Roku par exemple. Ce sont des fonctions qui ne sont pas supportées par le matériel et donc inéxistantes sur Harmony.
Par contre si vous n'avaez pas de Roku physiquement connu du hub, il sera possible de mapper des commandes liées à des applications. Il y a 10 applications virtuelles dans l'API. Bref assez de commandes pour remplir les boutons de la télécommande ou presque.
Par contre si vous n'avaez pas de Roku physiquement connu du hub, il sera possible de mapper des commandes liées à des applications. Il y a 10 applications virtuelles dans l'API. Bref assez de commandes pour remplir les boutons de la télécommande ou presque.
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Voilà c'est testé et ça fonctionne Nickel, les commandes binaires sur les appels sont parfaites pour ce type de besoin,
Merci encore pour le boulot!
Merci encore pour le boulot!
-
- Timide
- Messages : 8
- Inscription : 22 nov. 2015, 11:35
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
salut ton plugin fonctionne t' il sur rpi3 merci?
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Pas de raison qu'il fonctionne moins sur Pi que sur autre chose
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Bonjour. Je viens de voir que le plugin est dispo sur le market.
Par contre je ne visualise pas du coup à quoi ça sert...
En gros, un Roku c'est comme une box Android, on installé des applis dessus (Netflix, Prime, Plex, YouTube...). Et on l'a branché sur la TV et on regarde.
Là, le plugin sur Jeedom il va servir à quoi ? Il faut un Roku et il va le contrôler ?
Il faut pas de Roku? Dans ce cas là que peut on faire avec le plugin ?
J'ai regardé la documentation, mais ça ne me parle pas...
Merci
Par contre je ne visualise pas du coup à quoi ça sert...
En gros, un Roku c'est comme une box Android, on installé des applis dessus (Netflix, Prime, Plex, YouTube...). Et on l'a branché sur la TV et on regarde.
Là, le plugin sur Jeedom il va servir à quoi ? Il faut un Roku et il va le contrôler ?
Il faut pas de Roku? Dans ce cas là que peut on faire avec le plugin ?
J'ai regardé la documentation, mais ça ne me parle pas...
Merci
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
En gros : tu appuies sur lecture et bien tu peux déclencher tout ce que jeedom sait faire
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
-
- Timide
- Messages : 8
- Inscription : 22 nov. 2015, 11:35
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
en gros si j'ai tout compris pour controler jeedom avec une harmony elite, il n'y a pas d'autres solutions???
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Si tu a un périphérique qui transfère les commande infrarouge à jeedom. C'est du enocean.
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Ok. Donc le plugin permet de contrôler les actions de Jeedom avec une télécommande Harmony et un Hub.
Du coup rien à voir avec les clefs de streaming Roku.
Et si je prends le plugin, suis obligé de faire la dernière mise à jour du plugin Harmony car je ne l'ai pas fait pour éviter les soucis rencontrés dernièrement.
Merci
Du coup rien à voir avec les clefs de streaming Roku.
Et si je prends le plugin, suis obligé de faire la dernière mise à jour du plugin Harmony car je ne l'ai pas fait pour éviter les soucis rencontrés dernièrement.
Merci
Re: Idée pour le dev d'un nouveau plugin - Emulateur de ROKU
Non les deux ne sont pas liés. Pas de dépendances.
Moi je me sers du plugin avec une télécommande Android pour Roku par exemple. J'ai pas de harmony (mais j'y songe)
Moi je me sers du plugin avec une télécommande Android pour Roku par exemple. J'ai pas de harmony (mais j'y songe)
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité