192 lines
6.8 KiB
C
192 lines
6.8 KiB
C
#include "cJSON/cJSON.h"
|
|
#pragma once
|
|
|
|
static cJSON* ya_json_hed(char* id_dev, char* type_a, cJSON* state_a){
|
|
cJSON *device = cJSON_CreateObject();
|
|
cJSON* devices = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(device, "devices", devices);
|
|
|
|
cJSON* id = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(devices, id);
|
|
|
|
cJSON* real_id = cJSON_CreateString(id_dev);
|
|
cJSON_AddItemToObject(id, "id", real_id);
|
|
|
|
cJSON* actions_a = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(id, "actions", actions_a);
|
|
|
|
cJSON* actions_b = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(actions_a, actions_b);
|
|
|
|
cJSON* type = cJSON_CreateString(type_a);
|
|
cJSON_AddItemToObject(actions_b, "type", type);
|
|
|
|
cJSON_AddItemToObject(actions_b, "state", state_a);
|
|
return device;
|
|
}
|
|
|
|
char *yan_on_off_lampochka(char* id_dev, char on_off){
|
|
char *string = NULL;
|
|
char type_a[] = "devices.capabilities.on_off"; // Операция проводимая
|
|
cJSON* state_a = cJSON_CreateObject();
|
|
|
|
cJSON* instance = cJSON_CreateString("on");
|
|
cJSON_AddItemToObject(state_a, "instance", instance);
|
|
|
|
cJSON* value = cJSON_CreateBool(on_off);
|
|
cJSON_AddItemToObject(state_a, "value", value);
|
|
cJSON* device = ya_json_hed(id_dev, type_a, state_a);
|
|
string = cJSON_Print(device);
|
|
end:
|
|
cJSON_Delete(device);
|
|
return string;
|
|
}
|
|
char *yan_kelvin_lampochka(char* id_dev, int value_n){
|
|
char *string = NULL;
|
|
char type_a[] = "devices.capabilities.color_setting"; // Операция проводимая
|
|
cJSON* state_a = cJSON_CreateObject();
|
|
|
|
cJSON* instance = cJSON_CreateString("temperature_k");
|
|
cJSON_AddItemToObject(state_a, "instance", instance);
|
|
|
|
cJSON* value = cJSON_CreateNumber(value_n);
|
|
cJSON_AddItemToObject(state_a, "value", value);
|
|
cJSON* device = ya_json_hed(id_dev, type_a, state_a);
|
|
string = cJSON_Print(device);
|
|
end:
|
|
cJSON_Delete(device);
|
|
return string;
|
|
}
|
|
char *yan_brightness(char* id_dev, char value_n){
|
|
char *string = NULL;
|
|
char type_a[] = "devices.capabilities.range"; // Операция проводимая
|
|
cJSON* state_a = cJSON_CreateObject();
|
|
|
|
cJSON* instance = cJSON_CreateString("brightness");
|
|
cJSON_AddItemToObject(state_a, "instance", instance);
|
|
|
|
cJSON* value = cJSON_CreateNumber(value_n);
|
|
cJSON_AddItemToObject(state_a, "value", value);
|
|
cJSON* device = ya_json_hed(id_dev, type_a, state_a);
|
|
string = cJSON_Print(device);
|
|
end:
|
|
cJSON_Delete(device);
|
|
return string;
|
|
}
|
|
char *yan_rgb_lampochka(void){
|
|
char *string = NULL;
|
|
char idyan[] = "ff5e379a-03d9-42fc-a0e1-822a8310be92"; // ID сюда
|
|
char type_a[] = "devices.capabilities.color_setting"; // Операция проводимая
|
|
char region[] = "rus";
|
|
int value_n = 14210514;
|
|
size_t index = 0;
|
|
|
|
cJSON *objkt = cJSON_CreateObject();
|
|
|
|
cJSON *payload = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(objkt, "payload", payload);
|
|
cJSON *payload_a = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(payload, payload_a);
|
|
cJSON *devices = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(payload_a, "devices", devices);
|
|
cJSON *devices_a = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(devices, devices_a);
|
|
cJSON *id = cJSON_CreateString(idyan);
|
|
cJSON_AddItemToObject(devices_a, "id", id);
|
|
cJSON *custom_data = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(devices_a, "custom_data", custom_data);
|
|
cJSON *custom_data_a = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(custom_data, custom_data_a);
|
|
cJSON *api_location = cJSON_CreateString(region);
|
|
cJSON_AddItemToObject(custom_data_a,"api_location", api_location);
|
|
cJSON *capabilities = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(devices_a, "capabilities", capabilities);
|
|
cJSON *capabilities_a = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(capabilities, capabilities_a);
|
|
cJSON *type = cJSON_CreateString(type_a);
|
|
cJSON_AddItemToObject(capabilities_a, "type", type);
|
|
cJSON *state = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(capabilities_a, "state", state);
|
|
cJSON *state_a = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(state, state_a);
|
|
cJSON *instance = cJSON_CreateString("rgb");
|
|
cJSON_AddItemToObject(state_a, "instance", instance);
|
|
//cJSON *value = cJSON_C;
|
|
cJSON *value = cJSON_CreateNumber(value_n);
|
|
cJSON_AddItemToObject(state_a, "value", value);//reateNumber(value_n);
|
|
cJSON_AddItemToObject(state_a, "value", value);
|
|
|
|
|
|
|
|
string = cJSON_Print(objkt);
|
|
|
|
end:
|
|
cJSON_Delete(objkt);
|
|
return string;
|
|
}
|
|
|
|
char *yan_hsv_lampochka(char* idyan, int h_a, char s_a, char v_a){
|
|
char *string = NULL;
|
|
//char idyan[] = "ff5e379a-03d9-42fc-a0e1-822a8310be92"; // ID сюда
|
|
char type_a[] = "devices.capabilities.color_setting"; // Операция проводимая
|
|
char region[] = "rus";
|
|
//int h_a = 125;
|
|
//int s_a = 20;
|
|
//int v_a = 100;
|
|
cJSON *devices = NULL;
|
|
cJSON *id = NULL;
|
|
cJSON *real_id = NULL;
|
|
cJSON *actions_a = NULL;
|
|
cJSON *actions_b = NULL;
|
|
cJSON *type = NULL;
|
|
cJSON *state_a = NULL;
|
|
cJSON *state_b = NULL;
|
|
cJSON *instance = NULL;
|
|
cJSON *value = NULL;
|
|
size_t index = 0;
|
|
|
|
cJSON *device = cJSON_CreateObject();
|
|
devices = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(device, "devices", devices);
|
|
|
|
id = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(devices, id);
|
|
|
|
real_id = cJSON_CreateString(idyan);
|
|
cJSON_AddItemToObject(id, "id", real_id);
|
|
|
|
actions_a = cJSON_CreateArray();
|
|
cJSON_AddItemToObject(id, "actions", actions_a);
|
|
|
|
actions_b = cJSON_CreateObject();
|
|
cJSON_AddItemToArray(actions_a, actions_b);
|
|
|
|
type = cJSON_CreateString(type_a);
|
|
cJSON_AddItemToObject(actions_b, "type", type);
|
|
|
|
state_a = cJSON_CreateObject();
|
|
cJSON_AddItemToObject(actions_b, "state", state_a);
|
|
|
|
instance = cJSON_CreateString("hsv");
|
|
cJSON_AddItemToObject(state_a, "instance", instance);
|
|
|
|
cJSON *value_a = cJSON_CreateObject();
|
|
|
|
cJSON_AddItemToObject(state_a, "value", value_a);
|
|
|
|
cJSON_AddItemToArray(value, value_a);
|
|
|
|
cJSON *h = cJSON_CreateNumber(h_a);
|
|
cJSON_AddItemToObject(value_a, "h", h);
|
|
cJSON *s = cJSON_CreateNumber(s_a);
|
|
cJSON_AddItemToObject(value_a, "s", s);
|
|
cJSON *v = cJSON_CreateNumber(v_a);
|
|
cJSON_AddItemToObject(value_a, "v", v);
|
|
|
|
string = cJSON_Print(device);
|
|
|
|
end:
|
|
cJSON_Delete(device);
|
|
return string;
|
|
}
|
|
|