Automation in Motion

2009-03-17

Crestron releases PoE video streamer

CEN-NVS100

CEN-NVS100

Crestron releases a network video streamer for use with its important range of touchpanels MJPG compatible. The CEN-NVS100 will allow you to display in these touchpanels video feedback from a remote camera easily through the network. The streamer is self-powered throught the PoE Ethernet connection so no need for local power supply. It accepts video composite signal (Either NTSC or PAL) and streams it either in MJPG or MPEG4 format for more compatibility. You can now easily monitor on your Crestron touchapenls remote door entry cameras, nursery or any video feed.

Most recent touchpanels compatible with signal from the streamer includes TPMC-8L, TMPC-8X, and TPMC-4XG.

Text and time can be overlayed on video signal, and privacy masking to avoid video view of private part of image. Up to three motion detection windows can be defined, enabling automated events in response to movement within specific onscreen areas. Events can also be triggered when a loss of signal is detected.

It can also control a pan/tilt/zoom camera via RS-485.

P-S: Audio connectors you can see on pictures are not usable for now (future functions !).

2008-03-16

Easy Modbus interface with HVAC system of Sauter :)

Filed under: AMX — Tags: , , , , , , , , , , , , — vincen @ 9.24 am

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 !

Powered by WordPress