X4 iDigi Starter Kit for home automation

Hi all,

I purchased the X4 iDigi Starter Kit with two adapters, Analog IO Adapter XBee and XBee Adapter Digital IO, I am in a home automation project and have the following question, which should be used for the monitoring and network control; custom presentation or custom driver?, my idea is to control variables such as temperature, light, security (presence sensor associated with the adapter).

Would greatly appreciate any assistance.




Try checking home theatre speakers , it might give you ideas.

Hope it helps! :slight_smile:
Thank you!

You’ll probably have to do both (or just write it from scratch - see the wiki pages for help: http://www.digi.com/wiki), as you’ll need a custom presentation to allow you to make the changes, and a driver to accept the custom changes. You may be able to get away with just modifying the drivers or using a custom service, but it’s really just up to you!

I have the same problem, the thing is, in all the examples showed in the wiki, I can’t find the way to modify the value of a sample.

In example, if you wish to turn on a led on the development board if the temperature of a xbee sensor reach some specific value, you need to:

Suscribe to the xbee’s temperature channel
When it changes, modify (write) the value of the led1’s channel of the development board.

I still can’t find the way to do so…

Please help.

Take a look at the source code for the ‘transforms’ device. This demonstrates using the channel publisher to subscribe to a channel. You can also find this in the ‘rpm’ driver as well as it subscribes to determine the power state.

If you want to use that value to set another settable channel on another driver, you can use the channel database to gain a reference to that channel, and call the ‘set’ routine on that Channel object. This is equivalent to the same operation in the different presentations. To that end, you can look in the various presentations and their implementation of the set channel_set operation for that piece.


You can check out following link…

It may help you…


Thanks friends for your help…


Hi guys,

      Could you please help me with these questions I have, I have the Connectport x4, and I need to know how can I restablish the system console for a running proyect, after I reconnect mi laptop to the gateway LAN so to see the system information in real time, which appears when I loading and executing the project through Digi ESP.
       The other question is, what can I do, to notify me when a device is stolen or or is off, like an alarm messages after the coordinator lost communication with the device for some time.

Thanks and Regards


For first question.

If you want to see the CPX4 system information in the real time, as you have not mentioned which exact info you need to see. But either you can try teleneting the gateway and apply cli command as ‘show techsupport’ or if the device is connected at that time to the idigi server than you can query the device from iDigi using rci request.

For Second question,
For checking whether device is online or not, that information also you can get from the rci query status report.

Reconnecting to stdout/stderr.

If you run your Python manually, then you cannot. Then that telnet session dies, all output goes to bit-bucket forever/until reboot.

If you start your Python with ‘auto-start’, then connecting with telnet and issuing the command ‘set trace state=on mask=printf:*’ will start dumping the Python ‘print’ info to you again.

Hi guys,

       I really need to know if exist a way to make a driver or a driver already done that have similar function that the wacht dog for monitoring devices in the PAN network, for example, if any device leaves the network for a period of time it sets an alarm.

       If there isn't a driver already done. Is there any python function in the Xbee enviroment that give me a list devices in the network?.


Thanks a lot for your help…,

the command ‘set trace state=on mask=printf:*’ it’s work.

:slight_smile: BR

I don’t know of any existing … let me call it a ‘node availability’ driver. I have had that on my todo list for a long time. I call it ‘availability’ because if say a device should talk every 5 minutes, one could collect how often it misses that time and create a 0.00% to 99.9% output which shows how reliable the node is being, with 100% being all expected updates occur.

A few questions:

  1. are your devices all routers, or end-devices, or a mix?
  2. How would you detect this problems? watching data sample times? talking to the Xbee?

Hi Lynn,

    Thanks for your answer, regarding your questions: 

I have a Xbee wall router, Xbee sensor, two Xbee adapters (DIO and AIO), and XBee USB Interface Board.
That I want to know if how can I get control of the presence of a device in the zigbee network, or if can I get an alert when a device leave the network for a period of time, for example if it is stolen.


Hi Lynn, Marcos,

One possible way to do that is make a driver that use something like the xbee ping command.

Is there a way to use that from a driver environment?

‘ping’ (echo) would only work if the device wasn’t sleeping. So one could use it for the wall router, but perhaps not the other sensor/dio/aio.

For example, I have solar panels and voltage readings on battery chargers powering outdoor devices. The analog adapter is only ‘awake’ once per 15 minutes since reading the battery level more often offers no value. So I can never ‘ping’ it - but I can confirm that the data channels it drives changes every 15 minutes.

So in the Dia enviornment, a watchdog device could subscribe to one channel on each device to watch, plus be configured with the time cycle.

So if one enables the temperature reading on the wall router to auto-send itself every 30 seconds, then the watchdog device would just need to see an ‘update’ of that channel sample within say 40 seconds.

In the case of my voltage battery/charger readings, the watchdog would expect a new sample every 15 minutes +/- some slop.