Archives de la catégorie : Contrôleurs

Domoticz, contrôleur Z-Wave libre et gratuit !

Présentation

domoticz00

Domoticz est un contrôleur domotique open source gratuit et consommant peu de ressources système. Il fonctionne sur plusieurs OS (Linux, Windows) et peut être installé sur un Raspberry Pi ou un NAS Synology par exemple. Les scénarios se font sous forme de puzzle (comme sur la Zipabox, la HC2 de Fibaro, SynoZWave…) avec Blocky et il est possible de mettre en place des scripts Lua. Domoticz est multi protocoles : Z-Wave (en utilisant la librairie OpenZWave), RFXCom, YouLess Meter, Pulse Counters, 1-Wire, EnOcean

L’interface de Domoticz est assez simple et ergonomique, bref réussie. L’un des intérêt de Domoticz est de proposer nativement un système d’historique de tous les devices (bouton Log) très bien fait.

domoticz05 (suite…)
Publié dans Domotique, Contrôleurs, Raspberry | Tagué , , | 7 commentaires

Vera Lite : Plantage sévère

VeraDeadlock
Description du plantage

Ma Vera Lite a subitement planté alors qu’elle fonctionnait normalement (je n’étais pas en train d’intervenir dessus). Voici les derniers messages d’erreur du log :

01	05/15/14 12:06:37.009	Failed to get lock(0xa3e20c) Variable: ../ZWave/ZWaveJobHandler.h:372 last used UserData.cpp:463  first used UserData.cpp:463  thread: 0x2c315680 (>579995)  handler 0x424934 bOkToFail 0 <0x2c915680>
01	05/15/14 12:06:37.019	Deadlock problem. going to reload and quit <0x2c915680>
01	05/15/14 12:06:44.231	Main WatchDogRoutine: blocked - terminating 1 <0x2d92f680>

J’ai immédiatement tenté de la redémarrer en la débranchant puis en la rebranchant, et là, plus rien : plus d’interface web, plus de ssh, aucune réponse au ping.
Les voyants de la Vera sont entrés dans la séquence cyclique suivante :

  1. Le voyant bleu clignote environ 40 secondes
  2. Le voyant vert s’allume quelques secondes
  3. Les quatre voyants s’éteignent puis s’allument puis s’éteignent
  4. Retour au 1
(suite…)
Publié dans Domotique, Contrôleurs | Tagué , | 1 commentaire

Alarme Home Control 2 de MyFOX

myfox

Présentation

Cahier des charges

Mon cahier des charges minimal est assez simple :

  • Véritable alarme plutôt qu’un patchwork à base de modules Z-Wave sur la box domotique
  • Alarme connectée afin de pouvoir l’armer, la désarmer ou faire d’autres manipulations à distance
  • Alarme interfaçable avec la domotique de la maison

Je suis convaincu que ce n’est pas une bonne idée de concevoir son système d’alarme à base de modules Z-Wave. Tout d’abord, le protocole Z-Wave et les box qui le mettent en œuvre ne sont pas conçues pour faire de la sécurité (brouillage radio…). En outre, le Z-Wave n’est ni une technologie fiable, ni une technologie stable. Ensuite, ma box domotique est déjà bien chargée, il lui arrive (rarement) de planter sans qu’elle ne puisse redémarrer d’elle-même (même après avoir été débranchée et rebranchée). Enfin, mieux vaut ne pas mettre tous ses œufs dans le même panier : par exemple, une Vera Lite, une IPX800 et une HC2 de MyFOX se complètent bien et rendent le système bien plus fiable que si toutes ces fonctionnalités étaient supportées par un système unique.

Dans ce contexte, il est important que box domotique et système alarme puissent communiquer. En effet, il est intéressant de pouvoir baisser le chauffage ou éteindre certaine lumière quand l’alarme est armée, et faire l’inverse quand elle est désarmée. Il est également intéressant que la domotique puisse déclencher l’alarme en se basant sur l’activation de ses propres capteurs, ou être informée d’une intrusion pour prendre certaines mesures.

(suite…)
Publié dans Domotique, Contrôleurs, Alarme | Tagué | 20 commentaires

Communication entre Vera Lite et IPX800

Vera-IPX800
Problématique

Ce billet propose différentes fonctions qui permette d’utiliser pleinement le contrôleur IPX800 depuis la box Vera Lite. Dans un premier temps, il expose comment consulter ou modifier l’état de l’IPX800. Dans un second temps, il propose un moyen de synchroniser l’état de l’IPX800 avec une structure de donnée dans la Vera Lite afin de bénéficier d’un cache restant synchrone avec les changements d’état de l’IPX800.

Lire un état sur l’IPX800
Connexion à l’IPX800 en Lua :
local socket=require("socket")
 
function josdConnexionIPX800()
  local addresseIP="192.168.0.34"  -- adresseIP de l'IPX
  local port=9870 -- par defaut le port de lIPX est 9870
  local client = assert(socket.connect(addresseIP, port))
  client:send("key=<motdepasse>") -- Si l'interface est protégée par un mot de passe
  client:receive() -- Si l'interface est protégée par un mot de passe
  return (client)
end
</motdepasse>

Attention, à partir du micrologiciel version 3.05.46, si l’interface de l’IPX800 est protégée par un mot de passe, ce dernier doit être envoyé juste après la connexion comme indiqué ci-dessus (remplacer <motDePasse> par le mot de passe).

Fonction interne Lua de lecture d’un état de l’IPX800 :

function josdGetIPX800(indice,commande)
  if (type(indice)=="string") then indice=tonumber(indice) end
  assert(type(indice)=="number" and indice>=1 and indice< =8)
  local client=josdConnexionIPX800()
  commande=commande..tostring(indice)
  client:send(commande)
  local reponse=client:receive()
  assert(client:close())
  local etat=assert(string.match(reponse,'=([0-9]*)$'))
  return tonumber(etat)
end
Fonction Lua de lecture de l’état d’une entrée de l’IPX800 :
function josdGetEntreeIPX800(indice)
  return josdGetIPX800(indice,"GetIn")
end
Fonction Lua de lecture de l’état d’une sortie de l’IPX800 :
function josdGetSortieIPX800(indice)
  return josdGetIPX800(indice,"GetOut")
end
Fonction Lua de lecture de l’état d’un compteur d’impulsion de l’IPX800 :
function josdGetCompteurIPX800(indice)
  return josdGetIPX800(indice,"GetCount")
end
Fonction Lua de lecture de l’état d’une entrée analogique de l’IPX800 :
function josdGetEntreeAnalogiqueIPX800(indice)
  return josdGetIPX800(indice,"GetAn")
end
(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué , , , | Laisser un commentaire

IPX800 fonction Push

pushbutton
Problématique

La technique de Push permet d’exécuter une requête HTTP lorsqu’une entrée ou une sortie de l’IPX800 change d’état. C’est le meilleur moyen pour informer en temps réel un autre dispositif internet, comme une box domotique, d’un changement d’état de l’IPX800. L’IPX800 propose deux façons de paramétrer des Push :

  1. Un paramétrage centralisé commun à toutes les entrées et sorties
  2. Un paramétrage individualisé pour chacune des entrées et chacune des sorties

Malheureusement, avec la dernière version en date du micrologiciel (3.05.38), les deux techniques, bien qu’utilisables ne fonctionnent pas parfaitement.

Paramétrage centralisé du Push
IPX800PushCentralisé

Le paramétrage du Push centralisé est accessible de la manière suivante : M2M → PUSH. Voici les différents champs à remplir :

  • Server: <adresse recevant le push>, par exemple 192.168.0.44
  • Port: <le port, par exemple 3480 pour une box Vera
  • Bien cocher Enable puis cliquer sur Save
  • Path: <requête>, par exemple /data_request?id=lr_JH&data=$M&$I
(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué | 1 commentaire

Requêtes HTTP sur Vera Lite

Problématique
http

Il est important de pouvoir faire des requêtes HTTP sur un contrôleur domotique. C’est un moyen de communication qui permet de piloter la box depuis l’extérieur. Cela permet par exemple de développer sa propre interface web pour contrôler sa domotique ou encore mettre en œuvre une technique de push depuis un objet connecté (comme une box IPX800) vers la box domotique afin de notifier de tout changement d’état.

Requête locale et requête distante

Le début d’une requêtes HTTP est différent suivant que la requête est faite depuis le réseau local sur lequel se situe la Vera ou depuis l’extérieur.

  • Depuis le réseau local : http://<ip_Vera>:3480…
    Les sont à remplacer par la suite de la requête.
  • Depuis l’extérieur, le plus simple est de passer par les serveurs de la société Vera Smart Home Controllers : https://fwd1.mios.com/<login>/<password>/<n°vera>…
    Les sont à remplacer par la suite de la requête, fwd1 peut être remplacé par fwd2 ou fwd3.
    Je n’aime pas trop cette technique qui indique en clair dans l’url l’identifiant et le mot de passe et crée une dépendance au serveur de la société Vera.
  • Une autre technique depuis l’extérieur est de mettre en place une redirection de port sur le routeur. On peut alors par exemple écrire : http://<adresse_perso>:<port_redirigé>…
    L’inconvénient de cette technique est que n’importe qui trouvant ce port ouvert peut faire beaucoup de choses avec votre Vera.
  • Pour sécuriser l’accès à la Vera, sans utiliser les serveurs de la société Vera Smart Home Controllers, une solution consiste à passer par un VPN.
Requête sur device ou scène
  • Requête pour modifier l’état d’un device de type On/Off :
    …/data_request?id=lu_action&DeviceNum=<device>&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=< état>
    </device>
    Les doivent être remplacés par le début de requête adapté, <device> par le numéro de device concerné et <état> par l’état désiré (0 ou 1).
    Exemple de requête complète :
    http://192.168.0.44:3480/data_request?id=lu_action&DeviceNum=19&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
  • Requête pour connaître l’état d’un device de type On/Off :
    …/data_request?id=variableget&DeviceNum=<device>&serviceId=urn:upnp-org:serviceId:SwitchPower1&Variable=Status
    </device>
    Les doivent être remplacés par le début de requête adapté et <device> par le numéro de device concerné.
    Exemple de requête complète :
    http://192.168.0.44:3480/data_request?id=variableget&DeviceNum=19&serviceId=urn:upnp-org:serviceId:SwitchPower1&Variable=Status
  • Lire ce billet pour savoir comment interagir avec un autre type de device
  • Requête pour exécuter une scène :
    …/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=<num éro de scène>
    </num>
    Les doivent être remplacés par le début de requête adapté et <Numéro de scène> par le numéro de la scène à exécuter.
    Exemple de requête complète :
    http://192.168.0.44:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=18
(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué , | Laisser un commentaire

Vera Lite : Polling

Cyber-The-Vote-Polling-Place

Problématique

Le polling désigne le processus par lequel la Vera interroge un module Z-Wave afin de connaître son état (on/off, niveau batterie, température …). Le polling n’est pas forcément nécessaire avec un module qui retourne spontanément son état à intervalles réguliers. Certains modules du type capteur fonctionnent souvent sur piles. Ces modules sont, la plupart du temps, dans un mode d’économie d’énergie qui n’écoute le réseau et pendant lequel tout polling est impossible.

Paramétrage général

Le polling n’est pas forcément actif bien qu’il le soit par défaut. Pour l’activer ou le désactiver, il faut cocher l’option Poll nodes (1) dans l’onglet SETUP → Z-Wave Settings → Options. Quand le polling est actif, un certain nombre d’options, dans le même onglet (SETUP → Z-Wave Settings → Options), permettent d’en affiner le fonctionnement général.

  • Number of seconds to wait to start polling 20 (2) : intervalle en seconde entre un redémarrage de la Vera ou du moteur de Luup et le premier polling.
  • Only poll a node if the Z-Wave network is idle at least 10 seconds (3) : nombre de secondes pendant lesquelles la Vera ne doit pas avoir généré de commande autre qu’un polling avant qu’une nouvelle demande de polling soit effectuée.
  • Unless specified otherwise, poll each node at most once every 60 seconds (4) : nombre de secondes minimum entre deux polling sur le même module.
  • Poll a node every 30 seconds (5) : périodicité en secondes du processus de polling.
(suite…)
Publié dans Domotique, Contrôleurs, Modules | Tagué , | Laisser un commentaire

Vera Lite : Trucs et Astuces

VERA-LITE_Astuces

Redémarrer la Vera (UI7)

Settings → Net & Wi-fi → Reboot

Mot de passe root (UI5)

  1. Télécharger une sauvegarde de la Vera (SETUP → Backup → Télécharger un backup)
  2. Décompresser le fichier
  3. Éditer le fichier /etc/cmh/cmh.conf
  4. Le mot de passe se trouve sur la ligne commençant par :Password=

Configuration avancée

Il existe une page cachée permettant de paramétrer plus finement certains aspects de la Vera Lite :
http://IP_VERA/cgi-bin/webif/info.sh

(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué , | Laisser un commentaire

IPX800 v3 : le serveur de domotique câblée

ipx800

Présentation

L’IPX800 est une serveur de domotique centralisés intégrés au tableau électrique. Il s’agit en fait d’une carte électronique capable de contrôler des entrées digitales tout ou rien, des entrées analogiques et des sorties relais sur contact inverseur. Ainsi, contrairement à un contrôleur comme la Vera Lite, tout doit être câblé avec l’IPX800. Cela en fait un contrôleur moins accessible qu’une box Z-Wave, mais c’est aussi une solution plus fiable, moins couteuse et tout à fait complémentaire d’une box utilisant un protocole sans fil. Bien entendu, l’IPX800 est connectée et dispose d’une interface Web d’administration.

(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué | 3 commentaires

IPX800 v3 : Procédure de mise à jour

ipx800

L’IPX800 est un système domotique filaire centralisé intégré au tableau électrique. La mise à jours du micrologiciel de l’IPX800 est un chemin de croix comportant des difficultés à chacune des étapes.

Dans tous les cas, la première chose à faire est une sauvegarde du paramètrage de l’IPX800 : Lan settings → Download settings.

Ce billet décrit principalement la procédure de mise à jour manuelle. Il existe aussi une procédure automatique bien plus simple à mettre en œuvre abordée à la fin du billet section Mise à jour automatisée avec GCEScanDevices.jar.

Téléchargement du micrologiciel

Rien que l’obtention du micrologiciel est une épreuve. En effet, CGE Electronics a inventé le manuel d’utilisation et le micrologiciel archivés dans un fichier rar protégé par un mot de passe (sic) ! En se rendant dans Accueil → Ethernet → Webserver IPX800 V3.00 → Télécharger, accessible uniquement après avoir créé un compte, on accède à la liste des micrologiciels et documentations. Mais impossible de décompresser les archives rar avec le mot de passe présent sur l’emballage de l’IPX800. Par contre, cela fonctionne en allant sur Accueil → Téléchargement → IP-X800 V3 Doc et logiciels.

Pour connaître la version de votre micrologiciel (afin de savoir s’il doit être mis-à-jour), il faut se rendre dans le panneau LAN SETTINGS de l’interface web de l’IPX800.

La mise à jour nécessite 2 fichiers (bien vérifier que les numéros de version soient les même) qui se trouvent dans le répertoire Flash ou Firmware de l’archive téléchargée :

  • Le micrologiciel est contenu dans le fichier XXXXXX.hex
  • Le site Web est contenu dans le fichier XXXXXX.bin

Remarque : tout comme le nom du répertoire contenant les 2 fichiers du micrologiciel, l’entête de ces fichiers change régulièrement (gceip, site, Site_, IPX800_) et n’est parfois pas la même pour les deux fichiers.

Installation/paramétrage de TFTP

Sous Linux, il suffit d’installer un client TFTP. Sous Microsoft Windows (8), le client est déjà installé mais il n’est pas activé par défaut. Commencer par trouver le Panneau de configuration (pas évident avec la nouvelle interface de la version 8), puis se rendre dans Panneau de configuration → Programmes → Programmes et fonctionnalités → Activer ou désactiver des fonctionnalités Windows → Client TFTP.

(suite…)
Publié dans Domotique, Contrôleurs, Tutoriels | Tagué | 8 commentaires