Managing Devices

This is probably the first place you should go when you first log into the Dev Console.

In this section you are effectively creating a virtual description of your devices so the ChipChop engine knows what it can receive from them and what to communicate back.


You don't have to specify every component that your real device has, just those that:
  • You want to remotely monitor their status or readings
    like sensors that measure temperature, humidity, electricity, light, distance, sound etc...

  • You want to send a notification (trigger event) when something happens
    touch buttons, contact and motion sensors, switches etc...

  • You want to send a remote command and have them do something
    things that you can turn ON/OFF, lights that can change brigthness/color, motors etc...


Note: The maximum number of components that you can specify is 10 components per device.

Device Types
There are two types of devices that you can create, a Real Device or a Virtual Trigger

Virtual Triggers

Virtual Triggers are special type of device as they don't have any physical presence but the ChipChop engine sees them as a type of electronic switch and they only have two possible states DETECTED or NOT_DETECTED.

As they reside completely in ChipChop's memory any action on them happens in a millionth of a second rather than bouncing commands back and forth to a real device over the Internet. This makes Virtual Triggers an excellent candidate to be used with Alexa in order to trigger routines and have it happen really fast.

You see, the only type of devices that can trigger a routine in Alexa are montion sensor, contact sensor, door bell and security camera face detection...that's it!
So if you want to trigger an Alexa routine with something else...you are out of luck!

For that purpose you use a Virtual Trigger, Alexa will see it as a type of contact sensor and you can create whatever routine you like for when its state is DETECTED or NOT DETECTED. On the ChipChop side you can switch that Virtual Trigger from any of your device components whenever you want.

For example, you can set that your Temperature Sensor when the temperature reaches certain value sets the Virtual Trigger to DETECTED which in turn fires an Alexa routine to turn the airconditioning ON.

The magic of Virtual Triggers is that through ChipChop and Alexa Routines you can control devices that YOU DIDN'T BUILD!

Switches, plugs, lights and whatever other Smart Home thingy that you have bought and didn't make yourself you can now control from your own little smart gizmos!

Not bad, right !?

You can have up to 10 Virtual Triggers on your account and trigger them automatically using "Actions" or manually through the "Web Viewer" app.

Setting up a Virtual Trigger is dead simple, you just need to give it a name (that of course has to be unique etc...) and if you are going to use it with Alexa use the Alexa Connect section to enable it.



Real Devices

This is...well...a real physical thingy that you have built and you are connecting it to ChipChop.

Rules for real devices are:
  • Must have at least one component defined - maximum is 10 components per device
  • Should send a regular "status heartbeat" - once every 10 seconds or slower
    heartbeats sent faster than 10 second intervals will be rejected, your device will receive a warning message and you may get a system violation marked on your account

DEVICE DETAILS
Device Name
You need to use a unique name for each one of your devices.
You can only use "-" (dash) and "_" (underscore) as special characters, any other special characters will be automatically removed.
You can use spaces in the device name.
Use a descriptive name for your device, like 'Bedroom Light Switch','Front Door Motion Sensor', 'Weather Station' etc.

Unique ID
You need to specify a unique ID for each device. This can be a string with up to 30 characters that can contain UTF 8 letters, numbers, underscore (_), dash (-) and (:) (colon character if in MAC ID format) but can not contain any dots (.) or any spaces.

You will use this unique ID as an indentifier when communicating between your device and ChipChop.

Recommended is to use the same name as your device name but lowercase and replacing spaces with underscores i.e. 'bedroom_heater', 'kitchen_extractor_fan', 'garden_disco_light'
Status
If you set the device status to Not Active:
  • Any attempts by the device to establish a connection with ChipChop will be refused
  • Events triggered by another device through Actions will be ignored
  • Communication with Alexa will be suspended
This is a useful feature if for example you are changing the programming on the device and conducting lots of tests. By temporarily de-activating the device you can avoid triggering lots of unecessary events on ChipChop and Alexa without having to mess with your device compiled code.
Timezone
Specify a correct Time Zone for your device.

This is important when using time dependant Actions and for your device to receive accuarate timestamp from ChipChop.
The default timezone is - Europe, London UK.

FUN FACT: You can have a hassle free Real Time Clock on your device without an RTC board and battery? With every response ChipChop sends a UNIX timestamp with the correct time in the timezone you have specified so you can show the accurate time and date on your device...enjoy
Alexa Enabled
This field only shows if the device is linked with Alexa. To activate or de-activate this feature go to the Alexa Connect section from the Dev Console top menu and then go to the Device Linking section.


DEVICE COMPONENTS
Component Name
The component name has to be unique (you can't have two components with the same name on the same device), can only contain lowercase letters, numbers, - (dashes) and _ (underscores) and must not contain any spaces ( ) or dots (.) in the name

Use a descriptive name for your component, like 'temperature_sensor', 'motion_sensor', 'step_motor_2' etc.
But names with spaces or dots in the name like 'motor.power' , 'robot left arm' , 'humidity sensor.1" will most likely fail especially if used with Alexa.
Component Type
Choosing the correct component type is important to get the best out of your smart device.

You will find the Component Types Definition table further down this page.

Also, as Alexa supports a more limited set of device types it can all be slightly confusing!
If you are connecting your device to Alexa, the Alexa Connect console takes care of what can be used and what can not.
Component Mode
A component can have one of two modes: View Only or Interactive

You would set a component to be 'View only' if that component's state can not be set by you. For example: a temperature sensor can show you what its temperature reading is but you can't change it (only the sensor itself changes its values)

On the other hand if a component can receive commands from you and then do something, then you would set the mode for this component to Interactive and it will be showing in the Web App as a clickable/editable thing that can receive commands.

Example: A light switch will be showing as a ON/OFF button and pressing it in the Web App will send an ON or OFF command to your light switch and also inform Alexa that that light switch is ON.




Component Types explained

You will find below a table that explains in simple terms what each component type can do.
This list is constantly evolving to include new variants and concepts but if you can't find what you need, post your idea in the forum and let's see if it can be implemented.


Teaching ChipChop to understand a new component type can be a reasonably quick process but what can take a long time is creating a useable interactive interface and finding ways to integrate it with Alexa.


COMPONENT TYPES DEFINITIONS
Text Value
Something that sends it's status as a simple text string or can change it's state if it receives a text value

'water level high', 'sunny weather', 'proximity warning', 'low on cat food',

No corresponding type in Alexa.
Numeric Value
Something that sends it's status as a number or can change it's state if it receives a numeric value

23, 124.18, -3000, 0 , 1

No corresponding type in Alexa.
Percentage Value
Similar to Numeric Value type except it has to be within 0-100 range
A convenience % (percentage sign) is automatically appended when viewing the status

Your device component should only send its status as a number without the % sign
0,10,22.4, 82.06, 100, 100.00

No corresponding type in Alexa.
Percentage Control
Shows in the Web App as an interactive percentage slider
Same rules as the Percentage Value type

Your device component should only send its status as a number without the % sign
0,10,22.4, 82.06, 100, 100.00

Shows as a percentage slider in Alexa.
ON/OFF
Shows in the Web App as an interactive button
Your device component should send it's status as ON or OFF

Status has to be sent exactly as "ON" or "OFF", lowercase or any other variation will not be recognised as a valid command

Shows as ON/OFF button in Alexa but you can have only one per device. If you want to have more ON/OFF buttons for the device showing in Alexa, the additional components will have to be of the ON/OFF - toggle type explained below. This does not affect the functionality in ChipChop as both types behave the same.
ON/OFF - toggle
Shows in the Web App as an interactive button
Your device component should send it's status as ON or OFF

Status has to be sent exactly as "ON" or "OFF", lowercase or any other variation will not be recognised as a valid command

Shows as a "Toggle Button" in Alexa and you can have multiple per device
Trigger
Shows in the Web App as an interactive button
Your device component should send it's status as DETECTED or NOT_DETECTED

Status has to be sent exactly as "DETECTED" or "NOT_DETECTED", lowercase or any other variation will not be recognised as a valid command

Can trigger routines, Alexa sees it as a Contact Sensor
Motion
Shows in the Web App as a sensor icon and is not interactive
Your device component should send it's status as DETECTED or NOT_DETECTED

Status has to be sent exactly as "DETECTED" or "NOT_DETECTED", lowercase or any other variation will not be recognised as a valid command

Can trigger Alexa routines, Alexa sees it as a Motion Sensor
Touch
Shows in the Web App as a sensor icon and is not interactive
Your device component should send it's status as DETECTED or NOT_DETECTED

Status has to be sent exactly as "DETECTED" or "NOT_DETECTED", lowercase or any other variation will not be recognised as a valid command

Can trigger Alexa routines, Alexa sees it as a Contact Sensor
Light
This is a convinience ON/OFF control just with different label and icon

Shows in the Web App as an interactive button
Your device component should send it's status as ON or OFF

Status has to be sent exactly as "ON" or "OFF", lowercase or any other variation will not be recognised as a valid command

Shows as a light on/off control in Alexa
Brightness
This is a convinience percentage control

Shows in the Web App as an interactive percentage slider with values between 0-100
Same rules as the Percentage Value type

Your device component should only send its status as a number without the % sign
0,10,22.4, 82.06, 100, 100.00

Shows as a percentage slider in Alexa.
Color
Shows in the Web App as an interactive RGB color picker
Your device component should send it's status as an array of RGB values.

- Color is an array of values [red,green,blue] with values for each color ranging between 0 and 255 {"light_1":{"color":[26,154,78]}}

Shows as a color controller in Alexa
Temperature
This is a convinience Numeric Value type just with a degree sign and icon
The temperature is shown just as a number so you can read it as Celcius or Fahrenheit, it's up to you

23, 124.18, -173, 0 , 1

Temperature Sensor, the value can be viewed but not set through Alexa
Humidity
This is a convinience Numeric Value type just with a percentage % sign and icon
The value can be any number, it's up to you to check if it's within 0-100 range

Your device component should only send its status as a number without the % sign
0,10,22.4, 82.06, 100, 100.00

For some misterious reason there is no corresponding type in Alexa...no idea why humidity is not supported as a standalone measure!?
State View
Shows in the Web App as an Thumbs Up/ Thumbs Down icon
Useful if you want to notify yourself if some error has happened on the device.

This is really a generalised thing relating to the entire device but you still need to attach it to something so I normaly add an extra component to my device named "Device Health" and set it up as "State View" type.

Your (made up) device component should send it's status as OK or ERROR