Kompletnie nie rozumiem po co upieracie się na stare SDK.
Ale ok
IOT SDK
Widzimy się na Supla Offline Party vol. 2
Dzięki wielkie, w końcu przejdę na RTOS jak się do edukuję
■Rpi4(m.2) Supla Cloud, Scripts ■Rpi3(sd) SD: 6x MI ATC, 1x W.S.
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
Mam jeszcze pytanie @klew, próbuję u siebie utworzyć 2 kanały z obsługą AT:
płytka c:
plytka h:
Defincja RETREIVE_CHANNEL_CONFIG ustawiona na kanał 2 i 3.
Po zarejestrowaniu w cloudzie są dwa kanały z obsługą AT, ale widzę w logach, że serwer wysyła konfigurację tylko dla kanału 2, dla kanału 3 konfiguracja nie jest przesyłana:
Czy implementacja AT dla dwóch kanałów wygląda inaczej ?
płytka c:
Kod: Zaznacz cały
void supla_esp_board_set_channels(TDS_SuplaDeviceChannel_C *channels,
unsigned char *channel_count) {
*channel_count = 4;
channels[0].Number = 0;
channels[0].Type = SUPLA_CHANNELTYPE_RELAY;
channels[0].Flags = SUPLA_CHANNEL_FLAG_CHANNELSTATE;
channels[0].FuncList = SUPLA_BIT_FUNC_LIGHTSWITCH;
channels[0].Default = SUPLA_CHANNELFNC_LIGHTSWITCH;
channels[0].value[0] = supla_esp_gpio_relay_on(B_RELAY1_PORT);
channels[1].Number = 1;
channels[1].Type = SUPLA_CHANNELTYPE_RELAY;
channels[1].Flags = SUPLA_CHANNEL_FLAG_CHANNELSTATE;
channels[1].FuncList = SUPLA_BIT_FUNC_LIGHTSWITCH;
channels[1].Default = SUPLA_CHANNELFNC_LIGHTSWITCH;
channels[1].value[0] = supla_esp_gpio_relay_on(B_RELAY2_PORT);
channels[2].Number = 2;
channels[2].Type = SUPLA_CHANNELTYPE_ACTIONTRIGGER;
channels[2].FuncList = SUPLA_CHANNELFNC_ACTIONTRIGGER;
channels[2].Default = SUPLA_CHANNELFNC_ACTIONTRIGGER;
channels[2].ActionTriggerCaps = supla_input_cfg[0].action_trigger_cap;
channels[2].Flags = SUPLA_CHANNEL_FLAG_CHANNELSTATE;
channels[2].actionTriggerProperties.relatedChannelNumber = 1;
channels[2].actionTriggerProperties.disablesLocalOperation =
SUPLA_ACTION_CAP_TOGGLE_x1 | SUPLA_ACTION_CAP_SHORT_PRESS_x1;
channels[3].Number = 3;
channels[3].Type = SUPLA_CHANNELTYPE_ACTIONTRIGGER;
channels[3].FuncList = SUPLA_CHANNELFNC_ACTIONTRIGGER;
channels[3].Default = SUPLA_CHANNELFNC_ACTIONTRIGGER;
channels[3].ActionTriggerCaps = supla_input_cfg[1].action_trigger_cap;
channels[3].Flags = SUPLA_CHANNEL_FLAG_CHANNELSTATE;
channels[3].actionTriggerProperties.relatedChannelNumber = 2;
channels[3].actionTriggerProperties.disablesLocalOperation =
SUPLA_ACTION_CAP_TOGGLE_x1 | SUPLA_ACTION_CAP_SHORT_PRESS_x1;
}
void supla_esp_board_send_channel_values_with_delay(void *srpc) {
supla_esp_channel_value_changed(0, supla_esp_gpio_relay_on(B_RELAY1_PORT));
supla_esp_channel_value_changed(1, supla_esp_gpio_relay_on(B_RELAY2_PORT));
}
Kod: Zaznacz cały
#define ESP8266_SUPLA_PROTO_VERSION 16
#define B_RELAY1_PORT 5
#define B_RELAY2_PORT 13
#define B_BTN1_PORT 14
#define B_BTN2_PORT 12
#define RETREIVE_CHANNEL_CONFIG 0b1100
#define LED_RED_PORT 4
void supla_esp_board_send_channel_values_with_delay(void *srpc);
Po zarejestrowaniu w cloudzie są dwa kanały z obsługą AT, ale widzę w logach, że serwer wysyła konfigurację tylko dla kanału 2, dla kanału 3 konfiguracja nie jest przesyłana:
Kod: Zaznacz cały
15:56:23.065 -> Channel config received: ch 2, func 700, cfgtype 0, cfgsize 4
15:56:23.065 -> Config result channel = 2
15:56:23.065 -> sizeof(TSD_ChannelConfig_ActionTrigger) = 4
15:56:23.065 -> Config result i = 0, result channel = 2
15:56:23.065 -> input 14, flags 3, max clicks 0, active 4096
15:56:23.065 -> Set active action channel = 2 ,active action = 4096
■Rpi4(m.2) Supla Cloud, Scripts ■Rpi3(sd) SD: 6x MI ATC, 1x W.S.
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
what's this?
it should not be:
Kod: Zaznacz cały
channels[3].actionTriggerProperties.relatedChannelNumber = 2;
Kod: Zaznacz cały
channels[2].actionTriggerProperties.relatedChannelNumber = 0;
channels[3].actionTriggerProperties.relatedChannelNumber = 1;
@elmaya in proto.h :
that is correct
Kod: Zaznacz cały
typedef struct {
unsigned char relatedChannelNumber; // ChannelNumber + 1.
unsigned _supla_int_t disablesLocalOperation;
} TActionTriggerProperties;
■Rpi4(m.2) Supla Cloud, Scripts ■Rpi3(sd) SD: 6x MI ATC, 1x W.S.
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
Kod: Zaznacz cały
supla_input_cfg[1].gpio_id = B_BTN2_PORT;
supla_input_cfg[1].flags = INPUT_FLAG_PULLUP | INPUT_FLAG_CFG_BTN;
supla_input_cfg[1].relay_gpio_id = B_RELAY2_PORT;
supla_input_cfg[1].channel = 3;
supla_input_cfg[1].type = INPUT_TYPE_BTN_MONOSTABLE;
supla_input_cfg[1].action_trigger_cap =
SUPLA_ACTION_CAP_HOLD |
SUPLA_ACTION_CAP_SHORT_PRESS_x1 |
SUPLA_ACTION_CAP_SHORT_PRESS_x2 |
SUPLA_ACTION_CAP_SHORT_PRESS_x3 |
SUPLA_ACTION_CAP_SHORT_PRESS_x4 |
SUPLA_ACTION_CAP_SHORT_PRESS_x5;
■Rpi4(m.2) Supla Cloud, Scripts ■Rpi3(sd) SD: 6x MI ATC, 1x W.S.
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
Serwer prywatny, najnowsza wersja.
Po rejestracji urządzenia są dwa kanały z funkcją AT, gdy ustawię akcję dla pierwszego kanału:
Po ustawieniu akcji na drugim kanale:
Gdy wykonam akcję na pierwszym kanale to jest ok :
Natomiast na drugim kanale (ustawiona akcja na serwerze) nic się nie dzieje:
Po rejestracji urządzenia są dwa kanały z funkcją AT, gdy ustawię akcję dla pierwszego kanału:
Kod: Zaznacz cały
09:58:49.750 -> Registered and ready.
09:58:49.750 -> Free heap size: 18208
09:58:49.750 -> supla_esp_check_updates
09:58:49.750 -> GetChannelConfigRequest: 1
09:58:49.750 -> GetChannelConfigRequest: 2
09:58:49.750 -> GetChannelConfigRequest: 4
09:58:49.750 -> ChannelConfigRequested: 2
09:58:49.750 -> GetChannelConfigRequest: 8
09:58:49.750 -> ChannelConfigRequested: 3
09:58:49.795 -> GetChannelConfigRequest: 16
09:58:49.795 -> GetChannelConfigRequest: 32
09:58:49.795 -> GetChannelConfigRequest: 64
09:58:49.795 -> GetChannelConfigRequest: 128
09:58:49.795 -> Channel config received: ch 2, func 700, cfgtype 0, cfgsize 4
09:58:49.795 -> Config result channel = 2
09:58:49.795 -> sizeof(TSD_ChannelConfig_ActionTrigger) = 4
09:58:49.840 -> Config result i = 0, result channel = 2
09:58:49.840 -> input 14, flags 3, max clicks 0, active 4096
09:58:49.840 -> Set active action channel = 2 ,active action = 4096
09:58:49.840 -> Config result i = 1, result channel = 2
09:58:49.840 -> Config result i = 2, result channel = 2
09:58:49.840 -> Config result i = 3, result channel = 2
09:58:49.840 -> Config result i = 4, result channel = 2
09:58:49.840 -> Config result i = 5, result channel = 2
09:58:49.885 -> Config result i = 6, result channel = 2
09:58:50.516 -> pm open,type:2 0
Kod: Zaznacz cały
09:59:25.971 -> Registered and ready.
09:59:25.971 -> Free heap size: 18208
09:59:25.971 -> supla_esp_check_updates
09:59:25.971 -> GetChannelConfigRequest: 1
09:59:25.971 -> GetChannelConfigRequest: 2
09:59:25.971 -> GetChannelConfigRequest: 4
09:59:25.971 -> ChannelConfigRequested: 2
09:59:26.016 -> GetChannelConfigRequest: 8
09:59:26.016 -> ChannelConfigRequested: 3
09:59:26.016 -> GetChannelConfigRequest: 16
09:59:26.016 -> GetChannelConfigRequest: 32
09:59:26.016 -> GetChannelConfigRequest: 64
09:59:26.016 -> GetChannelConfigRequest: 128
09:59:26.016 -> Channel config received: ch 2, func 700, cfgtype 0, cfgsize 4
09:59:26.016 -> Config result channel = 2
09:59:26.061 -> sizeof(TSD_ChannelConfig_ActionTrigger) = 4
09:59:26.061 -> Config result i = 0, result channel = 2
09:59:26.061 -> input 14, flags 3, max clicks 0, active 4096
09:59:26.061 -> Set active action channel = 2 ,active action = 4096
09:59:26.061 -> Config result i = 1, result channel = 2
09:59:26.061 -> Config result i = 2, result channel = 2
09:59:26.061 -> Config result i = 3, result channel = 2
09:59:26.108 -> Config result i = 4, result channel = 2
09:59:26.108 -> Config result i = 5, result channel = 2
09:59:26.108 -> Config result i = 6, result channel = 2
09:59:26.972 -> supla_esp_gpio_set_hi 4, 0
09:59:27.110 -> pm open,type:2 0
Kod: Zaznacz cały
0:03:44.218 -> INTR(b) a=0
10:03:44.218 -> gpio_status=16384
10:03:44.264 -> gpio_id=14
10:03:44.355 -> notify input 14 change: 1
10:03:44.402 -> INTR(b) a=0
10:03:44.402 -> gpio_status=16384
10:03:44.402 -> gpio_id=14
10:03:44.539 -> notify input 14 change: 0
10:03:44.631 -> INTR(b) a=0
10:03:44.631 -> gpio_status=16384
10:03:44.631 -> gpio_id=14
10:03:44.769 -> notify input 14 change: 1
10:03:44.769 -> INTR(b) a=0
10:03:44.769 -> gpio_status=16384
10:03:44.769 -> gpio_id=14
10:03:44.905 -> notify input 14 change: 0
10:03:44.905 -> Input[ch: 2] sending action trigger (1 << 12)
10:03:44.905 -> AT ch = 2, at = 4096
10:03:44.950 -> supla_esp_channel_set_value: sender 0, channel 1, duration 0, value[7-0] 0 0 0 0 0 0 0 1
10:03:44.950 -> port=13, hi=1, save_before=1
10:03:44.996 -> STATE WRITE SUCCESS
10:03:44.996 -> supla_esp_gpio_set_hi 13, 1
10:03:44.996 -> supla_esp_gpio_set_hi 13, 1
10:03:44.996 -> supla_esp_channel_value_changed(1, 1)
10:03:46.040 -> STATE WRITE SUCCESS
Kod: Zaznacz cały
10:04:46.348 -> INTR(b) a=1
10:04:46.348 -> gpio_status=4096
10:04:46.348 -> gpio_id=12
10:04:46.484 -> notify input 12 change: 1
10:04:46.484 -> active
10:04:46.531 -> INTR(b) a=1
10:04:46.531 -> gpio_status=4096
10:04:46.531 -> gpio_id=12
10:04:46.531 -> INTR(b) a=1
10:04:46.531 -> gpio_status=4096
10:04:46.531 -> gpio_id=12
10:04:46.666 -> notify input 12 change: 0
10:04:46.666 -> inactive
10:04:46.666 -> !INPUT_FLAG_TRIGGER_ON_PRESS inactive
10:04:46.666 -> port=13, hi=0, save_before=0
10:04:46.666 -> supla_esp_gpio_set_hi 13, 0
10:04:46.666 -> supla_esp_gpio_set_hi 13, 0
10:04:46.666 -> supla_esp_channel_value_changed(1, 0)
10:04:46.756 -> INTR(b) a=1
10:04:46.756 -> gpio_status=4096
10:04:46.756 -> gpio_id=12
10:04:46.893 -> notify input 12 change: 1
10:04:46.893 -> active
10:04:46.939 -> INTR(b) a=1
10:04:46.939 -> gpio_status=4096
10:04:46.939 -> gpio_id=12
10:04:47.031 -> notify input 12 change: 0
10:04:47.031 -> inactive
10:04:47.076 -> !INPUT_FLAG_TRIGGER_ON_PRESS inactive
10:04:47.076 -> port=13, hi=1, save_before=0
10:04:47.076 -> supla_esp_gpio_set_hi 13, 1
10:04:47.076 -> supla_esp_gpio_set_hi 13, 1
10:04:47.076 -> supla_esp_channel_value_changed(1, 1)
10:04:48.114 -> STATE WRITE SUCCESS
■Rpi4(m.2) Supla Cloud, Scripts ■Rpi3(sd) SD: 6x MI ATC, 1x W.S.
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3
ROLETY_V3 x12 ■SWITCH_DUAL x4 ■GATE_MODULE_V3 x1 ■SOCKET_SSR x1 ■SMOKE_MODULE x1
SONOFF_TOUCH x4 ■YUNSCHAN x1 ■STAITCASE_DIMMER x1 ■MEW-01 x2 ■mROW-02 x1 ■LEW-01 x1
POW_R2 x2 ■SP111 x3