Automation in Motion Blog created by Domedia to share experiences about automation products and audiovisual integration.

23 May 2010

[lang_fr]Forum de discussion sur la Domotique / Intégration[/lang_fr][lang_en]Automation forum avalaible now ![/lang_en]

[lang_fr]Après avoir utilisé les services de Google pour la mailing list consacrée à l’Automation, l’Intégration et toutes les problématiques qui tournent autour, nous avons décidé d’en faire un forum afin que les discussions soient plus ouvertes, archivées et accessibles au plus grand nombre !

Le forum est donc d’ores et déja disponible sur cette page, n’hésitez pas à vous inscrire et à participer, en respectant les règles de courtoisie et du forum :)

La section Protocoles vous permet de partager toutes les infos dont vous disposez sur le pilotage de différents appareils, et également de profiter des documents apportés par les autres membres :) Plus de monde participera, plus la base de données s’enrichira 😀

A bientôt sur le forum et bon week-end de Pentecôte…[/lang_fr][lang_en]This article is not avalaible in english as it concerns a french forum only.[/lang_en]

27 March 2010

[lang_en]Nice upgrade process offered by AMX France for a limited time :)[/lang_en][lang_fr]AMX France propose une offre exceptionnelle pour faire évoluer l’Axcess en NetLinx :)[/lang_fr]

[lang_en]Sorry that article applies only to french readers ![/lang_en][lang_fr]Afin de récompenser les utilisateurs de longue date des systèmes AMX, une promo particulière a lieu en ce moment, jusqu’à fin juin. En effet, pour toute évolution d’un système existant en Axcent (centrale Axcent, Axcent2, Axcent 3, Axcent 3 Pro), et/ou d’écrans tactiles G3 en AXLink, vers une centrale NetLinx, et/ou des panels actuels G4, AMX propose une substantielle remise. Cette remise vous permettra de faire évoluer les anciens systèmes, qui ne sont désormais plus supportés et hors garantie pour tous, vers les nouveaux standards de rapidité et d’efficacité du NetLinx (Gestion IP Native, processeur multi-tâche, moteur graphique G4 pour les écrans tactiles..). Attention l’offre se termine fin juin, donc profitez en rapidement !

27 February 2010

[lang_fr]Nouveau firmware pour les MVP-7500/8400/8400i :)[/lang_fr][lang_en]New firmware for MVP-7500/8400/8400i[/lang_en]

[lang_fr]AMX nous gratifie d’une mise à jour en profondeur fort sympathique du firmware des MVP-7500, MVP-8400 et MVP-8400i. Ce firmware sortira probablement pour les autres écrans bientôt j’espère !
Ce firmware, estampillé 2.86.50, apporte les nouveautés suivantes:
-> toute la partie Wifi a été remaniée en profondeur, et ça se voit, que du bonheur :) Ici il était impossible de faire connecter ma 8400i sur ma borne Linksys et maintenant plus aucun soucis ! Ils ont viré en plus les indications subjectives de qualité et on a enfin une indication sous forme d’un bargraph et d’une valeur en dBm de la qualité du signal reçu :) Le scanner de réseaux wifi est aussi plus rapide et plus efficace ! Un profil entreprise est disponible sur les MVP-8400i qui permet de se connecter aux réseaux Wifi avec des cryptages particuliers. Et le bouquet est que désormais plus besoin de rebooter, tous les réglages wifi sont appliqués à chaud 😀
-> le zeroconf est de mise maintenant dans les panels aussi, permettant de les “retrouver” dans votre réseau s’ils sont en DHCP. De plus un réglage Secure permet de transformer l’accès Telnet au panel en accès SSH 😀
-> la connection VNC sur le panel (G4 Web control) accepte jusqu’à 3 connections simultanées maintenant.
-> les sons émis par le panel à chaque appui sur un bouton ou à côté est désormais personnalisable parmi un choix de 10 sons standards, et autrement vous pouvez importer vos propres sons via le fichier TPDesign que vous chargez dedans (fichier à nommer customSingle.wav et customDouble.wav). L’écran peut également émettre un son lors du “dockage” pour vous signaler qu’il est bien arrimé.
-> Temps d’allumage à froid réduit de 40% 😀
-> en cas de crash de l’écran, un système de diagnostic basique permet de le redémarrer avec les boutons externes sans avoir à enlever les batteries (maintenir le bouton haut et bas de gauche pendant 3s, la LED de droite va clignoter trois fois pour confirmer le passage en diagnostic, à partir de là l’appui sur le tactile ou sur n’importe quel bouton fait clignoter une fois la led, le bouton central du joystick provoque l’extinction du panel automatiquement).
-> le démarrage comporte maintenant une petite LED verte qui indique que le démarrage est en cours. De plus l’écran de démarrage est personnalisable en incluant dans le fichier TPDesign4 une image au nom custom_logo.jpg qui sera alors affiché durant le démarrage juste après le logo AMX.
-> possibilité de verrouiller un panel avec une installation de telle façon que si le panel est déplacé, il deviendra mort et devra être retourné chez AMX pour déblocage. Cela peut permettre de réduire les risques de vols et/ou de retracer un panel perdu ou volé.

Pas mal de nouveautés, dont certaines choses attendues et espérées depuis longtemps :)[/lang_fr]

4 October 2008

[lang_en]Timer in NetLinx ?[/lang_en][lang_fr]Chronomètre en NetLinx ?[/lang_fr]

Filed under: AMX — Tags: , , , , , , , , , , — vincen @ 9:21 am

[lang_en]So here is first post of a new serie of articles, that’ll be dedicated at help about basic functions you might need in your program. We’ll start today with a module named Timer. You’ll get a little keypad to compose time in minutes, a clean button, and a play/stop button. You dial time you want, it’s displayed in little box, you push play, timer starts to count down till 0. If you push stop, it stops and reset counter. When it’s at 0, it’ll do something you setup in module.

Module ready to use is here. (I know touch panel pages are ugly but it’s just a demo of concept :)

Enjoy it and if you have any comments feel free to post below ![/lang_en]

[lang_fr]Voici le premier post d’une série de nouveaux articles, pour vous aider dans les fonctions basiques dont on a régulièrement besoin dans un programme. Nous commençons aujourd’hui avec un module nommé Timer. Vous aurez un petit clavier pour composer le délai souhaité en minutes, un bouton d’effacement et un bouton play/stop. Vous composez le temps souhaité, vous appuyez sur Play, le Timer commence à décompter jusqu’à 0. Si vous appuyez sur stop, il s’arrête et remet le timer à 0. Lorsqu’il arrive à 0, il déclenche les fonctions que vous réglez dans le module.

Le module prêt à utiliser est ici. (Je sais que les pages écrans sont affreuses mais c’est juste pour montrer le fonctionnement du concept :)

Profitez-en et si vous avez des commentaires n’hésitez pas à les poster ci-dessous ![/lang_fr]

16 March 2008

[lang_en]Easy Modbus interface with HVAC system of Sauter :)[/lang_en][lang_fr]Interfaçage Modbus aisé avec une régul. de clim Sauter[/lang_fr]

Filed under: AMX — Tags: , , , , , , , , , , , , — vincen @ 9:24 am

[lang_en]So today I went on site for interfacing a NetLinx AMX system with Sauter HVAC system. The HVAC system is interfaced through a PC that translates internal bus to more regular Modbus/Jbus protocol.

Modbus is a pretty simple protocol but its implementation is not so simple due to three facts:

  1. It uses a pretty complex system to calculate a mandatory checksum at end of each message. But with help of a friend Jon, and also piece of code made by Crestron for their Modbus module, I was able to automate creation of Modbus messages in my NetLinx program. Here is result for exemple for a read command:
  2. STACK_VAR
    CHAR TEMP[6]
    CHAR INTERRO_A_ENVOYER[8]
    LONG TEMP_1
    LONG XFLG
    LONG I
    LONG J
    LONG CRC
    {
    TEMP = “1,3,0,((ETAPE-1)*4),0,2”
    CRC = $FFFF
    FOR(I=1;I<7;I++)
    {
    TEMP_1 = TEMP[I]
    FOR(J=1;J<9;J++)
    {
    XFLG = (CRC^TEMP_1) & $0001
    CRC = CRC >> 1
    IF(XFLG<>0)
    {
    CRC = CRC ^ $A001
    }
    TEMP_1 = TEMP_1 / 2
    }
    }
    I = CRC / 256
    J = CRC – (I*256)
    INTERRO_A_ENVOYER = “TEMP,J,I”
    SEND_STRING dvCLIM,INTERRO_A_ENVOYER
    }

    That sample computes automatically checksum for a read message of two bytes :)

  3. Second problem is for answer you get back from HVAC as temperature value is coded with IEEE system. I looked at it on internet but it looks pretty complex to encode, so for now I just do a comparison between know values and it allows me to get correct value, at price of extra comparison work but it functions perfect :) If someone already did a piece of code in NetLinx to encode/decode IEEE value, I’m interested in !
  4. Last point very important with Modbus protocol is that it doesn’t speak by itself :( So each time you want to know something you have to issue a read command. So best way is to use a timeline you run in background that continuously asks values at system so you keep always value up to date :)

Hope it helped you, and feel free to ask questions you might have in comments ![/lang_en]

[lang_fr]Je me suis donc rendu aujourd’hui sur site pour la mise en route de l’interfaçage d’un système NetLinx AMX avec une régulation de climatisation fabriquée par Sauter. La clim. Sauter est équipé d’un ordinateur de type PC qui sert de passerelle entre le bus interne du système Sauter et le protocole à la norme Modbus/Jbus.

Modbus est un protocole relativement simple mais son implémentation n’est pas si simple pour trois raisons:

  1. Le protocole utilise un système plutôt complexe de calcul du checksum qui est obligatoire à la fin de chaque message transmis. Mais avec l’aide d’un ami, Jon, et avec l’aide également d’un bout de code fait par Crestron pour leur module Modbus, j’ai réussi à automatiser la construction des trames Modbus dans mon programme NetLinx. Voilà le résultat pour une commande de lecture:
  2. STACK_VAR
    CHAR TEMP[6]
    CHAR INTERRO_A_ENVOYER[8]
    LONG TEMP_1
    LONG XFLG
    LONG I
    LONG J
    LONG CRC
    {
    TEMP = “1,3,0,((ETAPE-1)*4),0,2”
    CRC = $FFFF
    FOR(I=1;I<7;I++)
    {
    TEMP_1 = TEMP[I]
    FOR(J=1;J<9;J++)
    {
    XFLG = (CRC^TEMP_1) & $0001
    CRC = CRC >> 1
    IF(XFLG<>0)
    {
    CRC = CRC ^ $A001
    }
    TEMP_1 = TEMP_1 / 2
    }
    }
    I = CRC / 256
    J = CRC – (I*256)
    INTERRO_A_ENVOYER = “TEMP,J,I”
    SEND_STRING dvCLIM,INTERRO_A_ENVOYER
    }

    Ce bout de code calcule automatiquement le checksum pour un message d’interrogation de deux octets :)

  3. Le deuxième problème est la lecture de la réponse obtenue du système de clim car les valeurs sont codées au format IEEE. Je me suis renseigné sur Internet mais ce système a l’air plutôt complexe pour l’encodage, donc pour le moment, j’ai réalisé un test en dur dans mon programme avec des valeurs connues pour savoir par approximation la valeur retournée par la clim. Cela nécessite un traitement un peu fastidieux mais ça fonctionne parfaitement :) Si quelqu’un a déja fait un bout de code en NetLinx pour encoder/décoder des valeurs IEEE, je suis intéressé !
  4. Le dernier point très inportant avec le protocole Modbus est qu’il ne parle pas par lui-même :( Donc chaque fois que vous voulez savoir quelque chose vous devez émettre une commande de lecture. Donc la meilleure façon de travailler est de faire tourner une timeline en tâche de fond qui périodiquement interroge les valeurs du système de clim afin de garder l’AMX synchrone avec le système de clim :)

En espérant que cela vous ait aidé, et n’hésitez pas à poser des questions dans les commentaires si besoin est ![/lang_fr]

Powered by WordPress