Previous Topic

Next Topic

Book Contents

Book Index

Zone Device Class Object Property Command (deprecated)

A command for simultaneous changing the value of a Device Class Object property on all devices which belong to the same zone.

Managing Zone Property Commands

The type of the command is stored in the TYPE constant of the com.prosyst.mbs.services.hdm.ham.command.ZoneDCOPropertyCommand interface.

Via Java API

To configure the command, use the following methods from the ZoneDCOPropertyCommand class:

Target devices

The HDM retrieves all devices from the selected zone or zones.

Property

When the command is executed the HAM changes the values of the target devices' properties.

Asynchronous Execution

After you configure your command, call the save method. The Command Provider will save the command in Config Tree.

Via ConfigTree

All commands are stored in ConfigTree, which allows you to import/export them and to add/edit commands by modifying XML files. Refer to Configuring HDM via ConfigTree.

You can create a command directly from ConfigTree by writing/generating an XML file, according to the following schema definitions:

Download Zone Device Class Object Property Command Schema Definition

Download Common Datatypes Schema Definition

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <!-- Include common types -->

    <xs:include schemaLocation="HAMCommonTypes.xsd"/>

    <!-- Global elements definitions -->

    <xs:complexType name="zoneDCOPropertyCommand">

        <xs:complexContent>

            <xs:extension base="configNode">

                <xs:sequence>

                    <xs:element name="property" type="propertyType" minOccurs="3" maxOccurs="unbounded">

                        <xs:alternative test="@key eq 'uid' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'device_class' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'property_name' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'int'" type="valueInt"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'char'" type="valueChar"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'boolean'" type="valueBoolean"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'byte'" type="valueByte"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'short'" type="valueShort"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'long'" type="valueLong"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'double'" type="valueDouble"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'float'" type="valueFloat"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'long'" type="valueLong"/>

                        <xs:alternative test="@key eq 'property_value' and @type eq 'map'" type="valueMap"/>

                        <xs:alternative test="@key eq 'property_value'" type="valueString"/>

                        <xs:alternative test="@key eq 'async' and @type eq 'boolean'" type="valueBoolean"/>

                        <xs:alternative test="@key eq 'ttl' and @type eq 'long'" type="valuePositiveLong"/>

                        <xs:alternative test="@key eq 'includeChildZones' and @type eq 'boolean'" type="valueBoolean"/>

                        <xs:alternative test="@key eq 'state' and @type eq 'int'" type="valueSceneState"/>

                        <xs:alternative test="@key eq 'usedInScenes' and @type eq 'string[]'" type="valueString"/>

                        <xs:alternative test="@key eq 'usedInRules' and @type eq 'string[]'" type="valueString"/>

                        <xs:alternative test="@key eq 'command_count' and @type eq 'int'" type="valuePositiveInt"/>

                        <xs:alternative test="@key eq 'command_id' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'command_type' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'name' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'application' and @type eq 'string'" type="valueString"/>

                        <xs:alternative test="@key eq 'internal' and @type eq 'string'" type="valueBoolean"/>

                        <xs:alternative type="xs:error"/>

                    </xs:element>

                </xs:sequence>

                <xs:assert test="count(property[@key='uid']) eq 1"/>

                <xs:assert test="count(property[@key='device_class']) eq 1"/>

                <xs:assert test="count(property[@key='property_name']) eq 1"/>

            </xs:extension>

        </xs:complexContent>

    </xs:complexType>

    <xs:complexType name="attributeZoneDCOPropertyCommand">

        <xs:attribute name="name" use="required">

            <xs:simpleType>

                <xs:restriction base="xs:string">

                    <xs:enumeration value="ZoneDCOPropertyCommand"/>

                </xs:restriction>

            </xs:simpleType>

        </xs:attribute>

    </xs:complexType>

    <xs:complexType name="zoneDCOPropertyCommands">

        <xs:complexContent>

            <xs:extension base="attributeZoneDCOPropertyCommand">

                <xs:all>

                    <xs:element name="property" type="propertyValue" minOccurs="0" maxOccurs="unbounded"/>

                    <xs:element name="config" type="zoneDCOPropertyCommand" minOccurs="0" maxOccurs="unbounded">

                        <xs:unique ref="uniqueProperties"/>

                    </xs:element>

                </xs:all>

            </xs:extension>

        </xs:complexContent>

    </xs:complexType>

    <!-- XML Schema definition -->

    <xs:element name="config" type="zoneDCOPropertyCommands">

        <xs:unique name="uniqueProperties">

            <xs:selector xpath="property"/>

            <xs:field xpath="@key"/>

        </xs:unique>

        <xs:unique name="uniqueConfigNodes">

            <xs:selector xpath="config"/>

            <xs:field xpath="@name"/>

        </xs:unique>

    </xs:element>

</xs:schema>

The following example contains a Zone Property Command which selects all devices from floor1 zone which have the MultiLevelSwitch Device Class Object and changes their level property to 50.

Device Class Object Operation Command Configuration

<config name="ZoneDCOPropertyCommand">

  <config name="ZoneDCOPropertyCommand2">

    <property key="uid" value="floor1" type="string"/>

    <property key="device_class" value="com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSwitch" type="string"/>

    <property key="property_value" value="1" type="string"/>

    <property key="property_name" value="level" type="string"/>

  </config>

</config>