Calaos, Home Automation Forum
Configuration Raspberry et automate different de Wago - Printable Version

+- Calaos, Home Automation Forum (https://calaos.fr/forum)
+-- Forum: Utilisation - Installation - Configuration (https://calaos.fr/forum/forumdisplay.php?fid=4)
+--- Forum: Installation du système (https://calaos.fr/forum/forumdisplay.php?fid=5)
+--- Thread: Configuration Raspberry et automate different de Wago (/showthread.php?tid=291)



Configuration Raspberry et automate different de Wago - Dufourg Domotica - 06-04-2014

Bonjour,
Tout d'abord, félicitation à toutes les personnes qui participent et aident sur ce Forum et bien entendu aux développeurs du projet Calaos.

J'essaye actuellement d'installer et de configurer le serveur Calaos sur Raspberry tout en le faisant communiquer avec un automate programmable de marque Slicetex STX8081 (marque Argentine). Cette automate peut communiquer en Modbus TCP et RTU, il est donc logiquement compatible avec le système Calaos.

Ma configuration:
Image Raspberry (calaos-image-raspberrypi-2014-04-28.tar) installée et en fonctionnement, j'ai accès au serveur web sur l'IP du Raspberry 192.168.1.66, je me connecte également en SSH avec le compte root.

Concernant les fichiers de configuration de Calaos, ils sont placés dans le répertoire : home/.config/calaos/

io.xml
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<calaos:ioconfig xmlns:calaos="http://www.calaos.fr">
    <calaos:home>
        <calaos:room name="Sala" type="salon" hits="0">
            <calaos:output gtype="light" gui_type="light" host="192.168.1.81" id="output_0" name="luzz" port="502" type="WODigital" var="0" vis$
        </calaos:room>
        <calaos:room name="Habitacion" type="salon" hits="0">
            <calaos:output gtype="light" gui_type="light" host="192.168.1.81" id="output_2" name="Luz" port="502" type="WODigital" var="1" visi$
        </calaos:room>
    </calaos:home>
</calaos:ioconfig>

rules.xml
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<calaos:rules xmlns:calaos="http://www.calaos.fr">
    <calaos:rule name="poussoir 2" specialType="" type="Sala">
        <calaos:action type="standard">
            <calaos:output id="output_0" val="true" />
        </calaos:action>
    </calaos:rule>
</calaos:rules>

local_config.xml
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<calaos:config xmlns:calaos="http://www.calaos.fr">
    <calaos:option name="fw_version" value="0" />
    <calaos:option name="fw_target" value="calaos_tss" />
    <calaos:option name="show_cursor" value="true" />
    <calaos:option name="use_ntp" value="true" />
    <calaos:option name="device_type" value="calaos_server" />
    <calaos:option name="dpms_enable" value="false" />
    <calaos:option name="smtp_server" value="" />
    <calaos:option name="cn_user" value="user" />
    <calaos:option name="cn_pass" value="pass" />
    <calaos:option name="longitude" value="2.322235" />
    <calaos:option name="latitude" value="48.864715" />
</calaos:config>

Mon problème
Je n'arrive pas à démarrer le serveur, lorsque je le lance avec la commande : calaos_server

J'obtiens les erreurs suivantes, et il tente apparemment de se connecter en boucle:
Code:
ERR<247>:calaos_output IO/Wago/WODigital.cpp:67 void Calaos::WODigital::WagoReadCallback(bool, Utils::UWord, int, std::vector<bool>&)() output_2: Failed to read value

ERR<247>:calaos_wago IO/Wago/WagoCtrl.cpp:108 bool Calaos::WagoCtrl::read_bits(Utils::UWord, int, std::vector<bool>&)() WagoCtrl::read_bits(): Error reading bits!

ERR<247>:calaos_wago IO/Wago/WagoMap.cpp:115 void Calaos::WagoMap::WagoModbusReadHeartbeatCallback(bool, Utils::UWord, int, std::vector<bool>&)() failed to read !

Au niveau de l'automate, j'ai seulement programmé le chargement des registres coils 4001 à 4151 et mots 40001 à 40016.

J'ai essayé de comprendre les fichiers wago_841_2.0.pro et wago_842_2.0.pro pour observer comment été réalisé la gestion du Modbus mais je ne comprends pas le programme.

J'espère avoir été assez clair.
Je vous serai vraiment très reconnaissant que vous me veniez en aide.


RE: Configuration Raspberry et automate different de Wago - raoulh - 06-12-2014

Bonjour et bienvenu,

Petite parenthese, les fichiers de config xml doivent etre mis dans /etc/calaos sur les images calaos-os sinon ca ne fonctionnera pas avec les services systemd.

Alors, concernant l'automate, certes il utilise du modbus/TCP pour la communication avec calaos-server, mais pas uniquement. Le modbus/TCP est assez limité en terme de fonctionnalités, on a du ajouter un second protocole UDP pour combler les manques.

Le protocole UDP sert a avoir un heartbeat regulier entre calaos et l'automate. Si au bout de 30s l'automate n'as pas recu de heartbeat, il bascule en mode autonome. Il y a deja cette partie qui n'ira pas avec ton automate Slicetex. Et c'est pour ca que tu as des erreurs lors du démarrage de calaos-server. Calaos-server efffectue aussi une lecture modbus reguliere (qui fait aussi partie du heartbeat) pour eviter que l'automate ferme la connexion TCP (c'etait un soucis chez wago). D'apres les erreurs que tu as dans les logs, c'est cette lecture modbus qui ne fontionne pas.

L'autre point important ensuite c'est les entrées. Lorsqu'une entrée est actionné sur l'automate, une trame UDP est envoyé a calaos-server. C'est fait de cette maniere car en modbus il faudrait faire du polling, et ca n'est pas une solution viable pour des evennement d'interrupteurs.

Le reste des commandes UDP que supporte l'automate permettent de gérer les éclairages a variation (DALI, DMX, adressage, etc...). Ce n'est pas indispensable si tu n'en as pas besoin.

Et le dernier point, c'est la gestion du mode autonome de l'automate. Il est capable de se faire envoyer une configuration basique (toujours grace au protocole UDP) et de faire tourner la maison si calaos-server est absent.

Si tu comptes réaliser le programme compatible pour ton automate, ce n'est pas trop compliqué pour avoir le minimum.
La base c'est d'avoir un serveur UDP sur le port 4646 qui tourne sur l'automate. Ensuite il doit au minimum répondre aux requetes pour le heartbeat.

Il y a un emulateur d'automate pour calaos dispo ici:
https://github.com/calaos/calaos_tools/blob/master/wago_simulator/
Il sait repondre aux commandes UDP (ca ne fait rien, que de la simulation)

Il y a aussi un outils client pour tester le protocole avec l'automate, wago_test. C'est un outil qui est disponible avec calaos_base et installé sur les images calaos-os.

Maintenant ca pourrait marcher sans rien programmer sur ton automate, mais uniquement pour piloter les sorties. Par contre il faut mettre dans la config wago_841="false"
Par exemple:
Code:
<calaos:output gtype="light" gui_type="light" host="192.168.1.81" .... wago_841="false" ..... />

(il y a un décalage d'adresse modbus avec les automates 841 de chez wago)

N'hesite pas a me demander si tu veux plus d'infos a ce sujet, il n'y pas de docs sur le wiki pour le moment....


RE: Configuration Raspberry et automate different de Wago - Dufourg Domotica - 06-12-2014

Merci beaucoup pour ta réponse Raoul, toutes tes explications vont me faire gagner beaucoup de temps.

Je suis actuellement en Argentine, et les fournisseurs me disent tous qu'ils ne fournissent plus Wago et dans le meilleur des cas on m'a annoncé 9 mois de délais.

L'automate que je possède a la possibilité de communiquer en UDP également, donc théoriquement je devrai être capable de le faire communiquer entièrement avec Calaos. Concernant le mode dégradé, je comptais l'activer grâce à un simple commutateur.

Lorsque j'aurai réussi à faire fonctionner mon système, je détallerai la démarche que j'aurai réalisée dans ce post, si jamais ça pouvait intéressé quelqu'un.


RE: Configuration Raspberry et automate different de Wago - eric40 - 01-18-2015

bonjour tout le monde.

Je viens de m'inscrire sur le forum car je trouve le sujet assez intéressant.
(Content d'avoir de tes nouvelles Dufourg domotica)

Je suis dans le même cas que toi sauf que moi j'essaie de mettre en place une application Calaos sur un raspeberry avec un automate siemens en communication Ethernet IP.

Le but est d'utiliser le siemens pour sa faciliter de programmation et le raspberry pour gérer le serveur domotique ainsi qu'utiliser les différents port GPIO en direct (sonde température, etc...).

Cette application fonctionne assez bien avec d'autres logiciels de domotique mais pas comme je le voudrais.
J'ai lu différents tuto sur Calaos et le logiciel me semble vraiment complet.

Mes questions sont donc:
- La version pour raspberry est elle à ce jour stable? PEux t-on l'installer?
- Est-il possible d'utiliser un API Siemens en réseau en remplacement du Wago (prix beaucoup plus cher)

Merci à tous

eric


RE: Configuration Raspberry et automate different de Wago - raoulh - 01-18-2015

Salut, et bienvenu.

Pour le raspberrypi, oui la version est maintenu par nous et donc la derniere en date devrait fonctionner sans soucis. On est encore en phase de test avant la release v2, donc si il y a des bugs on les corrigera.

Pour ton automate siemens, la meme reponse que j'ai donné plus haut s'applique, il faut implementer le protocole calaos dans l'automate.


RE: Configuration Raspberry et automate different de Wago - eric40 - 01-19-2015

Bonjour,

Merci pour ta réponse rapide.

Cela veut dire que je peux utiliser Calaos comme superviseur et forcer uniquement des variables dans le Siemens?
Mon programme API est déjà existant et fonctionne avec une supervision sous XP.
Mon but est de sortir le PC windows et de mettre un raspberry hébergeant calaos.
J'ai cru comprendre que votre version initiale avec Wago incluait la programmation dans le Soft et non dans la tête de station wago.

c'est pour cela que je souhaiterais effectuer à partir de calaos des forçages de bit pour commander en TCP mes variables SIEMENS. Pour faire simple j'aimerais me servir de calaos comme superviseur.

Ou puis-je trouver le protocole calaos?


En tout cas merci d'avance pour tes réponses

Cordialement Eric


RE: Configuration Raspberry et automate different de Wago - raoulh - 01-20-2015

Calaos n'est pas un simple superviseur, il y a une partie serveur (calaos_server) qui s'occupe de gerer les regles, les etats, les actions, etc... L'automate est uniquement utilisé en mode esclave pour acceder aux E/S. Pour que calaos_server puisse dialoguer avec ton automate il faut implementer le protocole de communication de calaos comme pour l'automate wago.

As tu lu mon post http://calaos.fr/forum/Thread-Configuration-Raspberry-et-automate-different-de-Wago?pid=1994#pid1994 ?
J'ai tout expliqué sur le protocole.


RE: Configuration Raspberry et automate different de Wago - eric40 - 01-20-2015

Bonjour, Raoulh

Oui j'ai bien lu le post 2 précédent et j'ai vu qu'en fonction du code çà pouvait marché en désactivant le wago (comme tu l'as décrit):
Code :
<calaos:output gtype="light" gui_type="light" host="192.168.1.81" .... wago_841="false" ..... />

J'ai bien compris qu'il y a une partie serveur qui gère les règles , les états et les actions.

Mon projet consiste plutôt à garder le programme dans l'automate (je suis automaticien et donc je préfère garder toute les fonctionnalités exploitables par l'API). J'aimerais donc savoir s'il est possible ou envisageable de forcer mes variables (un bit, un mot en écriture) et remonter des trames de lecture directement sur Calaos???

Si cela ne fonctionne pas, je devrais me tourner vers une solution ou je ne me sert pas de l’intelligence de mon automate mais de celle du serveur comme c'est le cas pour Calaos.

c'est peut être beaucoup demander :-(

Merci à toi

eric40