No announcement yet.

Ethernet I/O board for HomeSeer using xAP

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    The NetIOM device claims that it can communicate with either ASCII or binary. I've got the device on order, I'll post again when I receive it and hopefully be able to figure everything out.

    Just going through the steps to research this I am learning a good deal about xAP, and I am definitely getting interested.


    • #17

      What I would like to know about this board is how the inputs are managed ?
      Does the plugin have to scan the inputs or is there a port scanner on the board that fires off xap events to the plugin ?

      Just curious to know how this works ?



      • #18
        Hi - I can probably help here as I created the xAP BSC schema and I also helped Phaedrus with their implementation on the xAP Netiom - although all the hard work and coding was theirs. ( I have no commericial involvement here).

        I have asked Phaedrus to place the xAP Netiom documentation on their website but in the meantime I have a copy here that I will happily send to anyone who needs it. It contains complete xAP schema information and examples.

        <edit>EDIT: Now attached to this post - as a zipped Microsoft Word document

        <edit>The xAP Netiom implements the xAP BSC schema on all the ports it offers including the serial port. It additionally offers a second Netiom specific schema. One of the fundamentals of BSC is that each input or output generates a single xAP message describing its state - the other Netiom schema allows reporting of several related I/O functions all grouped in one message which offers you a choice of using whichever you prefer. You can use both should you wish.

        BSC originates 'events' based on changes on those inputs automatically , it does not require polling in any way from xAP - although you can at any time ask for the status of any input or output. (The internal electronics of the Netiom do still scan all inputs for changes, but it is a very fast scan so to all intents and purposes it is transparent). You can also have the Netiom cycle through its inputs periodically sending an 'info' message that just updates you on the current state of its I/O. It might complete one cycle of these say every 10 minutes or so . This is on|off|period configurable. At power on the Netiom instantly updates you on all its I/O.

        The serial port is implemented as a BSC 'TEXT' device and can be setup either as an ASCII stream or a binary stream - xAP protocol supports transmisson of binary data using the ! pling character and ASCII coded hex pairs.

        data=ABC is the same as data=!414243

        The serial port can report and send based on either a specific terminating character or a configurable pause in the data - if there is no terminating character then the pause is the solution.

        So the board effectively provides realtime 'events' when any of its I/O changes state, and can be interrogated at any time, it does not require polling. Each change is reported as a single UDP packet which is very lean. Additionally it can be set up to report 'info' message periodically. The normal usage would be ...

        At startup of you application ask the device for the state of all its I/O and then track change 'events' - for added assurance you can monitor 'info' messages and check they match your expected states. At any time you can 'query' the Netiom for any or all of its I/O. You can query groups of functionality like 'all the inputs' should you wish. The mi4 HomeSeer xAP plugin handles BSC as a special known case and operates exactly this way which is ideal for Homeseer.

        </edit></edit>The Netiom has an inbuilt (customisable) web server that can display and control its I/O as well.
        Any other questions ..ask away - I use several Netioms here with applications in controlling my heating and pumps, my alarm system, counting pulses from my utiility meters and controlling my AV amplifier.


        PS Doug - you are right in that the serial implementation will just return you the same stream of data as was sent - within a xAP packet - you will need to add some logic to interpret this.

        PPS For completenes there are some advanced functions... Because you can name each input you can use wildcarding to group say 3 inputs, 2 outputs and an analog input into a named group and address that directly should you wish. Netiom fully supports wildcarding. You can also disable any I/O you are not using to reduce message traffic.

        For the analog inputs a common issue is jitter or noise or a constantly changing input which means that the Netiom is constantly sending 'event' data. The Netiom allows a hysteresis to be set on each input such that it only reports changes when a certain degree of change has been reached - this permits things like only reporting should the input change by +/- 10% . At any time you can still query the exact input level of course , and the periodic updates are correctly reported as either 'event' or 'info'. A 'number of counts' change can be applied to the counters too , allowing the counters to be used to divide changes on an input before reporting. The analog inputs & counters have thresholds too at which point they change state from OFF to ON allowing you to trigger based on exceeding a pre set value.</edit></edit>
        Last edited by CouchPotatoe; December 15th, 2007, 06:39 AM.


        • #19
          Originally posted by HS Guy
          Check out the Aviosys IP Power Network Remote Controller 9212.
          Have you yourself used this product with success? I tried the AVIO9100 camera server (believe that was the product, it had four video inputs so you could tie them to an ethernet interface).

          Pure garbage would be a comlpiment to that product.

          Sort of jittery about anything AVIOSys makes since then.
          **** Do You "Cocoon"? ****


          • #20
            We selected it for use in a product we sell. We use two outputs of the 9212 to remotely reboot (via Internet) a DVR and a surveillance camera power-supply. We don't use the inputs (yet).


            • #21
              Originally posted by CouchPotatoe
              <edit><edit>The serial port is implemented as a BSC 'TEXT' device and can be setup either as an ASCII stream or a binary stream - xAP protocol supports transmisson of binary data using the ! pling character and ASCII coded hex pairs.

              data=ABC is the same as data=!414243

              The serial port can report and send based on either a specific terminating character or a configurable pause in the data - if there is no terminating character then the pause is the solution.</edit></edit>
              So in theory, if mcsSprinklers were modified to use a BSC 'TEXT' device as a serial port, as long as the device implemented the BSC protocol properly, which the NetIOM does, the software shouldn't need to be modified separately for every xAP ethernet serial device...

              That's probably a moot point at this time since I haven't heard of any other xAP ethernet serial ports. However, I can imagine this sort of thing could open up a lot of other opportunities for creating redundancy with devices that are currently connected to the home automation computer serially...

              Perhaps a bit of I/O code that plugin developers could use to implement xAP serial ports would help encourage them to add the functionality.

              My only question on this is over speed... With sprinklers, nobody cares if the command process adds a second or so of additional delay in implementing the command or reviewing the feedback, but for lighting it would be an entirely different issue. How long of a delay would be created in making the serial data encapsulated within a xAP packet available to a plugin compared to a direct serial connection?

              That would determine what types of devices could be moved to a xAP serial port...


              • #22
                With a 10 MB LAN rate vs. a 10K serial rate and a 20 microsecond delay from the netiom there should be no perceivable difference. xAP runs on UDP which is the faster IP delivery mechanism. TCP is used by the Lantronix and other Serial/IP adapters has additional communication overhead. It also means that UDP is not 100% assured delivery, but in a local LAN the delivery success rate does approach 100%.


                • #23
                  I'm using a number of Elexol ethernet boards being triggered by UDP packets, on a local lan, its 100%.. I have some lights pointing at my fountain in the front yard and every night for the last 6 months, they have come on without fail.....well it DID stop one night when the 24 port switch died :-)



                  • #24
                    The BSC schema is really flexible and can be used and abused to accomodate almost anything. Indeed it is possible to model very complex devices like say an AV amplifier perhaps. High end automation controllers like Crestron and AMX both use the same 'basic' device types as BSC.

                    One of xAP's great stregths is that ideally you should abstract all devices back to a general functionality - in this example perhaps whole house audio or AV rather than BSC. BSC does offer basic discoverability and plug and play type advantages as it is such a widely supported schema, but shoehorning things into BSC sacrifices the ability to later just exchange devices and everything still works eg a Technics Amp exchanged with a Sony Amp.

                    Serial is really such a case as it was shoehorned into BSC 'TEXT' devices for the Netiom. It was envisaged it would be used for commands/responses for serial control of an attached appliance rather than as a full transport layer. As Michael mentioned xAP uses UDP which is very fast but lacks guaranteed delivery and error correction, and crucially pacing. I think for a high volume of data transfer these would be desireable and a TCP approach would be preferable. The pacing is particularly an issue as your speed on RS232 is so many times lower than Ethernet and we have no flow control easily provided. Incoming serial data presents no problem.



                    • #25
                      I have received the NetIOM-xAP module the other day, and I grabbed an old 12v power supply from work. I'll try to connect everything up tonight and see if it works...


                      • #26
                        Ok, minor issues... The NetIOM seems to connect up ok, it was immediately recognized by mcsxap, and I am able to accept devices into Homeseer. However, I am not able to fully setup the device since Phaedrus Limited sent the installation software on a 3.5" floppy disk, which turned out to be unreadable after I was finally able to find a floppy drive.

                        Plus, they don't have the software on their website...

                        If anyone has one of these, and is able to email me the software, it would be greatly appreciated... I sent an email to Phaedrus, but don't know how long it will take for them to respond...


                        • #27
                          Ok, I have received a copy of the software... Thanks...