Piloter avec la box eedomus les équipements de la passerelle CozyTouch pour tous les types d'équipements (Atlantic, Sauter, Thermor)
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):
le fil pilote,
le radiateur régulé,
le sèche serviettes régulé,
2 types de ballons d'eau chaude,
Climatisation réversible,
La pompe à chaleur (en cours de développement).
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
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é.
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...).
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"}]}}
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:
le compteur quotidien de kWh (je vous recommande d'utiliser le Plugin du store eedomus Compteur avec RAZ),
la consigne de température groupée et la mesure moyenne de plusieurs radiateurs dans une même pièce (on regarde si cette fonction peut être mise en oeuvre ou contournée).
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:
vérifier leur fonctionnement en laissant tourner pendant 15 minutes pour vérifier que les états sont identiques à ceux déjà installés.
Passer les commandes et vérifier que les états changent conformément aux consignes passées.
Lister les règles et éventuellement les macros qui sont liées aux périphériques.
Lorsque les tests ont donné satisfaction:
supprimer les anciennes installations Interface Cozytouch/Somfy ou Radiateur Cozytouch.
Changer la pièce test des périphériques nouvellement installés par la pièce dans laquelle l'équipement devrait être localisé.
Refaire les règles et éventuellement les macros des périphériques sur la base de la liste établie au préalable.