mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 11:49:51 +03:00
API PORT 80, AVR HTTP ETAG, Compiled for all, bins
This commit is contained in:
@@ -14,3 +14,4 @@
|
|||||||
-DTIMER_INT
|
-DTIMER_INT
|
||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -47,3 +47,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -18,3 +18,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
#-D CORS=\"http://lazyhome.ru\"
|
#-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -27,3 +27,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -17,5 +17,7 @@
|
|||||||
-DFS_STORAGE
|
-DFS_STORAGE
|
||||||
-DFS_PREPARE
|
-DFS_PREPARE
|
||||||
|
|
||||||
|
-DOTA
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -8,3 +8,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -8,3 +8,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -20,3 +20,4 @@
|
|||||||
#-DMDNS_ENABLE
|
#-DMDNS_ENABLE
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"http://lazyhome.ru\"
|
-D CORS=\"http://lazyhome.ru\"
|
||||||
|
-DOTA_PORT=80
|
||||||
@@ -24,3 +24,4 @@
|
|||||||
|
|
||||||
# Example of UARTBRIDGE configuration
|
# Example of UARTBRIDGE configuration
|
||||||
#-DUARTBRIDGE_ENABLE
|
#-DUARTBRIDGE_ENABLE
|
||||||
|
-DOTA_PORT=80
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -5515,8 +5515,8 @@
|
|||||||
:1058900020495020616464726573733A0045455035
|
:1058900020495020616464726573733A0045455035
|
||||||
:1058A000524F4D20636C65617265640A000A4C6159
|
:1058A000524F4D20636C65617265640A000A4C6159
|
||||||
:1058B0007A79686F6D652E7275204C6967687448D7
|
:1058B0007A79686F6D652E7275204C6967687448D7
|
||||||
:1058C000756220636F6E74726F6C6C65722000324B
|
:1058C000756220636F6E74726F6C6C65722000631A
|
||||||
:1058D0006535633764385F323032312D31322D31E6
|
:1058D0003138356465335F323032312D31322D311C
|
||||||
:1058E000390020432B2B2076657273696F6E3A0066
|
:1058E000390020432B2B2076657273696F6E3A0066
|
||||||
:1058F0003230313130334C000A282D29574154437E
|
:1058F0003230313130334C000A282D29574154437E
|
||||||
:1059000048444F47000A436F6E66696720736572AB
|
:1059000048444F47000A436F6E66696720736572AB
|
||||||
@@ -5591,8 +5591,8 @@
|
|||||||
:105D50006C6F7200666C6F61740024686F6D6965AA
|
:105D50006C6F7200666C6F61740024686F6D6965AA
|
||||||
:105D600000246E6F6465730072656164790024734A
|
:105D600000246E6F6465730072656164790024734A
|
||||||
:105D700074617465002473746174730024666F72B7
|
:105D700074617465002473746174730024666F72B7
|
||||||
:105D80006D617400757074696D65003265356337D7
|
:105D80006D617400757074696D65006331383564D8
|
||||||
:105D900064385F323032312D31322D3139004C6967
|
:105D900065335F323032312D31322D3139004C696B
|
||||||
:105DA0006768744875622000466F72636564206599
|
:105DA0006768744875622000466F72636564206599
|
||||||
:105DB0007865637574696F6E00556E6B6E6F776E84
|
:105DB0007865637574696F6E00556E6B6E6F776E84
|
||||||
:105DC00020636D64004D6F746F722074696D656F30
|
:105DC00020636D64004D6F746F722074696D656F30
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -235,7 +235,7 @@ uint16_t httpHandler(Client& client, String request, uint8_t method, long conten
|
|||||||
{
|
{
|
||||||
#ifdef OTA
|
#ifdef OTA
|
||||||
//String response = "";
|
//String response = "";
|
||||||
debugSerial<<request<<endl;
|
debugSerial<<method<<F(" ")<<request<<endl;
|
||||||
if (method == HTTP_GET && request == (F("/")))
|
if (method == HTTP_GET && request == (F("/")))
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -1568,6 +1568,16 @@ void printBool(bool arg) { (arg) ? infoSerial<<F("+") : infoSerial<<F("-"); }
|
|||||||
|
|
||||||
const char * headerKeys[]={"ETag"};
|
const char * headerKeys[]={"ETag"};
|
||||||
|
|
||||||
|
void headerHandlerProc(String header)
|
||||||
|
{
|
||||||
|
debugSerial<<header<<endl;
|
||||||
|
//ETag: W/"51e-17bffcd0547"
|
||||||
|
if (header.startsWith("ETag: "))
|
||||||
|
{
|
||||||
|
sysConf.setETAG(header);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool loadConfigFromHttp()
|
bool loadConfigFromHttp()
|
||||||
{
|
{
|
||||||
//macAddress * mac = sysConf.getMAC();
|
//macAddress * mac = sysConf.getMAC();
|
||||||
@@ -1609,8 +1619,9 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
|
|||||||
|
|
||||||
|
|
||||||
debugSerial<<F("free ")<<freeRam()<<endl;delay(100);
|
debugSerial<<F("free ")<<freeRam()<<endl;delay(100);
|
||||||
|
hclient.setHeaderHandler(headerHandlerProc);
|
||||||
// FILE is the return STREAM type of the HTTPClient
|
// FILE is the return STREAM type of the HTTPClient
|
||||||
configStream = hclient.getURI(URI,get_header);
|
configStream = hclient.getURI(URI,NULL,get_header);
|
||||||
debugSerial<<F("hclient")<<endl;delay(100);
|
debugSerial<<F("hclient")<<endl;delay(100);
|
||||||
responseStatusCode = hclient.getLastReturnCode();
|
responseStatusCode = hclient.getLastReturnCode();
|
||||||
debugSerial<<F("retcode ")<<responseStatusCode<<endl;delay(100);
|
debugSerial<<F("retcode ")<<responseStatusCode<<endl;delay(100);
|
||||||
@@ -2459,20 +2470,20 @@ configLocked--;
|
|||||||
|
|
||||||
////// Legacy Thermostat code below - to be moved in module /////
|
////// Legacy Thermostat code below - to be moved in module /////
|
||||||
|
|
||||||
enum heaterMode {HEAT,OFF,ERROR};
|
enum heaterMode {HEATER_HEAT,HEATER_OFF,HEATER_ERROR};
|
||||||
|
|
||||||
void thermoRelay(int pin, heaterMode on)
|
void thermoRelay(int pin, heaterMode on)
|
||||||
{
|
{
|
||||||
int thermoPin = abs(pin);
|
int thermoPin = abs(pin);
|
||||||
pinMode(thermoPin, OUTPUT);
|
pinMode(thermoPin, OUTPUT);
|
||||||
|
|
||||||
if (on == ERROR)
|
if (on == HEATER_ERROR)
|
||||||
{
|
{
|
||||||
digitalWrite(thermoPin, LOW);
|
digitalWrite(thermoPin, LOW);
|
||||||
debugSerial<<F(" BYPASS")<<endl;
|
debugSerial<<F(" BYPASS")<<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (on == HEAT)
|
else if (on == HEATER_HEAT)
|
||||||
{
|
{
|
||||||
digitalWrite(thermoPin, (pin<0)?LOW:HIGH);
|
digitalWrite(thermoPin, (pin<0)?LOW:HIGH);
|
||||||
debugSerial<<F(" ON")<<endl;
|
debugSerial<<F(" ON")<<endl;
|
||||||
@@ -2519,15 +2530,15 @@ void thermoLoop(void) {
|
|||||||
mqttClient.publish("/alarm/snsr", thermoItem->name);
|
mqttClient.publish("/alarm/snsr", thermoItem->name);
|
||||||
tStore.timestamp16=0; //Stop termostat
|
tStore.timestamp16=0; //Stop termostat
|
||||||
thermostat.setExt(tStore.asint);
|
thermostat.setExt(tStore.asint);
|
||||||
thermoRelay(thermoPin,ERROR);
|
thermoRelay(thermoPin,HEATER_ERROR);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // Not expired yet
|
{ // Not expired yet
|
||||||
if (curTemp > THERMO_OVERHEAT_CELSIUS) mqttClient.publish("/alarm/ovrht", thermoItem->name);
|
if (curTemp > THERMO_OVERHEAT_CELSIUS) mqttClient.publish("/alarm/ovrht", thermoItem->name);
|
||||||
|
|
||||||
if (!active) thermoRelay(thermoPin,OFF);//OFF
|
if (!active) thermoRelay(thermoPin,HEATER_OFF);//OFF
|
||||||
else if (curTemp < thermoSetting - THERMO_GIST_CELSIUS) thermoRelay(thermoPin,HEAT);//ON
|
else if (curTemp < thermoSetting - THERMO_GIST_CELSIUS) thermoRelay(thermoPin,HEATER_HEAT);//ON
|
||||||
else if (curTemp >= thermoSetting) thermoRelay(thermoPin,OFF);//OFF
|
else if (curTemp >= thermoSetting) thermoRelay(thermoPin,HEATER_OFF);//OFF
|
||||||
else debugSerial<<F(" -target zone-")<<endl; // Nothing to do
|
else debugSerial<<F(" -target zone-")<<endl; // Nothing to do
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_AVR)
|
#if defined(ARDUINO_ARCH_AVR)
|
||||||
#include "HTTPClientAVR.h"
|
#include "HTTPClient.h"
|
||||||
#include <ArduinoHttpClient.h>
|
//#include <ArduinoHttpClient.h>
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
#include <avr/wdt.h>
|
#include <avr/wdt.h>
|
||||||
//#include <EEPROM.h>
|
//#include <EEPROM.h>
|
||||||
|
|||||||
@@ -189,8 +189,8 @@ build_type = debug
|
|||||||
board = esp32-evb
|
board = esp32-evb
|
||||||
monitor_baud = 115200
|
monitor_baud = 115200
|
||||||
;upload_speed = 115200
|
;upload_speed = 115200
|
||||||
;upload_command = arduinoOTA -address 192.168.88.60 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 5
|
;upload_command = arduinoOTA -address 192.168.88.60 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 5
|
||||||
;upload_command = arduinoOTA -address 192.168.11.230 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 5
|
;upload_command = arduinoOTA -address 192.168.11.230 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 5
|
||||||
;upload_protocol = custom
|
;upload_protocol = custom
|
||||||
|
|
||||||
build_flags = !python get_build_flags.py esp32-wifi
|
build_flags = !python get_build_flags.py esp32-wifi
|
||||||
@@ -260,7 +260,7 @@ build_flags = !python get_build_flags.py due
|
|||||||
; Need to place arduinoOTA utility from Arduino IDE distribution to folder in your PATH
|
; Need to place arduinoOTA utility from Arduino IDE distribution to folder in your PATH
|
||||||
;fix address and password
|
;fix address and password
|
||||||
;upload_flags =
|
;upload_flags =
|
||||||
upload_command = arduinoOTA -address 192.168.88.21 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE
|
upload_command = arduinoOTA -address 192.168.88.21 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE
|
||||||
upload_protocol = custom
|
upload_protocol = custom
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
||||||
@@ -325,7 +325,6 @@ lib_ignore =
|
|||||||
WifiManager
|
WifiManager
|
||||||
Ethernet3
|
Ethernet3
|
||||||
Ethernet2
|
Ethernet2
|
||||||
HTTPClient
|
|
||||||
NRFFlashStorage
|
NRFFlashStorage
|
||||||
WebServer
|
WebServer
|
||||||
UIPEthernet
|
UIPEthernet
|
||||||
@@ -377,7 +376,7 @@ board_build.f_cpu = 16000000L
|
|||||||
;build_unflags = -flto - not working without LTO!
|
;build_unflags = -flto - not working without LTO!
|
||||||
|
|
||||||
;upload_protocol = arduino
|
;upload_protocol = arduino
|
||||||
upload_command = arduinoOTA -address 192.168.11.213 -port 65280 -username arduino -password password -b -upload /sketch -sketch $BUILD_DIR/${PROGNAME}.bin;sleep 5
|
upload_command = arduinoOTA -address 192.168.11.213 -port 80 -username arduino -password password -b -upload /sketch -sketch $BUILD_DIR/${PROGNAME}.bin;sleep 5
|
||||||
upload_protocol = custom
|
upload_protocol = custom
|
||||||
|
|
||||||
board_upload.speed = ${env:fuses_bootloader.board_bootloader.speed}
|
board_upload.speed = ${env:fuses_bootloader.board_bootloader.speed}
|
||||||
@@ -391,7 +390,6 @@ lib_ignore =
|
|||||||
WifiManager
|
WifiManager
|
||||||
Ethernet3
|
Ethernet3
|
||||||
Ethernet2
|
Ethernet2
|
||||||
HTTPClient
|
|
||||||
NRFFlashStorage
|
NRFFlashStorage
|
||||||
WebServer
|
WebServer
|
||||||
UIPEthernet
|
UIPEthernet
|
||||||
@@ -610,8 +608,8 @@ framework = arduino
|
|||||||
board = due
|
board = due
|
||||||
monitor_baud = 115200
|
monitor_baud = 115200
|
||||||
build_flags = !python get_build_flags.py lighthub21
|
build_flags = !python get_build_flags.py lighthub21
|
||||||
upload_command = /opt/local/sbin/arduinoOTA -address 192.168.11.172 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE ;sleep 6
|
upload_command = /opt/local/sbin/arduinoOTA -address 192.168.11.172 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE ;sleep 6
|
||||||
;upload_command = arduinoOTA -address 192.168.88.45 -port 65280 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 6
|
;upload_command = arduinoOTA -address 192.168.88.45 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 6
|
||||||
upload_protocol = custom
|
upload_protocol = custom
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
||||||
|
|||||||
302
savedconf.json
Normal file
302
savedconf.json
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
{
|
||||||
|
"mqtt":["edem3","192.168.88.2"],
|
||||||
|
"syslog":["192.168.88.2"],
|
||||||
|
"dmx":[3,80],
|
||||||
|
"topics":{"root":"edem"},
|
||||||
|
"items":
|
||||||
|
{
|
||||||
|
"lightall":[7,[
|
||||||
|
"lampbedr3",
|
||||||
|
"lampcab31",
|
||||||
|
"lampcab32",
|
||||||
|
"lampsauna3",
|
||||||
|
"lampbath33",
|
||||||
|
"lampktc3",
|
||||||
|
"lampwc3",
|
||||||
|
"lamp4",
|
||||||
|
"lampext4",
|
||||||
|
"lamphall3",
|
||||||
|
"lampstw3",
|
||||||
|
"fasadeast",
|
||||||
|
"bra31",
|
||||||
|
"lampgst3",
|
||||||
|
"lampkln3",
|
||||||
|
"lampbalk3",
|
||||||
|
"fasadsouth",
|
||||||
|
"bra32"]],
|
||||||
|
"gr_hall3":[7,["lamphall3","lampstw3"]],
|
||||||
|
"gr_gost3":[7,["lampgst3","lampktc3"]],
|
||||||
|
"relays":[7,["pout0","thermostat","pout2","pout3","pout4","pout5","pout6"]],
|
||||||
|
"uouts":[7,["unprot0","unprot1","unprot2","unprot3","unprot4","unprot5","unprot6","unprot7"]],
|
||||||
|
|
||||||
|
"mb1":[44,[1,0,3,100]],
|
||||||
|
"mb2":[44,[1,1,3,100]],
|
||||||
|
"mb3":[44,[1,2,3,100]],
|
||||||
|
"mb4":[44,[1,3,3,100]],
|
||||||
|
"mba":[44,[96,0,0]],
|
||||||
|
"lamp_zal":[4,[1,60001,-1,255]],
|
||||||
|
|
||||||
|
"lampbedr3":[0,1],
|
||||||
|
"lampcab31":[0,2],
|
||||||
|
"lampcab32":[0,3],
|
||||||
|
|
||||||
|
"lampsauna3":[0,4],
|
||||||
|
"lampbath3":[0,5],
|
||||||
|
"lampwc3":[0,6],
|
||||||
|
|
||||||
|
"lampktc3":[0,7],
|
||||||
|
"lamp4":[0,8],
|
||||||
|
"lamphall3":[0,9],
|
||||||
|
|
||||||
|
"lampext4":[0,10],
|
||||||
|
"lampstw3":[0,11],
|
||||||
|
"fasadeast":[0,12],
|
||||||
|
|
||||||
|
"lampgst3":[0,13],
|
||||||
|
"bra31":[0,14],
|
||||||
|
"bra32":[0,15],
|
||||||
|
|
||||||
|
"lampbalk3":[0,16],
|
||||||
|
"fasadsouth":[0,17],
|
||||||
|
"lampkln3":[0,18],
|
||||||
|
"lampbar3":[0,21],
|
||||||
|
|
||||||
|
"ledbedr3":[1,22],
|
||||||
|
"ledcab31":[1,26],
|
||||||
|
"ledcab32":[1,30],
|
||||||
|
"ledkab":[7,["ledcab31","ledcab32"]],
|
||||||
|
"ledsauna31":[1,34],
|
||||||
|
"ledsauna32":[1,38],
|
||||||
|
"ledsauna":[7,["ledsauna31","ledsauna32"]],
|
||||||
|
"led4":[1,42],
|
||||||
|
|
||||||
|
"ledktc31":[1,48],
|
||||||
|
"ledktc31w":[0,52],
|
||||||
|
"ledktc32":[1,53],
|
||||||
|
"ledktc32w":[0,57],
|
||||||
|
"ledgst31":[1,58],
|
||||||
|
"ledgst31w":[0,62],
|
||||||
|
"ledgst32":[1,63],
|
||||||
|
"ledgst32w":[0,67],
|
||||||
|
"ledktc3w":[7,["ledktc31w","ledktc32w","ledgst31w","ledgst32w"]],
|
||||||
|
"ledktc3":[7,["ledktc31","ledktc32","ledgst31","ledgst32"]],
|
||||||
|
|
||||||
|
"fanbath3":[0,68],
|
||||||
|
"fanwc3":[0,69],
|
||||||
|
|
||||||
|
"pout0":[6,22],
|
||||||
|
"thermostat":[5,23,33],
|
||||||
|
"pout2":[6,24],
|
||||||
|
"water3":[6,25],
|
||||||
|
"pout4":[3,9],
|
||||||
|
"pout5":[3,8],
|
||||||
|
"pout6":[3,11],
|
||||||
|
"pout7":[6,12],
|
||||||
|
|
||||||
|
|
||||||
|
"pwm0" :[3,4],
|
||||||
|
"pwm1" :[3,5],
|
||||||
|
"pwm2" :[3,6],
|
||||||
|
"pwm3" :[3,7],
|
||||||
|
"pwm10":[3,10],
|
||||||
|
|
||||||
|
|
||||||
|
"unprot0":[6,33],
|
||||||
|
"unprot1":[6,32],
|
||||||
|
"unprot2":[6,31],
|
||||||
|
"unprot3":[6,30],
|
||||||
|
"unprot4":[6,29],
|
||||||
|
"unprot5":[6,28],
|
||||||
|
"unprot6":[6,27],
|
||||||
|
"unprot7":[6,26]
|
||||||
|
},
|
||||||
|
|
||||||
|
"in":
|
||||||
|
[ {"#":42,"emit":"power3","item":"fanwc3"},
|
||||||
|
{"#":44,"emit":"in1"},
|
||||||
|
{"#":46,"emit":"in2"},
|
||||||
|
{"#":49,"emit":"in3"},
|
||||||
|
{"#":43,"emit":"in4"},
|
||||||
|
{"#":45,"emit":"in5"},
|
||||||
|
{"#":47,"emit":"in6"},
|
||||||
|
{"#":48,"emit":"in7"},
|
||||||
|
{"#":34,"emit":"in8"},
|
||||||
|
{"#":36,"emit":"in9"},
|
||||||
|
|
||||||
|
{"#":38,"T":0,
|
||||||
|
"click":{"item":"gr_hall3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"REST"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{"#":40,"T":0,
|
||||||
|
"click":{"item":"gr_hall3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"HALT"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%-2"}
|
||||||
|
},
|
||||||
|
{"#":35,"T":0,
|
||||||
|
"click":{"item":"gr_gost3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"ON"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{"#":37,"T":0,
|
||||||
|
"click":{"item":"gr_gost3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"OFF"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%-2"}
|
||||||
|
},
|
||||||
|
|
||||||
|
{"#":39,"emit":"in14"},
|
||||||
|
{"#":41,"emit":"in15"},
|
||||||
|
|
||||||
|
{"#":54,"T":0,"act":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"map":[128,640],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"ON"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map":[641,1024],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"OFF"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%-2"}
|
||||||
|
}
|
||||||
|
]},
|
||||||
|
{"#":55,"T":66,"emit":"a01","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
{"#":56,"T":66,"emit":"a02","map":[0,1024,0,1024,10]},
|
||||||
|
{"#":57,"T":66,"emit":"a03","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
{"#":58,"T":66,"emit":"a04","map":[0,1024,0,1024,10]},
|
||||||
|
{"#":59,"T":66,"emit":"a05","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
{"#":60,"T":0,"act":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"map":[128,640],
|
||||||
|
"click":{"item":"gr_hall3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"REST"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map":[641,1024],
|
||||||
|
"click":{"item":"gr_hall3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"HALT"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%-2"}
|
||||||
|
}
|
||||||
|
]},
|
||||||
|
{"#":61,"T":0,"act":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"map":[128,640],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"ON"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map":[641,1024],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"OFF"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%-2"}
|
||||||
|
}
|
||||||
|
]},
|
||||||
|
|
||||||
|
{"#":62,"T":66,"emit":"a08","map":[0,1024,0,1024,10]},
|
||||||
|
{"#":63,"T":66,"emit":"a09","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
{"#":64,"T":66,"emit":"a10","map":[0,1024,0,1024,10]},
|
||||||
|
{"#":65,"T":66,"emit":"a11","map":[0,1024,0,1024,10]},
|
||||||
|
{"#":66,"T":0,"emit":"leak31","item":"water3","scmd":"OFF","rcmd":"ON"},
|
||||||
|
{"#":67,"T":2,"emit":"leak32","item":"water3","scmd":"OFF","rcmd":"ON"},
|
||||||
|
{"#":68,"T":0,"emit":"leak33","item":"water3","scmd":"OFF","rcmd":"ON"},
|
||||||
|
{"#":69,"T":0,"emit":"a15"}
|
||||||
|
],
|
||||||
|
|
||||||
|
"in2":
|
||||||
|
{ "42":{"emit":"power3","item":"fanwc3"},
|
||||||
|
"44":{"emit":"in1"},
|
||||||
|
"46":{"emit":"in2"},
|
||||||
|
"49":{"emit":"in3"},
|
||||||
|
"43":{"emit":"in4"},
|
||||||
|
"45":{"emit":"in5"},
|
||||||
|
"47":{"emit":"in6"},
|
||||||
|
"48":{"emit":"in7"},
|
||||||
|
"34":{"emit":"in8"},
|
||||||
|
"36":{"emit":"in9"},
|
||||||
|
|
||||||
|
"38":{"T":0,
|
||||||
|
"click":{"item":"gr_hall3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"REST"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
"40":{"T":0,
|
||||||
|
"click":{"item":"gr_hall3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampbedr3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lightall","icmd":"HALT"},
|
||||||
|
"rpcmd":{"item":"gr_hall3","icmd":"%-2"}
|
||||||
|
},
|
||||||
|
"35":{"T":0,
|
||||||
|
"click":{"item":"gr_gost3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"ON"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
"37":{"T":0,
|
||||||
|
"click":{"item":"gr_gost3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"OFF"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%-2"}
|
||||||
|
},
|
||||||
|
|
||||||
|
"39":{"emit":"in14"},
|
||||||
|
"41":{"emit":"in15"},
|
||||||
|
|
||||||
|
"54":{"addr":54,"T":0,"act":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"map":[128,640],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"ON"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"ON"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"ON"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%+2"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map":[641,1024],
|
||||||
|
"click":{"item":"gr_gost3","icmd":"OFF"},
|
||||||
|
"dclick":{"item":"lampwc3","icmd":"OFF"},
|
||||||
|
"tclick":{"item":"lampbath3","icmd":"OFF"},
|
||||||
|
"rpcmd":{"item":"gr_gost3","icmd":"%-2"}
|
||||||
|
}
|
||||||
|
]},
|
||||||
|
"55":{"T":66,"emit":"a01","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
"56":{"T":66,"emit":"a02","map":[0,1024,0,1024,10]},
|
||||||
|
"57":{"T":66,"emit":"a03","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
"58":{"T":66,"emit":"a04","map":[0,1024,0,1024,10]},
|
||||||
|
"59":{"T":66,"emit":"a05","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
"60":{"T":66,"emit":"a06","map":[0,1024,0,1024,10]},
|
||||||
|
"61":{"T":66,"emit":"a07","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
"62":{"T":66,"emit":"a08","map":[0,1024,0,1024,10]},
|
||||||
|
"63":{"T":66,"emit":"a09","map":[0,1024,0,1024,10]},
|
||||||
|
|
||||||
|
"64":{"T":66,"emit":"a10","map":[0,1024,0,1024,10]},
|
||||||
|
"65":{"T":66,"emit":"a11","map":[0,1024,0,1024,10]},
|
||||||
|
"66":{"T":0,"emit":"leak31","item":"water3","scmd":"OFF","rcmd":"ON"},
|
||||||
|
"67":{"T":2,"emit":"leak32","item":"water3","scmd":"OFF","rcmd":"ON"},
|
||||||
|
"68":{"T":0,"emit":"leak33","item":"water3","scmd":"OFF","rcmd":"ON"}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user