From ef431f640989a4e43549392fc7cdc85127a40c2e Mon Sep 17 00:00:00 2001 From: Florian <1technophile@users.noreply.github.com> Date: Fri, 15 Feb 2019 20:25:53 +0100 Subject: [PATCH] Update ESPilight library to 0.16.0 tfa protocol kerui protocol --- lib/ESPiLight/library.json | 2 +- lib/ESPiLight/library.properties | 2 +- lib/ESPiLight/src/ESPiLight.cpp | 127 +++++----- lib/ESPiLight/src/ESPiLight.h | 3 +- .../pilight/protocols/433.92/alecto_ws1700.c | 24 +- .../pilight/protocols/433.92/alecto_wsd17.c | 12 +- .../pilight/protocols/433.92/alecto_wx500.c | 44 ++-- .../protocols/433.92/arctech_contact.c | 10 +- .../pilight/protocols/433.92/arctech_dimmer.c | 52 ++-- .../pilight/protocols/433.92/arctech_dusk.c | 8 +- .../pilight/protocols/433.92/arctech_motion.c | 8 +- .../pilight/protocols/433.92/arctech_screen.c | 16 +- .../protocols/433.92/arctech_screen_old.c | 12 +- .../pilight/protocols/433.92/arctech_switch.c | 16 +- .../protocols/433.92/arctech_switch_old.c | 12 +- .../libs/pilight/protocols/433.92/auriol.c | 16 +- .../pilight/protocols/433.92/beamish_switch.c | 14 +- .../libs/pilight/protocols/433.92/clarus.c | 12 +- .../pilight/protocols/433.92/cleverwatts.c | 14 +- .../protocols/433.92/conrad_rsl_contact.c | 6 +- .../protocols/433.92/conrad_rsl_switch.c | 16 +- .../libs/pilight/protocols/433.92/daycom.c | 12 +- .../libs/pilight/protocols/433.92/ehome.c | 10 +- .../protocols/433.92/elro_300_switch.c | 14 +- .../protocols/433.92/elro_400_switch.c | 12 +- .../protocols/433.92/elro_800_contact.c | 8 +- .../protocols/433.92/elro_800_switch.c | 12 +- .../protocols/433.92/eurodomest_switch.c | 16 +- .../libs/pilight/protocols/433.92/ev1527.c | 6 +- .../libs/pilight/protocols/433.92/heitech.c | 10 +- .../libs/pilight/protocols/433.92/impuls.c | 12 +- .../pilight/protocols/433.92/kerui_d026.c | 117 +++++++++ .../pilight/protocols/433.92/kerui_d026.h | 17 ++ .../protocols/433.92/logilink_switch.c | 12 +- .../libs/pilight/protocols/433.92/mumbi.c | 12 +- .../protocols/433.92/ninjablocks_weather.c | 20 +- .../libs/pilight/protocols/433.92/pollin.c | 12 +- .../pilight/protocols/433.92/quigg_gt1000.c | 26 +- .../pilight/protocols/433.92/quigg_gt7000.c | 16 +- .../pilight/protocols/433.92/quigg_gt9000.c | 30 +-- .../pilight/protocols/433.92/quigg_gt9000.h | 2 +- .../pilight/protocols/433.92/quigg_screen.c | 16 +- .../libs/pilight/protocols/433.92/rc101.c | 14 +- .../libs/pilight/protocols/433.92/rsl366.c | 22 +- .../libs/pilight/protocols/433.92/sc2262.c | 8 +- .../pilight/protocols/433.92/secudo_smoke.c | 4 +- .../pilight/protocols/433.92/selectremote.c | 10 +- .../pilight/protocols/433.92/silvercrest.c | 12 +- .../libs/pilight/protocols/433.92/tcm.c | 22 +- .../protocols/433.92/techlico_switch.c | 12 +- .../libs/pilight/protocols/433.92/teknihall.c | 24 +- .../libs/pilight/protocols/433.92/tfa.c | 26 +- .../libs/pilight/protocols/433.92/tfa2017.c | 239 ++++++++++++++++++ .../libs/pilight/protocols/433.92/tfa2017.h | 17 ++ .../libs/pilight/protocols/433.92/tfa30.c | 20 +- .../libs/pilight/protocols/433.92/x10.c | 10 +- .../libs/pilight/protocols/protocol_header.h | 6 +- .../libs/pilight/protocols/protocol_init.h | 6 +- 58 files changed, 836 insertions(+), 434 deletions(-) create mode 100644 lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.c create mode 100644 lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.h create mode 100644 lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.c create mode 100644 lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.h diff --git a/lib/ESPiLight/library.json b/lib/ESPiLight/library.json index 8a571f5..8e44d45 100755 --- a/lib/ESPiLight/library.json +++ b/lib/ESPiLight/library.json @@ -7,7 +7,7 @@ "type": "git", "url": "https://github.com/puuu/ESPiLight.git" }, - "version": "0.15.0", + "version": "0.16.0", "license": "GPL-3.0", "frameworks": "arduino", "platforms": diff --git a/lib/ESPiLight/library.properties b/lib/ESPiLight/library.properties index 94ca5f2..a8a46e2 100755 --- a/lib/ESPiLight/library.properties +++ b/lib/ESPiLight/library.properties @@ -1,5 +1,5 @@ name=ESPiLight -version=0.15.0 +version=0.16.0 author=Puuu maintainer=Puuu sentence=pilight 433.92 MHz protocols library for Arduino diff --git a/lib/ESPiLight/src/ESPiLight.cpp b/lib/ESPiLight/src/ESPiLight.cpp index b1aae5c..2859a0e 100755 --- a/lib/ESPiLight/src/ESPiLight.cpp +++ b/lib/ESPiLight/src/ESPiLight.cpp @@ -68,6 +68,63 @@ static protocols_t *get_used_protocols() { return used_protocols; } +static protocols_t *find_protocol_node(const char *name) { + protocols_t *pnode = get_protocols(); + while (pnode != nullptr) { + if (strcmp(name, pnode->listener->id) == 0) { + return pnode; + } + pnode = pnode->next; + } + return nullptr; +} + +static protocol_t *find_protocol(const char *name) { + protocols_t *pnode = find_protocol_node(name); + if (pnode != nullptr) { + return pnode->listener; + } + return nullptr; +} + +static int create_pulse_train(uint16_t *pulses, protocol_t *protocol, + const String &content) { + Debug("piLightCreatePulseTrain: "); + + if (!json_validate(content.c_str())) { + Debug("invalid json: "); + DebugLn(content); + return ESPiLight::ERROR_INVALID_JSON; + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wtype-limits" + if ((protocol != nullptr) && (protocol->createCode != nullptr) && + (protocol->maxrawlen <= MAXPULSESTREAMLENGTH)) { +#pragma GCC diagnostic pop + Debug("protocol: "); + Debug(protocol->id); + + protocol->rawlen = 0; + protocol->raw = pulses; + JsonNode *message = json_decode(content.c_str()); + int return_value = protocol->createCode(message); + json_delete(message); + // delete message created by createCode() + json_delete(protocol->message); + protocol->message = nullptr; + + if (return_value == EXIT_SUCCESS) { + DebugLn(" create Code succeded."); + return protocol->rawlen; + } else { + DebugLn(" create Code failed."); + return ESPiLight::ERROR_INVALID_PILIGHT_MSG; + } + } + return ESPiLight::ERROR_UNAVAILABLE_PROTOCOL; +} + void ESPiLight::initReceiver(byte inputPin) { int16_t interrupt = digitalPinToInterrupt(inputPin); if (_interrupt == interrupt) { @@ -228,7 +285,8 @@ int ESPiLight::send(const String &protocol, const String &json, int length = 0; uint16_t pulses[MAXPULSESTREAMLENGTH]; - length = createPulseTrain(pulses, protocol, json); + protocol_t *protocol_listener = find_protocol(protocol.c_str()); + length = create_pulse_train(pulses, protocol_listener, json); if (length > 0) { /* DebugLn(); @@ -240,6 +298,9 @@ int ESPiLight::send(const String &protocol, const String &json, Debug(content); DebugLn(")"); */ + if (repeats == 0) { + repeats = protocol_listener->txrpt; + } sendPulseTrain(pulses, (unsigned)length, repeats); } return length; @@ -247,49 +308,8 @@ int ESPiLight::send(const String &protocol, const String &json, int ESPiLight::createPulseTrain(uint16_t *pulses, const String &protocol_id, const String &content) { - protocol_t *protocol = nullptr; - protocols_t *pnode = get_used_protocols(); - JsonNode *message; - - Debug("piLightCreatePulseTrain: "); - - if (!json_validate(content.c_str())) { - Debug("invalid json: "); - DebugLn(content); - return ERROR_INVALID_JSON; - } - - while (pnode != nullptr) { - protocol = pnode->listener; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wtype-limits" - if ((protocol->createCode != nullptr) && (protocol_id == protocol->id) && - (protocol->maxrawlen <= MAXPULSESTREAMLENGTH)) { -#pragma GCC diagnostic pop - Debug("protocol: "); - Debug(protocol->id); - - protocol->rawlen = 0; - protocol->raw = pulses; - message = json_decode(content.c_str()); - int return_value = protocol->createCode(message); - json_delete(message); - // delete message created by createCode() - json_delete(protocol->message); - protocol->message = nullptr; - - if (return_value == EXIT_SUCCESS) { - DebugLn(" create Code succeded."); - return protocol->rawlen; - } else { - DebugLn(" create Code failed."); - return ERROR_INVALID_PILIGHT_MSG; - } - } - pnode = pnode->next; - } - return ERROR_UNAVAILABLE_PROTOCOL; + protocol_t *protocol = find_protocol(protocol_id.c_str()); + return create_pulse_train(pulses, protocol, content); } size_t ESPiLight::parsePulseTrain(uint16_t *pulses, uint8_t length) { @@ -359,9 +379,9 @@ static void fire_callback(protocol_t *protocol, ESPiLightCallBack callback) { status = FIRST; json_free(protocol->old_content); protocol->old_content = content; - } else if (protocol->repeats < 100) { + } else if (!(protocol->repeats & 0x80)) { if (strcmp(content, protocol->old_content) == 0) { - protocol->repeats += 100; + protocol->repeats |= 0x80; status = VALID; } else { status = INVALID; @@ -378,7 +398,7 @@ static void fire_callback(protocol_t *protocol, ESPiLightCallBack callback) { deviceId = String(stmp); }; (callback)(String(protocol->id), String(protocol->old_content), status, - protocol->repeats, deviceId); + protocol->repeats & 0x7F, deviceId); } String ESPiLight::pulseTrainToString(const uint16_t *codes, size_t length) { @@ -473,17 +493,6 @@ int ESPiLight::stringToPulseTrain(const String &data, uint16_t *codes, return length; } -static protocols_t *find_proto(const char *name) { - protocols_t *pnode = get_protocols(); - while (pnode != nullptr) { - if (strcmp(name, pnode->listener->id) == 0) { - return pnode; - } - pnode = pnode->next; - } - return nullptr; -} - void ESPiLight::limitProtocols(const String &protos) { if (!json_validate(protos.c_str())) { DebugLn("Protocol limit argument is not a valid json message!"); @@ -517,7 +526,7 @@ void ESPiLight::limitProtocols(const String &protos) { continue; } - protocols_t *templ = find_proto(curr->string_); + protocols_t *templ = find_protocol_node(curr->string_); if (templ == nullptr) { Debug("Protocol not found: "); DebugLn(curr->string_); diff --git a/lib/ESPiLight/src/ESPiLight.h b/lib/ESPiLight/src/ESPiLight.h index 7bf9ff2..579d2c2 100755 --- a/lib/ESPiLight/src/ESPiLight.h +++ b/lib/ESPiLight/src/ESPiLight.h @@ -62,8 +62,9 @@ class ESPiLight { /** * Transmit Pilight json message + * repeats of 0 means repeats as defined in protocol. */ - int send(const String &protocol, const String &json, size_t repeats = 10); + int send(const String &protocol, const String &json, size_t repeats = 0); /** * Parse pulse train and fire callback diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_ws1700.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_ws1700.c index 1b74493..370053d 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_ws1700.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_ws1700.c @@ -184,19 +184,19 @@ void alectoWS1700Init(void) { alecto_ws1700->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; alecto_ws1700->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&alecto_ws1700->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_ws1700->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&alecto_ws1700->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); - options_add(&alecto_ws1700->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); + options_add(&alecto_ws1700->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_ws1700->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&alecto_ws1700->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); + options_add(&alecto_ws1700->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); - // options_add(&alecto_ws1700->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_ws1700->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&alecto_ws1700->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&alecto_ws1700->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_ws1700->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_ws1700->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&alecto_ws1700->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&alecto_ws1700->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&alecto_ws1700->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_ws1700->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&alecto_ws1700->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&alecto_ws1700->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_ws1700->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_ws1700->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&alecto_ws1700->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&alecto_ws1700->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); alecto_ws1700->parseCode=&parseCode; alecto_ws1700->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wsd17.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wsd17.c index d595470..8fee390 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wsd17.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wsd17.c @@ -165,13 +165,13 @@ void alectoWSD17Init(void) { alecto_wsd17->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; alecto_wsd17->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&alecto_wsd17->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_wsd17->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&alecto_wsd17->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wsd17->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - // options_add(&alecto_wsd17->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wsd17->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wsd17->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&alecto_wsd17->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&alecto_wsd17->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wsd17->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wsd17->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&alecto_wsd17->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); alecto_wsd17->parseCode=&parseCode; alecto_wsd17->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wx500.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wx500.c index ff8dac0..e7ec293 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wx500.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/alecto_wx500.c @@ -83,7 +83,7 @@ static void parseCode(void) { } } - n8=binToDec(binary, 32, 36); + n8=binToDec(binary, 32, 35); n7=binToDec(binary, 28, 31); n6=binToDec(binary, 24, 27); n5=binToDec(binary, 20, 23); @@ -139,7 +139,7 @@ static void parseCode(void) { type = 0x5; return; } - + alecto_wx500->message = json_mkobject(); switch(type) { case 1: @@ -147,7 +147,7 @@ static void parseCode(void) { temperature = (double)(binToSigned(binary, 12, 23)) / 10.0; humidity = (binToDec(binary, 28, 31) * 10) + binToDec(binary, 24,27); battery = !binary[8]; - + temperature += temp_offset; humidity += humi_offset; @@ -275,26 +275,26 @@ void alectoWX500Init(void) { alecto_wx500->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; alecto_wx500->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&alecto_wx500->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_wx500->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&alecto_wx500->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); - options_add(&alecto_wx500->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_wx500->options, 'w', "windavg", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_wx500->options, 'd', "winddir", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&alecto_wx500->options, 'g', "windgust", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - //options_add(&alecto_wx500->options, 'r', "rain", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wx500->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wx500->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&alecto_wx500->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); + options_add(&alecto_wx500->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wx500->options, "w", "windavg", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wx500->options, "d", "winddir", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&alecto_wx500->options, "g", "windgust", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + //options_add(&alecto_wx500->options, "r", "rain", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - // options_add(&alecto_wx500->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wx500->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wx500->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wx500->options, 0, "wind-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&alecto_wx500->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&alecto_wx500->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&alecto_wx500->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&alecto_wx500->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&alecto_wx500->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&alecto_wx500->options, 0, "show-wind", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - //options_add(&alecto_wx500->options, 0, "show-rain", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + // options_add(&alecto_wx500->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wx500->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wx500->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wx500->options, "0", "wind-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&alecto_wx500->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&alecto_wx500->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&alecto_wx500->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&alecto_wx500->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&alecto_wx500->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&alecto_wx500->options, "0", "show-wind", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + //options_add(&alecto_wx500->options, "0", "show-rain", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); alecto_wx500->parseCode=&parseCode; alecto_wx500->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_contact.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_contact.c index bd034d6..47a6403 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_contact.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_contact.c @@ -107,12 +107,12 @@ void arctechContactInit(void) { arctech_contact->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_contact->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_contact->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_contact->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_contact->options, 't', "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_contact->options, 'f', "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_contact->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_contact->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_contact->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_contact->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_contact->options, 'a', "all", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_contact->options, "a", "all", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_contact->parseCode=&parseCode; arctech_contact->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dimmer.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dimmer.c index d1d55fb..d26eae4 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dimmer.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dimmer.c @@ -36,10 +36,11 @@ #define MIN_PULSE_LENGTH 250 #define MAX_PULSE_LENGTH 320 #define AVG_PULSE_LENGTH 300 -#define RAW_LENGTH 148 +#define MAX_RAW_LENGTH 148 +#define MIN_RAW_LENGTH 132 static int validate(void) { - if(arctech_dimmer->rawlen == RAW_LENGTH) { + if(arctech_dimmer->rawlen == MAX_RAW_LENGTH || arctech_dimmer->rawlen == MIN_RAW_LENGTH) { if(arctech_dimmer->raw[arctech_dimmer->rawlen-1] >= (MIN_PULSE_LENGTH*PULSE_DIV) && arctech_dimmer->raw[arctech_dimmer->rawlen-1] <= (MAX_PULSE_LENGTH*PULSE_DIV) && arctech_dimmer->raw[1] >= AVG_PULSE_LENGTH*(PULSE_MULTIPLIER*2)) { @@ -60,9 +61,9 @@ static void createMessage(int id, int unit, int state, int all, int dimlevel, in json_append_member(arctech_dimmer->message, "unit", json_mknumber(unit, 0)); } - if(dimlevel == 0) { + /*if(dimlevel == 0) { state = 0; - } else if(dimlevel > 0) { + } else */if(dimlevel >= 0) { state = 1; json_append_member(arctech_dimmer->message, "dimlevel", json_mknumber(dimlevel, 0)); } @@ -81,9 +82,9 @@ static void createMessage(int id, int unit, int state, int all, int dimlevel, in } static void parseCode(void) { - int binary[RAW_LENGTH/4], x = 0, i = 0; + int binary[MAX_RAW_LENGTH/4], x = 0, i = 0; - if(arctech_dimmer->rawlen>RAW_LENGTH) { + if(arctech_dimmer->rawlen>MAX_RAW_LENGTH) { logprintf(LOG_ERR, "arctech_dimmer: parsecode - invalid parameter passed %d", arctech_dimmer->rawlen); return; } @@ -96,7 +97,10 @@ static void parseCode(void) { } } - int dimlevel = binToDecRev(binary, 32, 35); + int dimlevel = -1; + if(arctech_dimmer->rawlen == MAX_RAW_LENGTH) { + dimlevel = binToDecRev(binary, 32, 35); + } int unit = binToDecRev(binary, 28, 31); int state = binary[27]; int all = binary[26]; @@ -196,7 +200,7 @@ static void createDimlevel(int dimlevel) { } static void createFooter(void) { - arctech_dimmer->raw[147]=(PULSE_DIV*AVG_PULSE_LENGTH); + arctech_dimmer->raw[arctech_dimmer->rawlen-1]=(PULSE_DIV*AVG_PULSE_LENGTH); } static int checkValues(struct JsonNode *code) { @@ -292,9 +296,11 @@ static int createCode(struct JsonNode *code) { createUnit(unit); if(dimlevel > -1) { createDimlevel(dimlevel); + arctech_dimmer->rawlen = MAX_RAW_LENGTH; + } else { + arctech_dimmer->rawlen = MIN_RAW_LENGTH; } createFooter(); - arctech_dimmer->rawlen = RAW_LENGTH; } return EXIT_SUCCESS; } @@ -318,23 +324,23 @@ void arctechDimmerInit(void) { arctech_dimmer->devtype = DIMMER; arctech_dimmer->hwtype = RF433; arctech_dimmer->txrpt = NORMAL_REPEATS; - arctech_dimmer->minrawlen = RAW_LENGTH; - arctech_dimmer->maxrawlen = RAW_LENGTH; + arctech_dimmer->minrawlen = MIN_RAW_LENGTH; + arctech_dimmer->maxrawlen = MAX_RAW_LENGTH; arctech_dimmer->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_dimmer->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_dimmer->options, 'd', "dimlevel", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_dimmer->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_dimmer->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_dimmer->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_dimmer->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_dimmer->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_dimmer->options, 'l', "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_dimmer->options, "d", "dimlevel", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_dimmer->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_dimmer->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_dimmer->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_dimmer->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_dimmer->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_dimmer->options, "l", "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_dimmer->options, 0, "dimlevel-minimum", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_dimmer->options, 0, "dimlevel-maximum", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)15, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_dimmer->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&arctech_dimmer->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_dimmer->options, "0", "dimlevel-minimum", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_dimmer->options, "0", "dimlevel-maximum", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)15, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_dimmer->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_dimmer->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_dimmer->parseCode=&parseCode; arctech_dimmer->createCode=&createCode; @@ -346,7 +352,7 @@ void arctechDimmerInit(void) { #if defined(MODULE) && !defined(_WIN32) void compatibility(struct module_t *module) { module->name = "arctech_dimmer"; - module->version = "3.4"; + module->version = "3.5"; module->reqversion = "6.0"; module->reqcommit = "84"; } diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dusk.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dusk.c index 42797d8..a173b7d 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dusk.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_dusk.c @@ -102,10 +102,10 @@ void arctechDuskInit(void) { arctech_dusk->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_dusk->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_dusk->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_dusk->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_dusk->options, 't', "dusk", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_dusk->options, 'f', "dawn", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_dusk->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_dusk->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_dusk->options, "t", "dusk", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_dusk->options, "f", "dawn", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); arctech_dusk->parseCode=&parseCode; arctech_dusk->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_motion.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_motion.c index 37cc6b1..82b95d4 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_motion.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_motion.c @@ -102,10 +102,10 @@ void arctechMotionInit(void) { arctech_motion->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_motion->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_motion->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_motion->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_motion->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_motion->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_motion->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_motion->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_motion->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_motion->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); arctech_motion->parseCode=&parseCode; arctech_motion->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen.c index 89c25c4..21c8f24 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen.c @@ -247,15 +247,15 @@ void arctechScreenInit(void) { arctech_screen->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_screen->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_screen->options, 't', "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_screen->options, 'f', "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_screen->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_screen->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_screen->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_screen->options, 'l', "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_screen->options, "t", "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_screen->options, "f", "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_screen->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_screen->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_screen->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_screen->options, "l", "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_screen->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&arctech_screen->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_screen->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_screen->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_screen->parseCode=&parseCode; arctech_screen->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen_old.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen_old.c index e82ea00..6ebb8ef 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen_old.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_screen_old.c @@ -204,13 +204,13 @@ void arctechScreenOldInit(void) { arctech_screen_old->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_screen_old->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_screen_old->options, 't', "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_screen_old->options, 'f', "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_screen_old->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_screen_old->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&arctech_screen_old->options, "t", "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_screen_old->options, "f", "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_screen_old->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_screen_old->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&arctech_screen_old->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&arctech_screen_old->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_screen_old->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_screen_old->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_screen_old->parseCode=&parseCode; arctech_screen_old->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch.c index bcc0ad0..7bddf71 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch.c @@ -251,15 +251,15 @@ void arctechSwitchInit(void) { arctech_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); - options_add(&arctech_switch->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_switch->options, 'l', "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,7}|[1-5][0-9]{7}|6([0-6][0-9]{6}|7(0[0-9]{5}|10([0-7][0-9]{3}|8([0-7][0-9]{2}|8([0-5][0-9]|6[0-3]))))))$"); + options_add(&arctech_switch->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&arctech_switch->options, "l", "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&arctech_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&arctech_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_switch->parseCode=&parseCode; arctech_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch_old.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch_old.c index b57d09e..814cdc4 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch_old.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/arctech_switch_old.c @@ -227,13 +227,13 @@ void arctechSwitchOldInit(void) { arctech_switch_old->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; arctech_switch_old->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&arctech_switch_old->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_switch_old->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&arctech_switch_old->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); - options_add(&arctech_switch_old->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&arctech_switch_old->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_switch_old->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&arctech_switch_old->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[1][0-5])$"); + options_add(&arctech_switch_old->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&arctech_switch_old->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&arctech_switch_old->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_switch_old->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&arctech_switch_old->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); arctech_switch_old->parseCode=&parseCode; arctech_switch_old->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/auriol.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/auriol.c index 78cbb05..c6a388a 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/auriol.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/auriol.c @@ -173,16 +173,16 @@ void auriolInit(void) { auriol->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; auriol->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&auriol->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&auriol->options, 'c', "channel", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[1-3]"); - options_add(&auriol->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&auriol->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); + options_add(&auriol->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&auriol->options, "c", "channel", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[1-3]"); + options_add(&auriol->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&auriol->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); // options_add(&auriol->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&auriol->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&auriol->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&auriol->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&auriol->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&auriol->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&auriol->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&auriol->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&auriol->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); auriol->parseCode=&parseCode; auriol->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/beamish_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/beamish_switch.c index a5fe845..c50847b 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/beamish_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/beamish_switch.c @@ -228,14 +228,14 @@ void beamishSwitchInit(void) { beamish_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; beamish_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&beamish_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&beamish_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&beamish_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); - options_add(&beamish_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"); - options_add(&beamish_switch->options, 'a', "all", OPTION_NO_VALUE, 0, JSON_NUMBER, NULL, NULL); + options_add(&beamish_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&beamish_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&beamish_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); + options_add(&beamish_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"); + options_add(&beamish_switch->options, "a", "all", OPTION_NO_VALUE, 0, JSON_NUMBER, NULL, NULL); - options_add(&beamish_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&beamish_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&beamish_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&beamish_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); beamish_switch->parseCode=&parseCode; beamish_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/clarus.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/clarus.c index 6a3467f..59701ec 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/clarus.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/clarus.c @@ -238,13 +238,13 @@ void clarusSwitchInit(void) { clarus_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; clarus_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&clarus_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&clarus_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&clarus_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|[1-5][0-9]|6[0-3])$"); - options_add(&clarus_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_STRING, NULL, "^[ABCDEF](3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&clarus_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&clarus_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&clarus_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|[1-5][0-9]|6[0-3])$"); + options_add(&clarus_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_STRING, NULL, "^[ABCDEF](3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&clarus_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&clarus_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&clarus_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&clarus_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); clarus_switch->parseCode=&parseCode; clarus_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/cleverwatts.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/cleverwatts.c index fbb6668..b3bd13d 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/cleverwatts.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/cleverwatts.c @@ -219,14 +219,14 @@ void cleverwattsInit(void) { cleverwatts->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; cleverwatts->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&cleverwatts->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&cleverwatts->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&cleverwatts->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); - options_add(&cleverwatts->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,6}|10([0-3][0-9]{4}|4([0-7][0-9]{3}|8([0-4][0-9]{2}|5([0-6][0-9]|7[0-5])))))$"); - options_add(&cleverwatts->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&cleverwatts->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&cleverwatts->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&cleverwatts->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); + options_add(&cleverwatts->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,6}|10([0-3][0-9]{4}|4([0-7][0-9]{3}|8([0-4][0-9]{2}|5([0-6][0-9]|7[0-5])))))$"); + options_add(&cleverwatts->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&cleverwatts->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&cleverwatts->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&cleverwatts->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&cleverwatts->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); cleverwatts->parseCode=&parseCode; cleverwatts->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_contact.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_contact.c index 3397da4..1da8d7e 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_contact.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_contact.c @@ -98,9 +98,9 @@ void conradRSLContactInit(void) { conrad_rsl_contact->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; conrad_rsl_contact->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&conrad_rsl_contact->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(([0-9]|([1-9][0-9])|([1-9][0-9]{2})|([1-9][0-9]{3})|([1-9][0-9]{4})|([1-9][0-9]{5})|([1-9][0-9]{6})|((6710886[0-3])|(671088[0-5][0-9])|(67108[0-7][0-9]{2})|(6710[0-7][0-9]{3})|(671[0--1][0-9]{4})|(670[0-9]{5})|(6[0-6][0-9]{6})|(0[0-5][0-9]{7}))))$"); - options_add(&conrad_rsl_contact->options, 't', "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&conrad_rsl_contact->options, 'f', "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&conrad_rsl_contact->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(([0-9]|([1-9][0-9])|([1-9][0-9]{2})|([1-9][0-9]{3})|([1-9][0-9]{4})|([1-9][0-9]{5})|([1-9][0-9]{6})|((6710886[0-3])|(671088[0-5][0-9])|(67108[0-7][0-9]{2})|(6710[0-7][0-9]{3})|(671[0--1][0-9]{4})|(670[0-9]{5})|(6[0-6][0-9]{6})|(0[0-5][0-9]{7}))))$"); + options_add(&conrad_rsl_contact->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&conrad_rsl_contact->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); conrad_rsl_contact->parseCode=&parseCode; conrad_rsl_contact->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_switch.c index 67206c6..1a59813 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/conrad_rsl_switch.c @@ -286,15 +286,15 @@ void conradRSLSwitchInit(void) { conrad_rsl_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; conrad_rsl_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&conrad_rsl_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[1-4]$"); - options_add(&conrad_rsl_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[1-4]$"); - options_add(&conrad_rsl_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&conrad_rsl_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&conrad_rsl_switch->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&conrad_rsl_switch->options, 'l', "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&conrad_rsl_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[1-4]$"); + options_add(&conrad_rsl_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[1-4]$"); + options_add(&conrad_rsl_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&conrad_rsl_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&conrad_rsl_switch->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&conrad_rsl_switch->options, "l", "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&conrad_rsl_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&conrad_rsl_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&conrad_rsl_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&conrad_rsl_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); conrad_rsl_switch->parseCode=&parseCode; conrad_rsl_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/daycom.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/daycom.c index 7f846c3..90abd6e 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/daycom.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/daycom.c @@ -224,13 +224,13 @@ void daycomInit(void) { daycom->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; daycom->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&daycom->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&daycom->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&daycom->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-7])$"); - options_add(&daycom->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|1[0-6][0-9]{3})$"); - options_add(&daycom->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-6]?[0-9]$"); + options_add(&daycom->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&daycom->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&daycom->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-7])$"); + options_add(&daycom->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|1[0-6][0-9]{3})$"); + options_add(&daycom->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-6]?[0-9]$"); - options_add(&daycom->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&daycom->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); daycom->parseCode=&parseCode; daycom->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ehome.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ehome.c index 71564c8..f9bd889 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ehome.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ehome.c @@ -193,12 +193,12 @@ void ehomeInit(void) { ehome->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; ehome->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&ehome->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); - options_add(&ehome->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&ehome->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&ehome->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); + options_add(&ehome->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&ehome->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&ehome->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&ehome->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&ehome->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&ehome->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); ehome->parseCode=&parseCode; ehome->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_300_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_300_switch.c index 0de1d53..16d3dae 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_300_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_300_switch.c @@ -337,14 +337,14 @@ void elro300SwitchInit(void) { elro_300_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; elro_300_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&elro_300_switch->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,9}|[1-3][0-9]{9}|4([01][0-9]{8}|2([0-8][0-9]{7}|9([0-3][0-9]{6}|4([0-8][0-9]{5}|9([0-5][0-9]{4}|6([0-6][0-9]{3}|7([01][0-9]{2}|2([0-8][0-9]|9[0-4])))))))))$"); - options_add(&elro_300_switch->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-9]{1,2}$"); - options_add(&elro_300_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_300_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_300_switch->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&elro_300_switch->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,9}|[1-3][0-9]{9}|4([01][0-9]{8}|2([0-8][0-9]{7}|9([0-3][0-9]{6}|4([0-8][0-9]{5}|9([0-5][0-9]{4}|6([0-6][0-9]{3}|7([01][0-9]{2}|2([0-8][0-9]|9[0-4])))))))))$"); + options_add(&elro_300_switch->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-9]{1,2}$"); + options_add(&elro_300_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_300_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_300_switch->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&elro_300_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&elro_300_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_300_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_300_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); elro_300_switch->parseCode=&parseCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_400_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_400_switch.c index 6fea134..143cddf 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_400_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_400_switch.c @@ -205,13 +205,13 @@ void elro400SwitchInit(void) { elro_400_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; elro_400_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&elro_400_switch->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&elro_400_switch->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&elro_400_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_400_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_400_switch->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&elro_400_switch->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&elro_400_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_400_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_400_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&elro_400_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_400_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_400_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); elro_400_switch->parseCode=&parseCode; elro_400_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_contact.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_contact.c index b4a1dc6..b5fa865 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_contact.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_contact.c @@ -95,10 +95,10 @@ void elro800ContactInit(void) { elro_800_contact->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; elro_800_contact->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&elro_800_contact->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&elro_800_contact->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&elro_800_contact->options, 't', "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_800_contact->options, 'f', "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_800_contact->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&elro_800_contact->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&elro_800_contact->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_800_contact->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); elro_800_contact->parseCode=&parseCode; elro_800_contact->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_switch.c index dfb3021..82ea55e 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/elro_800_switch.c @@ -241,13 +241,13 @@ void elro800SwitchInit(void) { elro_800_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; elro_800_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&elro_800_switch->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^102[0-3]|10[01][0-9]|[0-9]{1,3}$"); - options_add(&elro_800_switch->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&elro_800_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_800_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_800_switch->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^102[0-3]|10[01][0-9]|[0-9]{1,3}$"); + options_add(&elro_800_switch->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&elro_800_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&elro_800_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&elro_800_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&elro_800_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_800_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&elro_800_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); elro_800_switch->parseCode=&parseCode; elro_800_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/eurodomest_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/eurodomest_switch.c index 9182089..de8dd43 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/eurodomest_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/eurodomest_switch.c @@ -338,15 +338,15 @@ void eurodomestSwitchInit(void) { eurodomest_switch->maxgaplen = MAX_LONG_PULSE_LENGTH; eurodomest_switch->mingaplen = MIN_LONG_PULSE_LENGTH; - options_add(&eurodomest_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&eurodomest_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&eurodomest_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); - options_add(&eurodomest_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[0-9]{2}|[0-9]{3}|[0-9]{4}|[0-9]{5}|[0-9]{6}|[0-9]{7})$"); - options_add(&eurodomest_switch->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&eurodomest_switch->options, 'l', "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&eurodomest_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&eurodomest_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&eurodomest_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); + options_add(&eurodomest_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1}|[0-9]{2}|[0-9]{3}|[0-9]{4}|[0-9]{5}|[0-9]{6}|[0-9]{7})$"); + options_add(&eurodomest_switch->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&eurodomest_switch->options, "l", "learn", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&eurodomest_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]$"); - options_add(&eurodomest_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]$"); + options_add(&eurodomest_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]$"); + options_add(&eurodomest_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]$"); eurodomest_switch->parseCode = &parseCode; eurodomest_switch->createCode = &createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ev1527.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ev1527.c index c4d11fa..c5abbd6 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ev1527.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ev1527.c @@ -93,9 +93,9 @@ void ev1527Init(void) { ev1527->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; ev1527->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&ev1527->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(104857[0-5]|10485[0-6][0-9]|1048[0-4][0-9][0-9]|104[0-7][0-9]{3}|10[0-3][0-9]{4}|0?[0-9]{1,6})$"); - options_add(&ev1527->options, 't', "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&ev1527->options, 'f', "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&ev1527->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(104857[0-5]|10485[0-6][0-9]|1048[0-4][0-9][0-9]|104[0-7][0-9]{3}|10[0-3][0-9]{4}|0?[0-9]{1,6})$"); + options_add(&ev1527->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&ev1527->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); ev1527->parseCode=&parseCode; ev1527->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/heitech.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/heitech.c index 1713839..98820cf 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/heitech.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/heitech.c @@ -210,12 +210,12 @@ void heitechInit(void) { heitech->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; heitech->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&heitech->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&heitech->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&heitech->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&heitech->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&heitech->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&heitech->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&heitech->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&heitech->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&heitech->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&heitech->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); heitech->parseCode=&parseCode; heitech->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/impuls.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/impuls.c index 481601f..e4dbeed 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/impuls.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/impuls.c @@ -222,13 +222,13 @@ void impulsInit(void) { impuls->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; impuls->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&impuls->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&impuls->options, 'u', "programcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&impuls->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&impuls->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&impuls->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&impuls->options, "u", "programcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&impuls->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&impuls->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&impuls->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&impuls->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&impuls->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&impuls->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); impuls->parseCode=&parseCode; impuls->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.c new file mode 100644 index 0000000..d744879 --- /dev/null +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.c @@ -0,0 +1,117 @@ +/* + Copyright (C) 2017 - 2019 by CurlyMo, Meloen, zeltom, mwka + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +#include +#include +#include +#include + +#include "../../core/pilight.h" +#include "../../core/common.h" +#include "../../core/dso.h" +#include "../../core/log.h" +#include "../protocol.h" +#include "../../core/binary.h" +#include "../../core/gc.h" +#include "kerui_d026.h" + + +#define PULSE_MULTIPLIER 3 +#define MIN_PULSE_LENGTH 260 +#define MAX_PULSE_LENGTH 310 +#define AVG_PULSE_LENGTH 280 +#define RAW_LENGTH 50 + +static int validate(void) { + if(kerui_D026->rawlen == RAW_LENGTH) { + if(kerui_D026->raw[kerui_D026->rawlen-1] >= (MIN_PULSE_LENGTH*PULSE_DIV) && + kerui_D026->raw[kerui_D026->rawlen-1] <= (MAX_PULSE_LENGTH*PULSE_DIV)) { + return 0; + } + } + + return -1; +} + +static void createMessage(int unitcode, int state, int state2, int state3, int state4) { + kerui_D026->message = json_mkobject(); + json_append_member(kerui_D026->message, "unitcode", json_mknumber(unitcode, 0)); + + if(state4 == 0) { + json_append_member(kerui_D026->message, "state", json_mkstring("opened")); + } + else if(state == 0) { + json_append_member(kerui_D026->message, "state", json_mkstring("closed")); + } + else if(state2 == 0) { + json_append_member(kerui_D026->message, "state", json_mkstring("tamper")); + } + else if(state3 == 0) { + json_append_member(kerui_D026->message, "state", json_mkstring("not used")); + } + else{ + json_append_member(kerui_D026->message, "battery", json_mkstring("low")); + } + +} + +static void parseCode(void) { + int binary[RAW_LENGTH/2], x = 0, i = 0; + + for(x=0;xrawlen-2;x+=2) { + if(kerui_D026->raw[x] > (int)((double)AVG_PULSE_LENGTH*((double)PULSE_MULTIPLIER/2))) { + binary[i++] = 1; + } else { + binary[i++] = 0; + } + } + + int unitcode = binToDec(binary, 0, 19); + int state = binary[20]; + int state2 = binary[21]; + int state3 = binary[22]; + int state4 = binary[23]; + createMessage(unitcode, state, state2, state3, state4); +} + +#if !defined(MODULE) && !defined(_WIN32) +__attribute__((weak)) +#endif +void keruiD026Init(void) { + + protocol_register(&kerui_D026); + protocol_set_id(kerui_D026, "kerui_D026"); + protocol_device_add(kerui_D026, "kerui_D026", "KERUI D026 Door sensor"); + kerui_D026->devtype = CONTACT; + kerui_D026->hwtype = RF433; + kerui_D026->minrawlen = RAW_LENGTH; + kerui_D026->maxrawlen = RAW_LENGTH; + kerui_D026->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; + kerui_D026->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; + + options_add(&kerui_D026->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); + options_add(&kerui_D026->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&kerui_D026->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&kerui_D026->options, "a", "tamper", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + + kerui_D026->parseCode=&parseCode; + kerui_D026->validate=&validate; +} + +#if defined(MODULE) && !defined(_WIN32) +void compatibility(struct module_t *module) { + module->name = "kerui_D026"; + module->version = "2.0"; + module->reqversion = "6.0"; + module->reqcommit = "84"; +} + +void init(void) { + keruiD026Init(); +} +#endif diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.h b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.h new file mode 100644 index 0000000..2a2baa3 --- /dev/null +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/kerui_d026.h @@ -0,0 +1,17 @@ +/* + Copyright (C) 2017 - 2019 by CurlyMo, Meloen, zeltom, mwka + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +#ifndef _PROTOCOL_KERUI_D026_H_ +#define _PROTOCOL_KERUI_D026_H_ + +#include "../protocol.h" + +struct protocol_t *kerui_D026; +void keruiD026Init(void); + +#endif diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/logilink_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/logilink_switch.c index 96c53ac..f84d51b 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/logilink_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/logilink_switch.c @@ -215,13 +215,13 @@ void logilinkSwitchInit(void) { logilink_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; logilink_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&logilink_switch->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); - options_add(&logilink_switch->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-7]$"); - options_add(&logilink_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&logilink_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&logilink_switch->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); + options_add(&logilink_switch->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-7]$"); + options_add(&logilink_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&logilink_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&logilink_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&logilink_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&logilink_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&logilink_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); logilink_switch->parseCode=&parseCode; logilink_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/mumbi.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/mumbi.c index 67c6973..ea25419 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/mumbi.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/mumbi.c @@ -206,13 +206,13 @@ void mumbiInit(void) { mumbi->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; mumbi->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&mumbi->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&mumbi->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&mumbi->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&mumbi->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&mumbi->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&mumbi->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&mumbi->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&mumbi->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&mumbi->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&mumbi->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&mumbi->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&mumbi->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); mumbi->parseCode=&parseCode; mumbi->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ninjablocks_weather.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ninjablocks_weather.c index b4bda11..e19d7f7 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ninjablocks_weather.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/ninjablocks_weather.c @@ -213,17 +213,17 @@ void ninjablocksWeatherInit(void) { ninjablocks_weather->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; // sync-id[4]; Homecode[4], Channel Code[2], Sync[3], Humidity[7], Temperature[15], Footer [1] - options_add(&ninjablocks_weather->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|1[0-5])$"); - options_add(&ninjablocks_weather->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); - options_add(&ninjablocks_weather->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,5}$"); - options_add(&ninjablocks_weather->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,5}$"); + options_add(&ninjablocks_weather->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|1[0-5])$"); + options_add(&ninjablocks_weather->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); + options_add(&ninjablocks_weather->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,5}$"); + options_add(&ninjablocks_weather->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,5}$"); - // options_add(&ninjablocks_weather->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&ninjablocks_weather->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&ninjablocks_weather->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&ninjablocks_weather->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&ninjablocks_weather->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&ninjablocks_weather->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&ninjablocks_weather->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&ninjablocks_weather->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&ninjablocks_weather->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&ninjablocks_weather->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&ninjablocks_weather->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&ninjablocks_weather->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); ninjablocks_weather->parseCode=&parseCode; ninjablocks_weather->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/pollin.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/pollin.c index 6cc305e..e911392 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/pollin.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/pollin.c @@ -202,13 +202,13 @@ void pollinInit(void) { pollin->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; pollin->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&pollin->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&pollin->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&pollin->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&pollin->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&pollin->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&pollin->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&pollin->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&pollin->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&pollin->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&pollin->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&pollin->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&pollin->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); pollin->parseCode=&parseCode; pollin->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt1000.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt1000.c index 9bced65..2858a2f 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt1000.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt1000.c @@ -104,10 +104,10 @@ int codetab[16][40] = { * If a code is unknown 0 is substituted, f.e. for group-id 0 no codes are known, so all 40 values are 0 */ /* code 0 */ - { 0xBB42,0x4301,0x00F9,0x8EBA, 0xE4C3,0x1924,0x6CDB,0x9D57, - 0x00F9,0x4301,0x00F9,0x8EBA, 0x9D57,0xE4C3,0x6CDB,0x1924, - 0x8EBA,0x00F9,0x4301,0xBB42, 0x1924,0xE4C3,0x6CDB,0x9D57, - 0xE4C3,0x1924,0x9D57,0x6CDB, 0x8EBA,0xBB42,0x4301,0x00F9, + { 0xBB42,0x4301,0x00F9,0x8EBA, 0xE4C3,0x1924,0x6CDB,0x9D57, + 0x00F9,0x4301,0x00F9,0x8EBA, 0x9D57,0xE4C3,0x6CDB,0x1924, + 0x8EBA,0x00F9,0x4301,0xBB42, 0x1924,0xE4C3,0x6CDB,0x9D57, + 0xE4C3,0x1924,0x9D57,0x6CDB, 0x8EBA,0xBB42,0x4301,0x00F9, 0xE4C3,0x1924,0x9D57,0x6CDB, 0x4301,0x00F9,0x8EBA,0xBB42 }, /* code 1 */ { 0x616A,0xCF71,0x7AE2,0xB639, 0xF59B,0xE923,0x14C4,0x32A7, @@ -401,16 +401,16 @@ void quiggGT1000Init(void) { quigg_gt1000->maxgaplen = (int)PROG_SPACE*1.1; quigg_gt1000->mingaplen = (int)PROG_SPACE*0.9; - options_add(&quigg_gt1000->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt1000->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt1000->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-5])$"); - options_add(&quigg_gt1000->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(1[0-6]|[0-9])$"); - options_add(&quigg_gt1000->options, 'a', "all", OPTION_NO_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, NULL); - options_add(&quigg_gt1000->options, 's', "super", OPTION_NO_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, NULL); - options_add(&quigg_gt1000->options, 'n', "num", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, "^([0-3])$"); + options_add(&quigg_gt1000->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt1000->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt1000->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-5])$"); + options_add(&quigg_gt1000->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(1[0-6]|[0-9])$"); + options_add(&quigg_gt1000->options, "a", "all", OPTION_NO_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt1000->options, "s", "super", OPTION_NO_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt1000->options, "n", "num", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, NULL, "^([0-3])$"); - options_add(&quigg_gt1000->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&quigg_gt1000->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_gt1000->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_gt1000->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); quigg_gt1000->printHelp = &printHelp; quigg_gt1000->createCode = &createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt7000.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt7000.c index c4b4e5b..af2393c 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt7000.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt7000.c @@ -270,15 +270,15 @@ void quiggGT7000Init(void) { quigg_gt7000->maxgaplen = (int)(PULSE_QUIGG_FOOTER*0.9); quigg_gt7000->mingaplen = (int)(PULSE_QUIGG_FOOTER*1.1); - options_add(&quigg_gt7000->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt7000->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt7000->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); - options_add(&quigg_gt7000->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|409[0-5])$"); - options_add(&quigg_gt7000->options, 'a', "all", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&quigg_gt7000->options, 'l', "learn", OPTION_HAS_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt7000->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt7000->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt7000->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); + options_add(&quigg_gt7000->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|409[0-5])$"); + options_add(&quigg_gt7000->options, "a", "all", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt7000->options, "l", "learn", OPTION_HAS_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&quigg_gt7000->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&quigg_gt7000->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_gt7000->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_gt7000->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); quigg_gt7000->parseCode=&parseCode; quigg_gt7000->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.c index 2e608b6..b4f55bb 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.c @@ -97,7 +97,7 @@ char gt9000_unit_offon_map2[16][2][4] = {{{1,2,9,10},{3,4,7,11}}, //unit 0 {{-1,-1,-1,-1},{-1,-1,-1,-1}}, {{-1,-1,-1,-1},{-1,-1,-1,-1}}, {{-1,-1,-1,-1},{-1,-1,-1,-1}}}; - + int gt9000_hash[16] = { 0x0, 0x9, 0xF, 0x4, 0xA, 0xD, 0x5, 0xB, 0x3, 0x2, 0x1, 0x7, 0xE, 0x6, 0xC, 0x8 }; int gt9000_hash2[16] = { 0x0, 0x9, 0x5, 0xF, 0x3, 0x6, 0xC, 0x7, @@ -106,7 +106,7 @@ int gt9000_hash2[16] = { 0x0, 0x9, 0x5, 0xF, 0x3, 0x6, 0xC, 0x7, static int isSyscodeType1(int syscodetype) { if(syscodetype & 0x13) return 1; - + return 0; } @@ -148,12 +148,12 @@ static void createMessage(int *binary, int systemcode, int state, int unit) { static int decodePayload(int payload, int index, int syscodetype) { int ret = -1; - + if(isSyscodeType1(syscodetype)) ret = payload^gt9000_hash[index]; else ret = payload^gt9000_hash2[index]; - + return ret; } @@ -206,7 +206,7 @@ static void parseCode(void) { if(statecode == gt9000_unit_offon_map2[unit][1][i]) { state = 1; } - } + } } createMessage(binary, systemcode, state, unit); @@ -265,7 +265,7 @@ static void initAllCodes(int systemcode, int allcodes[16]) { int i = 0, syscodetype = 0; int systemcode1enc = 0, systemcode2enc = 0, systemcode3enc = 0, systemcode4enc = 0, systemcode5enc = 0; int systemcode1dec = 0, systemcode3dec = 0, systemcode4dec = 0, systemcode5dec = 0; - + syscodetype = (systemcode >> 16) & 0xF; systemcode1dec = (systemcode >> 16) & 0xF; //systemcode2dec is always 0, therefore it is not needed @@ -273,10 +273,10 @@ static void initAllCodes(int systemcode, int allcodes[16]) { systemcode3dec = (systemcode >> 8) & 0xF; systemcode4dec = (systemcode >> 4) & 0xF; systemcode5dec = systemcode & 0xF; - + //first 4 bits are not encrypted systemcode1enc = systemcode1dec; - + //encrypt systemcode for(i=0;i<16;i++) { systemcode2enc = i; @@ -328,14 +328,14 @@ static int createCode(JsonNode *code) { statecode = gt9000_unit_offon_map[unit][state][1]; else statecode = gt9000_unit_offon_map2[unit][state][1]; - + if(statecode==-1) { logprintf(LOG_ERR, "quigg_gt9000: unit %d not supported, try 0-15.", unit); return EXIT_FAILURE; } - + int encrypteddata = allcodes[statecode]; - + clearCode(); createEncryptedData(encrypteddata); createUnit(unit); @@ -376,10 +376,10 @@ void quiggGT9000Init(void) { quigg_gt9000->maxgaplen = (int)(PULSE_QUIGG_FOOTER2*1.1); quigg_gt9000->mingaplen = (int)(PULSE_QUIGG_FOOTER2*0.9); - options_add(&quigg_gt9000->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt9000->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_gt9000->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); - options_add(&quigg_gt9000->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt9000->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt9000->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_gt9000->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); + options_add(&quigg_gt9000->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, NULL); quigg_gt9000->parseCode=&parseCode; quigg_gt9000->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.h b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.h index 5b1b845..f16d168 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.h +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_gt9000.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2015 CurlyMoo & dominikkarall + Copyright (C) 2015 CurlyMoo & dominikkarall This file is part of pilight. diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_screen.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_screen.c index d1c2350..0e01bc4 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_screen.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/quigg_screen.c @@ -287,15 +287,15 @@ void quiggScreenInit(void) { quigg_screen->maxgaplen = (int)(PULSE_QUIGG_SCREEN_FOOTER*0.9); quigg_screen->mingaplen = (int)(PULSE_QUIGG_SCREEN_FOOTER*1.1); - options_add(&quigg_screen->options, 't', "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_screen->options, 'f', "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&quigg_screen->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); - options_add(&quigg_screen->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|409[0-5])$"); - options_add(&quigg_screen->options, 'a', "all", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&quigg_screen->options, 'l', "learn", OPTION_HAS_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&quigg_screen->options, "t", "up", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_screen->options, "f", "down", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&quigg_screen->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-3])$"); + options_add(&quigg_screen->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-3][0-9][0-9][0-9]|40[0-8][0-9]|409[0-5])$"); + options_add(&quigg_screen->options, "a", "all", OPTION_NO_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&quigg_screen->options, "l", "learn", OPTION_HAS_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&quigg_screen->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&quigg_screen->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_screen->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&quigg_screen->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); quigg_screen->parseCode=&parseCode; quigg_screen->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rc101.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rc101.c index dd1de2d..8aa526b 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rc101.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rc101.c @@ -225,14 +225,14 @@ void rc101Init(void) { rc101->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; rc101->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&rc101->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); - options_add(&rc101->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); - options_add(&rc101->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&rc101->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&rc101->options, 'a', "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); + options_add(&rc101->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); + options_add(&rc101->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-4])$"); + options_add(&rc101->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&rc101->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&rc101->options, "a", "all", OPTION_OPT_VALUE, DEVICES_OPTIONAL, JSON_NUMBER, NULL, NULL); - options_add(&rc101->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&rc101->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&rc101->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&rc101->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); rc101->parseCode=&parseCode; rc101->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rsl366.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rsl366.c index 8d4f56a..c64ddc2 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rsl366.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/rsl366.c @@ -81,29 +81,29 @@ static void parseCode(void) { //Check if there is a valid systemcode if((binary[0]+binary[1]+binary[2]+binary[3]) > 1) return; - + //Get systemcode: 1000=>1, 0100=>2, 0010=>3, 0001=>4 int systemcode = 0; for(i=0;i<4;i++) { if(binary[i] == 1) systemcode = i+1; } - + //Check if there is a valid programcode if((binary[4]+binary[5]+binary[6]+binary[7]) > 1) return; - + //Get programcode: 1000=>1, 0100=>2, 0010=>3, 0001=>4 int programcode = 0; for(i=4;i<8;i++) { if(binary[i] == 1) programcode = i-3; } - + //Check if a system and programcode was found if(systemcode == 0 || programcode == 0) return; - + // There seems to be no check and binary[10] is always a low int state = binary[11]^1; @@ -214,13 +214,13 @@ void rsl366Init(void) { rsl366->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; rsl366->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&rsl366->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1234]{1})$"); - options_add(&rsl366->options, 'u', "programcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1234]{1})$"); - options_add(&rsl366->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&rsl366->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&rsl366->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1234]{1})$"); + options_add(&rsl366->options, "u", "programcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1234]{1})$"); + options_add(&rsl366->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&rsl366->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&rsl366->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&rsl366->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&rsl366->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&rsl366->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); rsl366->parseCode=&parseCode; rsl366->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/sc2262.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/sc2262.c index 8edb9f7..e752136 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/sc2262.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/sc2262.c @@ -95,10 +95,10 @@ void sc2262Init(void) { sc2262->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; sc2262->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&sc2262->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&sc2262->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&sc2262->options, 't', "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&sc2262->options, 'f', "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&sc2262->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&sc2262->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&sc2262->options, "t", "opened", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&sc2262->options, "f", "closed", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); sc2262->parseCode=&parseCode; sc2262->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/secudo_smoke.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/secudo_smoke.c index 978f723..0b53417 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/secudo_smoke.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/secudo_smoke.c @@ -89,8 +89,8 @@ void secudoSmokeInit(void) { secudo_smoke->minrawlen = 26; secudo_smoke->maxrawlen = 26; - options_add(&secudo_smoke->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-9]{1-4}$"); - options_add(&secudo_smoke->options, 't', "alarm", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&secudo_smoke->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-9]{1-4}$"); + options_add(&secudo_smoke->options, "t", "alarm", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); secudo_smoke->parseCode=&parseCode; secudo_smoke->validate=&validate; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/selectremote.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/selectremote.c index ba1f64b..9609045 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/selectremote.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/selectremote.c @@ -181,12 +181,12 @@ void selectremoteInit(void) { selectremote->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; selectremote->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&selectremote->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-7]$"); - options_add(&selectremote->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&selectremote->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&selectremote->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^[0-7]$"); + options_add(&selectremote->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&selectremote->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&selectremote->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&selectremote->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&selectremote->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&selectremote->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); selectremote->parseCode=&parseCode; selectremote->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/silvercrest.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/silvercrest.c index 576f00d..53d2cec 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/silvercrest.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/silvercrest.c @@ -207,13 +207,13 @@ void silvercrestInit(void) { silvercrest->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; silvercrest->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&silvercrest->options, 's', "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&silvercrest->options, 'u', "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); - options_add(&silvercrest->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&silvercrest->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&silvercrest->options, "s", "systemcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&silvercrest->options, "u", "unitcode", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^(3[012]?|[012][0-9]|[0-9]{1})$"); + options_add(&silvercrest->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&silvercrest->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&silvercrest->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&silvercrest->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&silvercrest->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&silvercrest->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); silvercrest->parseCode=&parseCode; silvercrest->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tcm.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tcm.c index de6a0c2..1413691 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tcm.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tcm.c @@ -191,18 +191,18 @@ void tcmInit(void) { tcm->minrawlen = RAW_LENGTH; tcm->maxrawlen = RAW_LENGTH; - options_add(&tcm->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&tcm->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tcm->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tcm->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); + options_add(&tcm->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&tcm->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tcm->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tcm->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); - options_add(&tcm->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tcm->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tcm->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&tcm->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&tcm->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&tcm->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&tcm->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tcm->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tcm->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tcm->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&tcm->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&tcm->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tcm->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tcm->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); tcm->parseCode=&parseCode; tcm->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/techlico_switch.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/techlico_switch.c index 73dc060..420e8e2 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/techlico_switch.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/techlico_switch.c @@ -208,13 +208,13 @@ void techlicoSwitchInit(void) { techlico_switch->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; techlico_switch->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&techlico_switch->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&techlico_switch->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&techlico_switch->options, 'u', "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); - options_add(&techlico_switch->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"); + options_add(&techlico_switch->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&techlico_switch->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&techlico_switch->options, "u", "unit", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([1-4])$"); + options_add(&techlico_switch->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"); - options_add(&techlico_switch->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&techlico_switch->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&techlico_switch->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&techlico_switch->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); techlico_switch->parseCode=&parseCode; techlico_switch->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/teknihall.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/teknihall.c index 7b8ee8a..7961f2c 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/teknihall.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/teknihall.c @@ -177,19 +177,19 @@ void teknihallInit(void) { teknihall->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; teknihall->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&teknihall->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&teknihall->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&teknihall->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); - options_add(&teknihall->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); + options_add(&teknihall->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&teknihall->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&teknihall->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); + options_add(&teknihall->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); - // options_add(&teknihall->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&teknihall->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&teknihall->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&teknihall->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&teknihall->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&teknihall->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&teknihall->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&teknihall->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&teknihall->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&teknihall->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&teknihall->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&teknihall->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&teknihall->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&teknihall->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&teknihall->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&teknihall->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); teknihall->parseCode=&parseCode; teknihall->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa.c index 70a99aa..bb22579 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa.c @@ -254,20 +254,20 @@ void tfaInit(void) { tfa->minrawlen = MIN_RAW_LENGTH; tfa->maxrawlen = MAX_RAW_LENGTH; - options_add(&tfa->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&tfa->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tfa->options, 'c', "channel", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tfa->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tfa->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); + options_add(&tfa->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&tfa->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tfa->options, "c", "channel", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tfa->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tfa->options, "b", "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$"); - // options_add(&tfa->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&tfa->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tfa->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tfa->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&tfa->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); - options_add(&tfa->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&tfa->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&tfa->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&tfa->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&tfa->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&tfa->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]"); + options_add(&tfa->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tfa->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tfa->options, "0", "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); tfa->parseCode=&parseCode; tfa->checkValues=&checkValues; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.c new file mode 100644 index 0000000..5061be2 --- /dev/null +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.c @@ -0,0 +1,239 @@ +/* + Copyright (C) 2014, 2018 CurlyMo & DonBernos & Michael Behrisch + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +#include +#include +#include +#include + +#include "../../core/pilight.h" +#include "../../core/common.h" +#include "../../core/dso.h" +#include "../../core/log.h" +#include "../protocol.h" +#include "../../core/binary.h" +#include "../../core/gc.h" +#include "tfa2017.h" + +#define MIN_PULSE_LENGTH 250 +#define AVG_PULSE 750 +#define MIN_RAW_LENGTH 200 +#define MAX_RAW_LENGTH 400 +#define MESSAGE_LENGTH 48 + +typedef struct settings_t { + double id; + double temp; + double humi; + struct settings_t *next; +} settings_t; + +static struct settings_t *settings = NULL; + +static int validate(void) { + if(tfa2017->rawlen >= MIN_RAW_LENGTH && tfa2017->rawlen <= MAX_RAW_LENGTH) { + if(tfa2017->raw[tfa2017->rawlen-1] >= (MIN_PULSE_LENGTH*PULSE_DIV)) { + return 0; + } + } + return -1; +} + +static void parseCode(void) { + int i = 0, x = 0, short_pulse = 0, prev = 0, long_pulse = 0; + int s = 0, start[3], m = 0, binary[MAX_RAW_LENGTH]; + int msg[MESSAGE_LENGTH], channel = 0; + double humidity = 0.0, temperature = 0.0; + + if(tfa2017->rawlen > MAX_RAW_LENGTH) { + logprintf(LOG_ERR, "tfa2017: parsecode - invalid parameter passed %d", tfa2017->rawlen); + return; + } + for(x=0;xrawlen;x++) { + if(tfa2017->raw[x] > AVG_PULSE) { + binary[i++] = 0; + if(short_pulse>0) { + prev = short_pulse; + short_pulse = 0; + } + long_pulse++; + } else { + short_pulse++; + if(short_pulse%2 == 0) { + binary[i++] = 1; + } + long_pulse = 0; + } + if(long_pulse == 4 && (prev == 20 || (x > 7 && prev == x-1))) { + if (s==0 || i > start[s-1]+MESSAGE_LENGTH) { + start[s++] = i-2; + prev = 0; + } + } + } + // The protocol sends the message three times in a row. + // If we find two identical ones, we consider it valid. + if(s < 2) { + return; + } + if(i > start[1]+MESSAGE_LENGTH && memcmp(&binary[start[0]], &binary[start[1]], MESSAGE_LENGTH) == 0) { + m=start[0]; + } else if(s > 2 && i > start[2]+MESSAGE_LENGTH && + (memcmp(&binary[start[0]], &binary[start[2]], MESSAGE_LENGTH) == 0 || + memcmp(&binary[start[1]], &binary[start[2]], MESSAGE_LENGTH) == 0)) { + m=start[2]; + } else { + return; + } + + // decode manchester + prev = 1; + for(x=0;xid-channel) < EPSILON){ + temperature += tmp->temp; + humidity += tmp->humi; + break; + } + tmp = tmp->next; + } + if(humidity < 0 || humidity > 100) { + return; + } + + tfa2017->message = json_mkobject(); + json_append_member(tfa2017->message, "id", json_mknumber(channel, 0)); + json_append_member(tfa2017->message, "temperature", json_mknumber(temperature, 2)); + json_append_member(tfa2017->message, "humidity", json_mknumber(humidity, 2)); +} + +static int checkValues(struct JsonNode *jvalues) { + struct JsonNode *jid = NULL; + + if((jid = json_find_member(jvalues, "id"))) { + struct settings_t *snode = NULL; + struct JsonNode *jchild = NULL; + struct JsonNode *jchild1 = NULL; + double id = -1; + int match = 0; + + jchild = json_first_child(jid); + while(jchild) { + jchild1 = json_first_child(jchild); + while(jchild1) { + if(strcmp(jchild1->key, "id") == 0) { + id = jchild1->number_; + } + jchild1 = jchild1->next; + } + jchild = jchild->next; + } + + struct settings_t *tmp = settings; + while(tmp) { + if(fabs(tmp->id-id) < EPSILON) { + match = 1; + break; + } + tmp = tmp->next; + } + + if(match == 0) { + if((snode = MALLOC(sizeof(struct settings_t))) == NULL) { + fprintf(stderr, "out of memory\n"); + exit(EXIT_FAILURE); + } + snode->id = id; + snode->temp = 0; + snode->humi = 0; + + json_find_number(jvalues, "temperature-offset", &snode->temp); + json_find_number(jvalues, "humidity-offset", &snode->humi); + + snode->next = settings; + settings = snode; + } + } + return 0; +} + +static void gc(void) { + struct settings_t *tmp = NULL; + while(settings) { + tmp = settings; + settings = settings->next; + FREE(tmp); + } + if(settings != NULL) { + FREE(settings); + } +} + +#if !defined(MODULE) && !defined(_WIN32) +__attribute__((weak)) +#endif +void tfa2017Init(void) { + protocol_register(&tfa2017); + protocol_set_id(tfa2017, "tfa2017"); + protocol_device_add(tfa2017, "tfa2017", "TFA 30.X Temp Hum Sensor Revision 09/2017"); + tfa2017->devtype = WEATHER; + tfa2017->hwtype = RF433; + tfa2017->minrawlen = MIN_RAW_LENGTH; + tfa2017->maxrawlen = MAX_RAW_LENGTH; + tfa2017->maxgaplen = AVG_PULSE*PULSE_DIV; + tfa2017->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; + + options_add(&tfa2017->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&tfa2017->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tfa2017->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + + // options_add(&tfa2017->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa2017->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa2017->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa2017->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa2017->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa2017->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tfa2017->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + + tfa2017->parseCode=&parseCode; + tfa2017->checkValues=&checkValues; + tfa2017->validate=&validate; + tfa2017->gc=&gc; +} + +#ifdef MODULAR +void compatibility(const char **version, const char **commit) { + module->name = "tfa2017"; + module->version = "1.0"; + module->reqversion = "6.0"; + module->reqcommit = "84"; +} + +void init(void) { + tfa2017Init(); +} +#endif diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.h b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.h new file mode 100644 index 0000000..8800926 --- /dev/null +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa2017.h @@ -0,0 +1,17 @@ +/* + Copyright (C) 2014, 2018 CurlyMo & DonBernos & Michael Behrisch + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +#ifndef _PROTOCOL_TFA2017_H_ +#define _PROTOCOL_TFA2017_H_ + +#include "../protocol.h" + +struct protocol_t *tfa2017; +void tfa2017Init(void); + +#endif diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa30.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa30.c index 890a715..42b91db 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa30.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/tfa30.c @@ -240,17 +240,17 @@ void tfa30Init(void) { tfa30->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; tfa30->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&tfa30->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - options_add(&tfa30->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); - options_add(&tfa30->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&tfa30->options, "t", "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); + options_add(&tfa30->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]"); + options_add(&tfa30->options, "h", "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$"); - // options_add(&tfa30->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&tfa30->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&tfa30->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); - options_add(&tfa30->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tfa30->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); - options_add(&tfa30->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); - options_add(&tfa30->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + // options_add(&tfa30->options, "0", "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa30->options, "0", "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa30->options, "0", "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "[0-9]"); + options_add(&tfa30->options, "0", "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa30->options, "0", "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]"); + options_add(&tfa30->options, "0", "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); + options_add(&tfa30->options, "0", "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$"); tfa30->parseCode=&parseCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/x10.c b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/x10.c index 308e1e8..5602177 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/x10.c +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/433.92/x10.c @@ -230,12 +230,12 @@ void x10Init(void) { x10->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV; x10->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV; - options_add(&x10->options, 't', "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&x10->options, 'f', "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); - options_add(&x10->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_STRING, NULL, "^[ABCDEFGHIJKLMNOP]([1][0-6]{1}|[1-9]{1})$"); + options_add(&x10->options, "t", "on", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&x10->options, "f", "off", OPTION_NO_VALUE, DEVICES_STATE, JSON_STRING, NULL, NULL); + options_add(&x10->options, "i", "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_STRING, NULL, "^[ABCDEFGHIJKLMNOP]([1][0-6]{1}|[1-9]{1})$"); - options_add(&x10->options, 0, "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); - options_add(&x10->options, 0, "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&x10->options, "0", "readonly", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); + options_add(&x10->options, "0", "confirm", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)0, "^[10]{1}$"); x10->parseCode=&parseCode; x10->createCode=&createCode; diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_header.h b/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_header.h index 9dbcb78..c703b1f 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_header.h +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_header.h @@ -25,7 +25,7 @@ #include "433.92/ev1527.h" #include "433.92/heitech.h" #include "433.92/impuls.h" -#include "433.92/livolo_switch.h" +#include "433.92/kerui_d026.h" #include "433.92/logilink_switch.h" #include "433.92/mumbi.h" #include "433.92/ninjablocks_weather.h" @@ -35,9 +35,6 @@ #include "433.92/quigg_gt9000.h" #include "433.92/quigg_screen.h" #include "433.92/rc101.h" -#include "433.92/rev_v1.h" -#include "433.92/rev_v2.h" -#include "433.92/rev_v3.h" #include "433.92/rsl366.h" #include "433.92/sc2262.h" #include "433.92/secudo_smoke.h" @@ -47,5 +44,6 @@ #include "433.92/techlico_switch.h" #include "433.92/teknihall.h" #include "433.92/tfa.h" +#include "433.92/tfa2017.h" #include "433.92/tfa30.h" #include "433.92/x10.h" diff --git a/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_init.h b/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_init.h index 9cfcc48..a407842 100644 --- a/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_init.h +++ b/lib/ESPiLight/src/pilight/libs/pilight/protocols/protocol_init.h @@ -25,7 +25,7 @@ eurodomestSwitchInit(); ev1527Init(); heitechInit(); impulsInit(); -livoloSwitchInit(); +keruiD026Init(); logilinkSwitchInit(); mumbiInit(); ninjablocksWeatherInit(); @@ -35,9 +35,6 @@ quiggGT7000Init(); quiggGT9000Init(); quiggScreenInit(); rc101Init(); -rev1Init(); -rev2Init(); -rev3Init(); rsl366Init(); sc2262Init(); secudoSmokeInit(); @@ -47,5 +44,6 @@ tcmInit(); techlicoSwitchInit(); teknihallInit(); tfaInit(); +tfa2017Init(); tfa30Init(); x10Init();