iCasa GOGO commands
iCasa provides a set of functional gogo commands helping the manipulation of iCasa elements, such as devices, zones and persons.
1. Manipulating Devices
1.1. Create device
Creates a new simulated device.
Scope -> icasa
Name-> create-device
Parameters:
- ${deviceId} The device Id of the new device.
- ${deviceType} The device type of the new device.
Example:
g! icasa:create-device iCasa.Thermometer therm-1
1.2. List of devices
Gets the list of devices in the iCasa execution platform, this command shows the devices identifiers, and their position.
Scope -> icasa
Name -> show-devices
Parameters -> NONE
Example:
> g! icasa:show-devices
Devices:
Device Id: Pres-B1255D-D - Position: (413:185)
Device Id: BiLi-C7496W-S - Position: (58:427)
Device Id: Pres-A1255D-D - Position: (504:374)
Device Id: Toogle-B1286X-Y - Position: (599:38)
Device Id: Toogle-D1286X-Y - Position: (219:349)
Device Id: Pres-D1255D-D - Position: (166:24)
Device Id: Pres-C1255D-D - Position: (240:399)
Device Id: BiLi-D7496W-S - Position: (202:59)
Device Id: Toogle-C1286X-Y - Position: (97:384)
Device Id: Toogle-A1286X-Y - Position: (509:451)
Device Id: BiLi-A7496W-S - Position: (492:440)
Device Id: BiLi-B7496W-S - Position: (505:270)
1.3. Activate device
Active a device.
Scope -> icasa
Name-> activate-device
Parameters->
- ${deviceId} The device ID.
Example:
g! icasa:activate-device Pres-B1255D-D
1.4. Deactive device
Deactive a device.
Scope -> icasa
Name-> deactivate-device
Parameters->
- ${deviceId} The device ID.
Example:
g! icasa:deactivate-device Pres-B1255D-D
1.5. List device properties
Shows the list of properties of a device.
Scope -> icasa
Name-> show-device
Parameters->
- ${deviceId} The device ID.
Example:
g! icasa:show-device Pres-B1255D-D Properties: Property: presenceSensor.sensedPresence - Value: false Property: state - Value: activated Property: Location - Value: livingroom Property: fault - Value: no
1.6. Simulate a fail in device
Simulate a fail in a device.
Scope -> icasa
Name-> fault-device
Parameters->
- ${deviceId} the device ID.
Example:
g! icasa:fault-device Pres-B1255D-D
1.7. Simulate a reparation in device
Repair a device.
Scope -> icasa
Name-> repair-device
Parameters->
- ${deviceId} the device ID to repair.
Example:
g! icasa:repair-device Pres-B1255D-D
1.8. Move device
Move a device into new X,Y coordinates
Scope -> icasa
Name-> move-device
Parameters-
- ${deviceId} the device ID to move.
- ${X} The new X-coordinate.
- ${Y} The new Y-coordinate
Example:
g! icasa:move-device Pres-B1255D-D 60 80
1.9. Move device into zone
Move a device into new X,Y coordinates
Scope -> icasa
Name-> move-device-zone
Parameters-
- ${deviceId} the device ID to move.
- ${zoneId} The new zone.
Example:
g! icasa:move-device-zone Pres-B1255D-D kitchen
1.10. Set device property
Set a new device property
Scope -> icasa
Name-> set-device-property
Parameters-
- ${deviceId} the device ID to modify.
- ${property} The property name.
- ${value} The property value.
Example:
g! icasa:set-device-property Pres-B1255D-D newProp newValue
1.11. Remove a device
Remove a simulated device
Scope -> icasa
Name-> remove-device
Parameters-
- ${deviceId} the device ID to remove.
Example:
g! icasa:remove-device Pres-A1255D-D
1.12. Attach device to a person
Attach or deatach a device from a person
Scope -> icasa
Name-> attach-device-person
Parameters-
- ${deviceId} the device ID.
- ${personId} the person ID.
- ${attach} true | false. True for attach, False to deatach.
Example:
g! icasa:attach-device-person Pres-A1255D-D Philippe true g! icasa:attach-device-person Pres-A1255D-D Philippe false
2. Manipulating Zones
2.1. Create zone
Creates a new zone.
Scope -> icasa
Name-> create-zone
Parameters-
- ${zoneId} the new zone ID.
- ${leftX} The topX value.
- ${topY} The topY value.
- ${X-Length} The X-Length of the new zone.
- ${Y-Length} The Y-Length of the new zone.
Example:
g! icasa:create-zone kitchen 50 50 100 100
2.2. List zones
Show the existant zones.
Scope -> icasa
Name-> show-zones
Parameters-
- NONE
Example:
g! icasa:show-zones Zones: Zone livingroom : Zone: livingroom X: 410 Y: 20 Z: 0 X-Length: 245 Y-Length: 350 Z-Length: 100 Parent:Unset Use Parent: false Zone kitchen : Zone: kitchen X: 410 Y: 370 Z: 0 X-Length: 245 Y-Length: 210 Z-Length: 100 Parent:Unset Use Parent: false Zone bathroom : Zone: bathroom X: 55 Y: 20 Z: 0 X-Length: 260 Y-Length: 350 Z-Length: 100 Parent:Unset Use Parent: false Zone bedroom : Zone: bedroom X: 55 Y: 370 Z: 0 X-Length: 259 Y-Length: 210 Z-Length: 100 Parent:Unset Use Parent: false
2.3. Move zone
Move a zone to a new position
Scope -> icasa
Name-> move-zone
Parameters-
- ${zoneId} the new zone ID.
- ${leftX} The topX value.
- ${topY} The topY value.
Example:
g! icasa:move-zone livingroom 410 25
2.4. Resize zone
Resize a zone
Scope -> icasa
Name-> resize-zone
Parameters-
- ${zoneId} the new zone ID.
- ${X-Length} The new X-Length value.
- ${Y-Length} The new Y-Length value.
Example:
g! icasa:resize-zone livingroom 245 300
2.5. Add parent
Add a parent to a zone.
Scope -> icasa
Name-> set-zone-parent
Parameters-
- ${zoneId} the child zone ID.
- ${parentId} The parent zone ID.
- ${useParentVariables} true if zone will use the parent variables, false if not.
Throws-> Exception when zone does not fit in the parent.
Example:
g! icasa:set-zone-parent livingroom chair true
2.6. Add variable
Add a variable to a zone.
Scope -> icasa
Name-> add-zone-variable
Parameters-
- ${zoneId} the zone ID.
- ${variableName} The variable name.
Example:
g! icasa:add-zone-variable livingroom comfortable
2.7. Modify variable
Modifies a variable in a given zone.
Scope -> icasa
Name-> modify-zone-variable
Parameters-
- ${zoneId} the zone ID.
- ${variableName} The variable name.
- ${variableValue} The numeric value.
Example:
g! icasa:modify-zone-variable livingroom comfortable 100
2.8. Attach a zone to a device
Attach a zone to a device .
Scope -> icasa
Name-> attach-zone-device
Parameters-
- ${deviceId} the zone ID.
- ${zoneId} The variable name.
- ${attach} True to attach, false to deatach.
Example:
g! icasa:attach-zone-device Pres-A1255D-D chair true g! icasa:attach-zone-device Pres-A1255D-D chair false
2.9. Show zone
Shows the information of a zone.
Scope -> icasa
Name-> show-zone
Parameters->
- ${zoneId} The zone ID.
Example:
g! icasa:show-zone livingroom Variables: Variable: Volume - Value: 10.0 Variable: Illuminance - Value: 5.0 Variable: Temperature - Value: 295.15
3. Manipulating Persons
3.1. Create persons
Creates a new simulated person.
Scope -> icasa
Name-> create-person
Parameters:
- ${personId} The new person Id.
- ${personType} The person type.
Example:
g! icasa:create-person Pierre Boy
3.2. Get persons in zone
Get the zones where a given person is located.
Scope -> icasa
Name-> show-person-zones
Parameters:
- ${personId} The person Id.
Example:
g! icasa:show-person-zones Pierre Zones: Zone : Zone: bedroom X: 55 Y: 370 -- Width: 259 Height: 210 - Parent: Unset - Use parent: false
3.3. List persons
Shows the list of persons.
Scope -> icasa
Name-> show-persons
Parameters->
- ${personId} The person ID.
Example:
g! icasa:show-persons Persons: Person Person: Pierre - Position: (215:444) - Type: Boy
3.4. Move person
Move a person to new positions
Scope -> icasa
Name-> move-person
Parameters->
- ${personId} The person ID.
Example:
g! icasa:move-person Pierre 100 100
3.5. Move person to a zone
Move a person to a zone.
Scope -> icasa
Name-> move-person-zone
Parameters->
- ${personId} The person ID.
- ${zoneId} The zone ID.
Example:
g! icasa:move-person-zone Pierre kitchen
3.6. Attach person to a zone
Attach/detach a person to/from a zone.
Scope -> icasa
Name-> attach-person-zone
Parameters->
- ${personId} The person ID.
- ${zoneId} The zone ID.
- ${attach} True to attach, false to deatach.
Example:
g! icasa:attach-person-zone Pierre chair true g! icasa:attach-person-zone Pierre chair false
4. Manipulating Simulation
4.1. Reset context
Clear the simulation context, it will remove all zones, simulated devices and persons.
Scope -> icasa
Name-> reset-context
Parameters->
- NONE
Example:
g! icasa:reset-context
4.2. Show scripts
Shows the list of available scripts
Scope -> icasa
Name-> show-scripts
Parameters->
- NONE
Example:
g! icasa:show-scripts Scripts: SetupHouse.bhv SetupHouseWithLights.bhv
4.3. Execute script
Execute a script. The scripts must be already loaded (available in the script directory)
Scope -> icasa
Name-> execute-script
Parameters->
- ${scriptName} script name to execute.
Example:
g! icasa:execute-script SetupHouseWithLights.bhv
5. Configuration Commands
5.1. Set a global configuration property
Scope -> icasa
Name-> set-global-property
Parameters->
- ${name} the property name.
- ${value} the property value.
- ${type} the property type. The type must be one of this [String, Boolean, Integer, Long, Float] (Optional Parameter- Default Value is String)
Example:
g! icasa:set-global-property period 80.0 Float
5.2. Set a user configuration property
Scope -> icasa
Name-> set-user-property
Parameters->
- ${user} the user name.
- ${name} the property name.
- ${value} the property value.
- ${type} the property type. The type must be one of this [String, Boolean, Integer, Long, Float] (Optional Parameter- Default Value is String)
Example:
g! icasa:set-user-property john period 80.0 Float
5.3. Set a application configuration property
Scope -> icasa
Name-> set-app-property
Parameters->
- ${app} the application id.
- ${name} the property name.
- ${value} the property value.
- ${type} the property type. The type must be one of this [String, Boolean, Integer, Long, Float] (Optional Parameter- Default Value is String)
Example:
g! icasa:set-app-property LightFollowMe period 80.0 Float
5.4. Get a global configuration property value
Scope -> icasa
Name-> get-global-property
Parameters->
- ${name} the property name.
Example:
g! icasa:get-global-property period Property: period - Value: 80.0 80
5.5. Get a user configuration property value
Scope -> icasa
Name-> get-user-property
Parameters->
- ${user} the user name.
- ${name} the property name.
Example:
g! icasa:get-user-property jhon period Property: period - Value: 80.0 80
5.6. Get a application configuration property value
Scope -> icasa
Name-> get-app-property
Parameters->
- ${app} the application id.
- ${name} the property name.
Example:
g! icasa:get-app-property LightFollowMe period Property: period - Value: 80.0 80