CozyTouch2

Plugin CozyTouch2 V1.1

Piloter avec la box eedomus les équipements de la passerelle CozyTouch pour tous les types d'équipements (Atlantic, Sauter, Thermor)

Sommaire

1. Introduction

2. Première utilisation

3. Création des périphériques

4. Pour aller plus loin

5. Migration des équipements qui sont actuellement avec Interface Cozytouch/Somfy ou Radiateur Cozytouch

1. Introduction

Ce plugin permet de contrôler la plupart des équipements installés dans votre passerelle CozyTouch et application Smartphone Atlantic, Sauter ou Thermor, qui disposent du protocole IO-HomeControl, mais aussi RTS ou d'autres protocoles de communication (modbus).

Il permet de piloter actuellement (d'autres développements seront possibles):

Attention : l'installation du périphérique s'effectue uniquement en étant connecté sur le même réseau que votre box eedomus !

L'API utilisée est celle de Overkiz (filiale de Somfy), il y a une limite de consultation de l'API overkiz (sollicitation 1 fois toutes les 10 minutes, un cache est installé à cet effet et mis à 600 secondes). Il y a une forte ressemblance entre la passerelle CozyTouch et la passerelle Connexoon. Voir forum Somfy. Ceci explique que les API Overkiz et Somfy sont assez similaire.

qui est TeamCozyTouch2 ?

Le PLUGIN CozyTouch2 d'eedomus va rechercher les informations et écrire les informations dans l'API Overkiz. Les applications sur SmartPhone Atlantic, Thermor ou Sauter font de même, elles ont quelques fonctionnalités propres (Absence sur l'ensemble des appareils, programmation calendrier, ...).

L'interface de l'application CozyTouch n'a pas accès à certaines informations de l'API ou fonctionnalités qui ont été développées dans ce script.

Ceci explique qu'il y a quelques différences entre l'application Atlantic/Thermor/Sauter CozyTouch du smartphone et ce Plugin eedomus CozyTouch2

2. Première utilisation

Le PLUGIN se trouve dans le store eedomus. Pour l'installer, il faut cliquer dessus, puis cliquer sur créer. Dans la nouvelle page ouverte, adapter le nom, choisissez la pièce, éventuellement saisir une remarque.

Lors de l'installation d'un périphérique, vous devrez renseigner l'adresse de la pièce et l'adresse de l'équipement correspondant.

Pour cela, cliquez sur le lien et renseignez vos identifiants "username" et "password" CozyTouch. Le "username" est l'adresse e-mail utilisée dans l'application smartphone.

La liste des équipements connectés à votre passerelle CozyTouch s'affiche, veillez à bien conserver cette liste (copier/coller dans un fichier et sauvegarde pour utilisation ultérieure).

Cette liste contient:

a. la liste des pièces et leur identification dans encadré,

b. la liste des équipements: avec nom, type, controllableName, placeOID et URL dans encadré.

Il faut noter seul les types "internal:", "io:", "modbus:" sont affichés, les autres sont filtrés et accessibles dès lors que ce filtrage dans le script sera masqué.

3. Création des périphériques

Il est ensuite nécessaire de créer les périphériques sur eedomus en correspondance avec cette liste.

Le principe est simple, il s'agit d'une liste avec checkbox pour le type d'équipement et 2 informations à entrer: - identifiant de la pièce (placeOID) - adresse du périphérique (dans l'encadré de l'équipement)

--> Vous ne pouvez créer à la fois qu'un seul périphérique par type, par contre vous pouvez créer en 1 seule fois tous les types de périphériques <--

ATTENTION: Les adresses des périphériques des sous-types ont la même racine d'adresse et seul le chiffre de fin change.

Le Fil Pilote-radiateur se crée avec 1 type de périphérique: Mode et Signal.

Le Radiateur régulé se créé avec 2 types de périphériques: Radiateur régulé puis Température du radiateur régulé et Consommation électrique du radiateur régulé

Le Sèche serviettes se créé avec 2 types de périphériques: Sèche-serviettes régulé puis Température du sèche-serviettes régulé et Consommation électrique du sèche-serviettes régulé

Le Ballon d'eau chaude se créé avec 1 type de périphérique: Ballon d'eau chaude IO/modubus puis Consommation électrique du ballon d'eau chaude IO/modbus

La Climatisation réversible PAC se créée avec 3 types de périphériques: une Centrale, une ou plusieurs Zone(s), une ou plusieurs Température(s) de zone.

La pompe à chaleur PAC se créée avec 6 types de périphériques: une Centrale, une température extérieure, un ballon d'eau chaude, une ou plusieurs Zone(s), une ou plusieurs Température(s) de zone et Consommations électriques de la PAC. Le JSON et le script sont encore en cours de développement.

A la première utilisation, les périphériques sont créés et vont s'initialiser. Ceci doit mettre 1 à 2 minutes.

Tous les équipements (Fil Pilote, Radiateur régulé, Sèche serviettes, Ballon d'eau chaude, Climatisation réversible PAC, Pompe à chaleur PAC, ...) se mettent à jour toutes les 5 minutes (fréquence dans le polling = 5).

Le cache étant à 10 minutes certaines valeurs sont issues du cache d'autre de l'API.

Pour chaque type d'équipement il existe plusieurs périphériques qui se créent automatiquement.

Le Fil Pilote-radiateur dispose d'un périphérique Mode et Signal (niveau du signal IO)

Le Radiateur régulé dispose d'un périphérique Mode, Consigne, Absence, Mode fenêtre, Mode présence, Etat, Consigne actuelle, Régulation, Température, Consommation électricité et Signal

Le Sèche-serviettes dispose d'un périphérique Mode, Boost, Séchage, Consigne, Etat, Consigne actuelle, Régulation, Température, Consommation électricité et Signal

Le Ballon d'eau chaude IO dispose d'un périphérique Mode, Boost, Absence, Cumul durée pompe, Température, Quantité d'eau, Consommation électricité et Signal

Le Ballon d'eau chaude modbus dispose d'un périphérique Mode, Boost, Absence, Etat, Nombre de douche(s) restante(s), Température, Mode chauffe et Consommation électricité

La Climatisation réversible PAC dispose de périphériques pour la Centrale: Mode, Etat sélecteur, Signal. Pour une Zone: Mode, Etat Climatisation, Etat Chauffage, Sélecteur ON/OFF, Consigne Climatisation et Consigne Chauffage. Un périphérique Température.

La Pompe à chaleur PAC dispose de périphériques pour la Centrale: Mode, Signal, Température extérieure, 3 Consommations électricité = totale, ballon eau chaude et chauffage. Pour une Zone: Mode, Etat Chauffage, Sélecteur ON/OFF, Consigne Chauffage, Température. Pour le ballon d'eau chaude: (Le JSON est en développement...).

4. Pour aller plus loin

Des fonctions complémentaires sont mises en place dans le script pour ceux qui veulent aller plus loin après installation de leurs équipements dans eedomus.

5 fonctions sont mises en place:

La fonction Debug qui permet d'afficher plus d'informations lors du déroulement du script. En mode "test" il faut ajouter à l'URL &debug=1

La fonction Vider la liste des commandes qui permet de forcer à vider les instructions de commande en attente. En mode "test" il faut ajouter à l'URL &processQueue=true

La fonction Forcer le cache qui permet de forcer la lecture de l'API plutôt que d'attendre la durée du cache. En mode "test" il faut ajouter à l'URL &ignoreCache=true
Attention: Overkiz surveille la sollicitation de l'API par eedomus et nous demande de limiter les sollicitations avec le risque de bannissement. Ne pas en abuser

La fonction Config qui permet d'afficher en format HTML la liste des pièces et équipements. En mode "test" il faut remplacer dans l'URL &action=config

La fonction Expert qui permet d'envoyer une commande en direct. Cette fonction est masquée dans le périphérique mode de tous les équipements.
En mode "configuration", onglet "valeurs" cliquer sur "Afficher les actions masquées",
puis dans la ligne valeur brute "expert" éditer la colonne "Paramètres" qui contient la fonction setXxxxxxx, l'état XxxxxxState et l'argument de la fonction de l'API yyyy
vous pouvez mettre toute fonction relative à l'adresse de cet équipement, l'état lié à cette fonction et la valeur du paramètre de la fonction. Si aucun paramètre n'est requis mettre NULL.
cela va passer la commande en direct avec le paramètre, en vérifiant au préalable la valeur de l'état. Le paramètre peut être un booléen, un entier, un nombre, une chaine de caractère, une chaine Json (nparams>1).
A titre d'exemple la définition des commandes et états d'un fil pilote de l'API:
{"definition":{"commands":[{"commandName":"addLockLevel","nparams":2},{"commandName":"advancedRefresh","nparams":2},{"commandName":"cancelHeatingLevel","nparams":1},{"commandName":"delayedStopIdentify","nparams":1},{"commandName":"getName","nparams":0},{"commandName":"identify","nparams":0},{"commandName":"off","nparams":0},{"commandName":"refreshHeatingLevel","nparams":0},{"commandName":"removeLockLevel","nparams":1},{"commandName":"resetLockLevels","nparams":0},{"commandName":"setHeatingLevel","nparams":1},{"commandName":"setHeatingLevelWithTimer","nparams":2},{"commandName":"setName","nparams":1},{"commandName":"startIdentify","nparams":0},{"commandName":"stopIdentify","nparams":0},{"commandName":"wink","nparams":1},{"commandName":"pairOneWayController","nparams":2},{"commandName":"setHeatingLevelForTrigger","nparams":1},{"commandName":"unpairAllOneWayControllers","nparams":0},{"commandName":"unpairOneWayController","nparams":2}],"states":[{"eventBased":true,"type":"DataState","qualifiedName":"core:CommandLockLevelsState"},{"type":"DiscreteState","values":["good","low","normal","verylow"],"qualifiedName":"core:DiscreteRSSILevelState"},{"type":"DataState","qualifiedName":"core:NameState"},{"type":"DiscreteState","values":["off","on"],"qualifiedName":"core:OnOffState"},{"type":"ContinuousState","qualifiedName":"core:PriorityLockTimerState"},{"type":"ContinuousState","qualifiedName":"core:RSSILevelState"},{"type":"DiscreteState","values":["available","unavailable"],"qualifiedName":"core:StatusState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"core:TargetHeatingLevelState"},{"type":"ContinuousState","qualifiedName":"core:VersionState"},{"type":"DiscreteState","values":["frostprotection","off"],"qualifiedName":"io:LastTargetHeatingLevelState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:MaximumHeatingLevelState"},{"type":"DiscreteState","values":["comfortLevel1","comfortLevel2","comfortLevel3","comfortLevel4","environmentProtection","humanProtection","userLevel1","userLevel2"],"qualifiedName":"io:PriorityLockLevelState"},{"type":"DiscreteState","values":["LSC","SAAC","SFC","UPS","externalGateway","localUser","myself","rain","security","temperature","timer","user","wind"],"qualifiedName":"io:PriorityLockOriginatorState"},{"type":"DiscreteState","values":["boost","comfort","comfort-1","comfort-2","eco","frostprotection","off","secured"],"qualifiedName":"io:TargetHeatingLevelState"},{"type":"ContinuousState","qualifiedName":"io:TimerForTransitoryStateState"}]}}

5. Migration des équipements qui sont actuellement avec Interface Cozytouch/Somfy ou Radiateur Cozytouch.

Ce Plugin est la fusion des 2 Plugins Interface Cozytouch/Somfy et Radiateur Cozytouch. Des développements supplémentaires ont été effectués pour gérer en plus le ballon d'eau chaude et la climatisation réversible.

L'imagerie a été complètement revue (merci à RAR69), ainsi que la structure du php car le nombre de commandes a été plus que multiplié par 2.

Certaines fonctions ont été abandonnées comme:

Il est recommandé :

- de faire une sauvegarde eedomus et éventuellement des copies écran.

- D'installer le Plugin dans une pièce dédiée (par exemple Migration CozyTouch2).

- D'installer tous les équipements que vous possedez déjà sans supprimer les anciens-> suivre les paragraphes 2 et 3 de cette documentation.

Lorsque les périphériques sont installés:

Lorsque les tests ont donné satisfaction: