-
Notifications
You must be signed in to change notification settings - Fork 7
the lost XS1 API documentation
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."
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.
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" }] })
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" }] })
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": [] }] })
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" }] })
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:
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}] } })
more Configurables
Example:
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.
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" }] })
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" }] })
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³" }] })
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" }] })
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" }] })
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" } })
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:
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" } })
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:
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" } })
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:
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" } })
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:
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" } })
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:
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 } } })
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:
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 } } })