Skip to content

the lost XS1 API documentation

bietiekay edited this page Mar 17, 2011 · 15 revisions

Warning

All methods described on this page that write something to the XS1 will write to your XS1 flash memory. Please keep in mind that that the use flash memory can and will probably degrade when written too often.

"Zyklische/automatisierte Schreibvorgänge von Konfigurationsdaten (Aktor-, Sensor-,Timer-, Script-, Raum-Einstellungen) und Uhrzeiteinstellung dürfen nicht vorgenommen werden, da diese langfristig den internen Flashspeicher abnutzen und das Gerät zerstört wird. Dies betrifft natürlich nicht das Setzen oder Auslesen von Aktor- und Sensorzuständen, der veröffentlichte Benutzerbefehlssatz darf uneingeschränkt genutzt werden. Bei normaler Benutzung ist eine sehr lange Lebensdauer zu erwarten, da das Gerät u.a. über eine interne Verteilung der Schreibvorgänge verfügt (Wear-Leveling). Die vom Chiphersteller garantierte Erhaltungszeit der Konfigurationsdaten liegt bei einem Minimum von 20 Jahren."

Authentication

When you did the first setup of your XS1 you were asked to set a password. Unfortunately there's no official documentation about how to access the more delicate parts of the EzControl XS1 interface.

Thankfully everything can be done over the provided REST interface. If you do not know what REST is and how it works, please read here.

Regarding the EzControl XS1 there are just a few things to know:

For every command in this section of the documentation you need to build a special version of REST request URL. This URL signalizes the XS1 which command you want to call and which parameters you want to set. To handle the necessary authentication the URL needs to include the user name and password with every command you call (well some of the below commands work without that).

Basically the beginning of the REST URLs just looks like this for those "hidden commands" described on this page:

http://192.168.1.242/control?user=Administrator&pwd=password

Were "Administrator" is the user name and "password" is the password as configured by you.

Commands

get_list_rooms

This gives you a list of rooms. As of now there's no indication what this will be used in the future for.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_list_rooms&callback=cname

Output:

cname({ "version": 15, "type": "get_list_rooms", "room": [ { "name": "Room_1" }, ... { "name": "Room_64" }] })

get_list_rfmodes

Returns a list of currently active and compatible RF modes of the XS1.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_list_rfmodes&callback=cname

Output:

cname({ "version": 15, "type": "get_list_rfmodes", "transceiver1": [ { "name": "433_Mode_1_wide" }, { "name": "433_Mode_2_narrow" }], "transceiver2": [ { "name": "868_Mode_1_wide" }, { "name": "868_Mode_2_narrow" }, { "name": "868_Mode_3_FC1" }] })

get_list_systems

Returns a list of currently compatible systems.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_list_systems&callback=cname

Output:

cname({ "version": 15, "type": "get_list_systems", "system": [ { "name": "virtual", "functions": [ "disabled", "on", "off", "absolut", "toggle"] }, { "name": "fs10", "functions": [ "disabled", "on", "off", "toggle"] }, { "name": "fs20", "functions": [ "disabled", "on", "off", "absolut", "toggle", "on_wait_off", "dim_up", "dim_down"] }, { "name": "rs200", "functions": [ "disabled", "on", "off", "toggle"] }, { "name": "ab400", "functions": [ "disabled", "on", "off"] }, { "name": "ab601", "functions": [ "disabled", "on", "off"] }, { "name": "it", "functions": [ "disabled", "on", "off", "toggle"] }, { "name": "rev", "functions": [ "disabled", "on", "off", "toggle"] }, { "name": "bsquigg", "functions": [ "disabled", "on", "off"] }, { "name": "marmi", "functions": [ "disabled", "on", "off", "toggle"] }, { "name": "fc1", "functions": [ "disabled", "on", "off"] }, { "name": "oasefm", "functions": [ "disabled", "on", "off"] }, { "name": "rs868", "functions": [ "disabled", "on", "off"] }, { "name": "ws433", "functions": [] }, { "name": "ws300", "functions": [] }, { "name": "fht", "functions": [ "disabled", "auto", "manual"] }, { "name": "hms", "functions": [] }, { "name": "wmr200", "functions": [] }, { "name": "em", "functions": [] }] })

get_list_functions

Returns a list of available functions / actions for actuators.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_list_functions&callback=cname

Output:

cname({ "version": 15, "type": "get_list_functions", "function": [ { "name": "disabled" }, { "name": "on" }, { "name": "off" }, { "name": "absolut" }, { "name": "relative" }, { "name": "toggle" }, { "name": "on_wait_off" }, { "name": "dim_up" }, { "name": "dim_down" }, { "name": "auto" }, { "name": "manual" }, { "name": "learn" }, { "name": "special" }] })

get_template_system

This command is used to determine the configurable fields per system or just an overview.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_template_system&callback=cname

Returns just an overview.

Output:

cname({ "version": 15, "type": "get_template_system", "system": { "name": "virtual", "input": [ { "name": "name", "regex": "[a-zA-Z]{1}[a-zA-Z0-9_]{1,18}", "length": 19}] } })

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_template_system&name=fs10&callback=cname

Returns the configurable settings for the system "fs10".

Output:

cname({ "version": 15, "type": "get_template_system", "system": { "name": "fs10", "input": [ { "name": "name", "regex": "[a-zA-Z]{1}[a-zA-Z0-9_]{1,18}", "length": 19}, { "name": "hc1", "regex": "[0-9]", "length": 1}, { "name": "address", "regex": "[0-9]", "length": 1}] } })

get_template_fcn

more Configurables

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_template_fcn&name=disabled&callback=cname

Output:

cname({ "version": 15, "type": "get_template_fcn", "function": { "name": "disabled", "input": [] } })

Besides "disabled" the name parameter can have every function name as of get_list_functions.

get_template_fcndsc

Unknown

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_template_fcndcs&callback=cname

Output:

JSON47({ "version": 15, "type": "get_template_fcndsc", "functiondsc": [ { "name": "+" },.. { "name": "35°C" }] })

get_types_actuators

Retrieves the types of compatible actuators.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_types_actuators&callback=cname

Output:

cname({ "version": 15, "type": "get_types_actuators", "actuatortype": [ { "name": "disabled" }, { "name": "switch" }, { "name": "dimmer" }, { "name": "blind" }, { "name": "sun-blind" }, { "name": "door" }, { "name": "window" }, { "name": "temperature" }, { "name": "sound" }] })

get_types_sensors

Retrieves the types of compatible sensors.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_types_sensors&callback=cname

Output: cname({ "version": 15, "type": "get_types_sensors", "sensortype": [ { "name": "disabled", "unit": "" }, { "name": "other", "unit": "" }, { "name": "remotecontrol", "unit": "boolean" }, { "name": "temperature", "unit": "°C" },... { "name": "oil_consump", "unit": "dm³" }, { "name": "oil_peak", "unit": "dm³" }] })

get_types_timers

Retrieves the types of compatible timers.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_types_timers&callback=cname

Output:

cname({ "version": 15, "type": "get_types_timers", "timertype": [ { "name": "disabled" }, { "name": "time" }, { "name": "sunrise" }, { "name": "sunset" }] })

get_types_scripts

Retrieves the types of compatible scripts.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_types_scripts&callback=cname

Output:

cname({ "version": 15, "type": "get_types_scripts", "scripttype": [ { "name": "disabled" }, { "name": "onchange" }] })

get_config_main

Retrieves the main configuration of the XS1.

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_config_main&callback=cname

Output: cname({ "version": 16, "type": "get_config_main", "main": { "weather_temp": "Temperatur", "weather_hum": "Luftfeuchte", "weather_baro": "-", "weather_wind": "-", "weather_wdir": "-", "weather_rain": "-", "weather_light": "-", "weather_alt": 0, "longitude": 8.238939, "latitude": 53.626861, "rfmode1": "433_Mode_1_wide", "rfmode2": "868_Mode_1_wide", "mmc_state": "ok", "mmc_wp": "off", "mmc_log": "on" } })

get_config_sensor

Retrieves the configuration of a specific sensor. The numbering starts with 1. A list of sensors can be retrieved using the get_list_sensors command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_config_sensor&number=2&callback=cname

Output:

cname({ "version": 15, "type": "get_config_sensor", "sensor": { "number": 2, "id": 2, "name": "Keller_", "system": "ws300", "type": "hygrometer", "hc1": 0, "hc2": 0, "address": 3, "factor": 1.000000, "offset": 0.000000, "room": 0, "x": 0, "y": 0, "z": 0, "log": "off" } })

set_config_sensor

Sets the configuration of a specific sensor. The numbering starts with 1. A list of sensors can be retrieved using the get_list_sensors command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=set_config_sensor&number=2system=ws300&type=hygrometer&name=Keller_&address=3&initvalue=&factor=1&offset=0&log=off&callback=cname

Output:

cname({ "version": 15, "type": "set_config_sensor", "sensor": { "number": 2, "id": 0, "name": "Keller_", "system": "ws300", "type": "hygrometer", "hc1": 0, "hc2": 0, "address": 3, "factor": 1.000000, "offset": 0.000000, "room": 0, "x": 0, "y": 0, "z": 0, "log": "off" } })

get_config_actuator

Retrieves the configuration of a specific actuator. The numbering starts with 1. A list of actuators can be retrieved using the get_list_actuators command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_config_sensor&number=1&callback=cname

Output:

cname({ "version": 15, "type": "get_config_actuator", "actuator": { "number": 1, "id": 1, "name": "Fernsehlampe", "system": "ab400", "type": "switch", "hc1": 26, "hc2": 0, "address": 1, "function": [ { "type": "on", "dsc": "ON" }, { "type": "off", "dsc": "OFF" }, { "type": "disabled", "dsc": "" }, { "type": "disabled", "dsc": "" }], "room": 1, "x": 0, "y": 0, "z": 0, "log": "off" } })

set_config_actuator

Sets the configuration of a specific actuator. The numbering starts with 1. A list of actuators can be retrieved using the get_list_actuators command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=set_config_sensor&number=1&system=ab400&type=switch&name=Fernsehlampe&hc1=26&address=1&initvalue=&function1.dsc=ON&function1.type=on&function2.dsc=OFF&function2.type=off&function3.dsc=&function3.type=disabled&function4.dsc=&function4.type=disabled&log=off&callback=cname

Output:

cname({ "version": 15, "type": "set_config_actuator", "actuator": { "number": 1, "id": 0, "name": "Fernsehlampe", "system": "ab400", "type": "switch", "hc1": 26, "hc2": 0, "address": 1, "function": [ { "type": "on", "dsc": "ON" }, { "type": "off", "dsc": "OFF" }, { "type": "disabled", "dsc": "" }, { "type": "disabled", "dsc": "" }], "room": 1, "x": 0, "y": 0, "z": 0, "log": "off" } })

get_config_timer

Retrieves the configuration of a specific timer. The numbering starts with 1. A list of timers can be retrieved using the get_list_timers command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_config_timer&number=1&callback=cname

Output:

cname({ "version": 15, "type": "get_config_timer", "timer": { "number": 1, "name": "test", "type": "disabled", "weekdays": [ "we"], "time": { "hour": 8, "min": 30, "sec": 0 }, "random": 0, "offset": 0, "earliest": 0, "latest": 0, "actuator": { "name": "SchlafzimmerLicht", "function": 1 } } })

set_config_timer

Sets the configuration of a specific timer. The numbering starts with 1. A list of timers can be retrieved using the get_list_timers command (see official documentation).

Example:

http://192.168.1.242/control?user=Administrator&pwd=password&cmd=get_config_timer&number=1&type=disabled&name=test&weekdays=We&hour=08&min=30&sec=00&offset=0&random=0&earliest=0&latest=0&actuator.name=SchlafzimmerLicht&actuator.function=1&callback=cname

Output:

cname({ "version": 15, "type": "set_config_timer", "timer": { "number": 1, "name": "test", "type": "disabled", "weekdays": [ "we"], "time": { "hour": 8, "min": 30, "sec": 0 }, "random": 0, "offset": 0, "earliest": 0, "latest": 0, "actuator": { "name": "SchlafzimmerLicht", "function": 1 } } })

Clone this wiki locally