Télécommande Remotec URC 550 et Vera (Zwave)

Ma Vera Lite (sous UI5) est le centre de contrôle de mon installation domotique. Je peux actionner mes modules depuis un Ipad, un Iphone, des interrupteurs mais une bonne vieille télécommande reste une solution très utile.

Mon besoin : Avoir une télécommande universelle et Zwave qui me permette depuis mon canapé de télécommander télévision et décodeurs mais aussi l’éclairage et les volets de mon salon/salle à manger compatible avec ma Vera. J’ai testé la Remotec URC 550.

C’est, en particulier cet article du site maison et domotique qui m’a fait me tourner vers ce contrôleur Zwave.

Mes conclusions :

Pour le pilotage du matériel audio-visuel,

c’est pas mal : je peux piloter plusieurs télévisions et récepteurs TNT (suivant le cas, en entrant un code matériel ou par apprentissage des touches) mais impossible de faire reconnaître les commandes (pourtant IR) d’une télécommande d’une Dreambox (un démodulateur satellite).

Entrer le code d’un appareil :

  • Il faut d’abord choisir le code à 4 chiffres, il sera probablement nécessaire d’en tester plusieurs. (Je n’ai pas eu la liste des codes avec la télécommande, heureusement, elle se trouve ici : manuel et codes.)
  • Puis, appuyer sur la Touche de mode d’appareil désirée (par ex.: TV).
  • Maintenir simultanément enfoncées 3s les touches « CH + » et « VOL – » (le voyant vert s’allume.)
  • Utiliser les touches numériques de 0 à 9 pour entrer le code. (Le voyant clignote deux fois puis s’éteint.)
  • Et tester si l’appareil répond correctement (sinon tenter un autre code…).

Pour le mode apprentissage (le signal IR transmis par une télécommande quand une touche est pressée est appris à l’URC 550) :

  1. Appuyer sur la touche de mode d’appareil désirée (par ex.: TV).
  2. Maintenir enfoncées simultanément 3s les touches « CH+ » et « VOL- » (le voyant vert s’allume.)
  3. Entrerle code « 0000 » (le voyant clignote)
  4. Placer les deux télécommandes face à face (à quelques centimètre de distance).
  5. Appuyer une fois sur la touche de l’URC 550 à laquelle il faut affecter le signal IR (Le voyant vert clignote une foiset reste allumé.)
  6. Appuyer sur la touche de la télécommande d’origine et la maintenir enfoncée pendant quelques secondes. (Lorsque le voyant vert clignote deux fois et reste continuellement allumé, cela signifie que la commande a été apprise correctement et que vouspouvez relâcher la touche sur votre télécommande. Si le voyant rouge clignote six fois, cela indique une erreur dans la procédure d’apprentissage. )
  7. Repéter les étapes 5 et 6 pour toutes les touches désirées.
  8. Appuyer sur la meme touche de mode d’appareil de l’étape 1 (par ex.: TV) pour mettre fin au mode d’apprentissage (le voyant vert clignote deux fois avant de s’éteindre.)

Pour le pilotage du Zwave,

c’est possible mais ça pourrait être beaucoup mieux. La compatibilité avec la Vera serait à améliorer. Voici ma solution partiellement satisfaisante :

J’ai mis la télécommande en contrôleur secondaire. La Vera reste le contrôleur primaire. Ceci n’est pas très compliqué mais peu intuitif. Il faut utiliser les boutons au dos de la télécommande :

  1. Associer la télécommande à la Vera : mettre la Vera en mode association puis, avec les boutons au dos de la télécommande, appuyer 3s simultanément sur les touches Conf et Remove (OK s’allume en vert) puis taper 8363. En principe, c’est associé.
  2. Programmer la télécommande. C’est là que les ennuis commencent. Il semble qu’il n’est pas possible dans cette configuration d’associer un module Zwave (device) à une touche de la télécommande mais seulement des scènes. De plus je n’ai réussi qu’à gérer le lancement de scènes par le bouton On. Le Off ne semble jamais pris en compte (même si la Vera semble le proposer). En résumé, il est possible d’associer 16 scènes (avec les 8 boutons ON fois deux grâce au mode SHIFT) et pas autre chose, ce qui n’est pas si mal. Pour faire cela, la solution qui semble le mieux fonctionner chez moi et de créer la ou les scènes associées à ces touches sur la Vera puis de synchroniser ces scènes avec la télécommande : mettre la télécommande en mode écoute en appuyant 3s simultanément sur les touches Conf et Remove puis en tapant 8364 (attention le code n’est plus le même) et depuis la Vera dans l’onglet « Paramètres » du module appuyer sur « Configurer le noeud maintenant » . (Il faut patienter, pendant que le OK clignote et quelques fois recommencer la manipulation car comme ce semble être souvent le cas avec les Zwave à pile, la synchro est capricieuse…) Cette procédure est à refaire à chaque changement dans une des scènes qui concernent la télécommande pour que la modification soit prise en compte.

Pour les scènes, en m’inspirant de différentes discussions, j’utilise une solution que je trouve plutôt facile à maintenir : créer une scène associée avec l’ensemble des touches de la télécommande et gérer les actions par un script en luup (comme nous allons le voir pour associer un module à une touche qui agit alors comme un bouton poussoir ON/OFF ou pour lancer une scène par pression d’une touche).

L’association des touches avec une scène est récapitulée automatiquement dans l’interface :

Pour la scène :

Créer une scène.

Créer un déclencheur pour chacunes des 16 touches de la télécommande. Par exemple pour la touche 2 :

Faire le script :

Tout d’abord pour gérer mes scènes et les mettre à jour facilement, j’ai mis dans le script Lua de démarrage (APPS/Développer des applications/Editer le démarrage Lua) des déclarations de variables, en particulier les ID de mes modules et des fonctions, pour cet exemple, il faut :

-- Definitions des Devices
--
id_teleco = 41 --Remotec URC550
-- Salon
id_salle_a_manger = 20
id_salon = 8
id_sam_cuisine = 38
id_television = 11
-----------------------
-- Scènes
id_eteindre_salon= 8

-----------------------
-- Déclarations locales pour les fonctions
local SID_SwitchPower1="urn:upnp-org:serviceId:SwitchPower1"

-----------------------
-- Fonctions
-- Fonction pour allumer id_device si éteint et inversement
function Switch_Device(id_device)
local result = "1"
if luup.variable_get(SID_SwitchPower1, "Status", id_device) == "1" then result="0" end
luup.call_action(SID_SwitchPower1, "SetTarget", {newTargetValue = result}, id_device)
return result
end

Ceci me permet de faire appel aux différentes ID des modules de manière plus lisible (id_teleco, plutôt que 41 qui est l’ID de mon URC-550). C’est également plus facile à mettre à jour si je remplace mon module et qu’il change d’ID…

Pour les fonctions, ceci me permet de réutiliser la même fonction dans plusieurs scènes. La fonction Switch_Device me sert à faire changer d’état le module (pour l’allumer s’il est éteint et inversement). Elle retourne le nouvel état du module.

Ensuite pour le script de ma scène (dans l’onglet LUUP), j’ai mis :

--debut
local SID_SceneController1="urn:micasaverde-com:serviceId:SceneController1"
local SID_HomeAutomationGateway1="urn:micasaverde-com:serviceId:HomeAutomationGateway1"

--Récupére le numéro de la touche
local active=luup.variable_get(SID_SceneController1, "sl_SceneActivated", id_teleco)
if not active then active=-1 end
active=tonumber(active)

--Action en fonction de la touche
local etat="" --contiendra l'état du device (voir plus bas), mais non utilisé
if active==1 then
etat= Switch_Device(id_salon)
elseif active==2 then
etat= Switch_Device(id_television)
elseif active==3 then
etat= Switch_Device(id_salle_a_manger)
elseif active==4 then
etat= Switch_Device(id_sam_cuisine)
elseif active==5 then

elseif active==6 then

elseif active==7 then

elseif active==8 then

elseif active==9 then
luup.call_action(SID_HomeAutomationGateway1, "RunScene", {SceneNum = id_eteindre_salon}, 0)
elseif active==10 then

elseif active==11 then

elseif active==12 then

elseif active==13 then

elseif active==14 then

elseif active==15 then

elseif active==16 then

end
--fin

Une petite explication :

Après avoir récupéré le numéro de la touche qui a été pressé sur la télécommande, je lance l’action associée.

C’est à partir de la ligne

–Action en fonction de la touche

que ça se passe. Dans mon exemple, ce sont les touches ON de 1 à 4 et la 9 (soit Shift 1) qui déclenchent une action.

Ainsi les lignes :

elseif active==2 then
etat= Switch_Device(id_television)

sont utilisées lorsque le bouton 2-on est pressé. Si le module avec l’ID id_television est allumé, alors, il s’éteint et inversement.

Les lignes :

elseif active==9 then
luup.call_action(SID_HomeAutomationGateway1, « RunScene », {SceneNum = id_eteindre_salon}, 0)

sont déclenchées par appui sur le bouton 9 (donc SHIFT 1 de la télécommande) et la scène avec l’ID id_eteindre_salon est déclenchée.

Dernier point, cette télécommande a un bouton All ON et All OFF ce qui permet d’allumer ou d’éteindre tous les appareils. Certains pourront trouver cela pratique mais pour ma part je n’avais pas du tout envie que quelqu’un (par exemple mes enfants) puisse d’une manière inopinée et involontaire allumer ou éteindre toute la maison. Obliger les modules à ne pas répondre à cette commande n’est pas toujours évident. Ma solution dans le prochain article…

8 réflexions sur “Télécommande Remotec URC 550 et Vera (Zwave)

  1. Pingback: Code telecommande | Zumroo
  2. Super ! j’ai appliqué le tutoriel pour un porte clef 4 boutons zwave Aeonlabs. J’ai pas tout compris mais en appliquant ça marche bien pour les 4 boutons. par contre je n’arrive pas à activer les 4 autres scènes possibles lorsque l’on appuie 2 secondes sur les mêmes boutons. Savez vous comment on peut interpréter le signal des 4 scènes possibles sur un appui long ?
    En tout cas chapeau parce que sinon cette télécommande est inutilisable avec une vera. Merci.

      • C’est bien 1à 4 pour les appuis court, ça marche.
        Pour les appuis longs, j’ai essayé avec des boutons 5 à 8 mais ça ne s’active pas dans ce cas.
        Après plusieurs tests et recherche j’ai compris qu’il y avait une activation des appuis longs en configurant le trigger dans le cas de la désactivation de la scène en utilisant les même chiffres 1 à 4.
        En testant, effectivement, il se passe des « choses » (avec le même code luup un appui long sur la touche 4 déclenche l’action du bouton 3 !). Mais je ne sais pas comment modifier le code luup pour prendre correctement en compte le cas des scènes désactivées. Auriez vous un exemple ?
        Merci.

      • Salut,
        Je n’ai pas de module de ce type pour essayer.
        Je pense qu’il va falloir gérer les appuis longs dans une autre scène:
        Y mettre tous les triggers d’appui long et je suppose qu’il faut mettre sl_SceneDeactivated à la place de l_SceneActivated dans le code luup.

        Je veux bien un retour pour savoir si ça marche…

  3. Grâce au mot magique  » sl_SceneDeactivated » ça marche. On peut tout mettre dans la même scène en modifiant le code comme suit ci-dessous. Il suffit de réinitialiser la valeur activation et désactivation après la lecture (testé la glute et ça marche). Tout le reste du code c’est le même (idem fonction switch_device). Il faut donc créer les 8 trigers dans la même scène.


    –Récupère le numéro de la touche
    local active=luup.variable_get(SID_SceneController1, « sl_SceneActivated », numZtelecom)
    luup.variable_set(SID_SceneController1, « sl_SceneActivated »,0, numZtelecom)
    local deactive=luup.variable_get(SID_SceneController1, « sl_SceneDeactivated », numZtelecom)
    luup.variable_set(SID_SceneController1, « sl_SceneDeactivated »,0, numZtelecom)

    local action = tonumber(active)
    if action==0 then
    action = tonumber(deactive) + 4
    end

    –Action en fonction de la touche
    active=tonumber(action)
    … (la suite c’est pareil)

    J’ai enfin apporté mon premier petit cailloux à l’édifice.
    Merci.

    • Effectivement, je ne savais pas s’il était possible de remettre à zéro la valeur activation/désactivation.
      Intéressant, merci pour l’info…

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s