Page 10 of 14

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 12:25 pm
by magx2
Te typy masz gdzieś przypisane do stałych? Coś w stylu type == 1 == TYPE_SWITCH?

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 12:33 pm
by pzygmunt

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 8:34 pm
by magx2
A inne typy poza REALAY jak mapujesz z tablicy bajtów na struktury?

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 8:36 pm
by pzygmunt
Doprecyzuj pytanie

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 8:42 pm
by magx2
Jest np channel type DHT 11. W jakim formacie jest on przesyłany w polu value?

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 8:48 pm
by pzygmunt
Double.
Przykład w Javie jak odczytać.

https://github.com/SUPLA/supla-android/ ... annel.java

getDouble

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 8:52 pm
by magx2
Ok tylko pytanie dotyczy ogólnego schematu odczytywania każdego typu kanału. Czy masz coś takiego? Czy trzeba za każdym razem "zgadywć"?

Re: Prosba o dokumentacje + inne sprawy

Posted: Sat Aug 12, 2017 9:13 pm
by pzygmunt
Nie mam specyfikacji. Muszę przeglądnąć kod i to spisać. Nie ma wielu kombinacji.

Re: Prosba o dokumentacje + inne sprawy

Posted: Sun Aug 13, 2017 7:29 am
by magx2
Byłoby super!

Re: Prosba o dokumentacje + inne sprawy

Posted: Sun Aug 13, 2017 12:50 pm
by pzygmunt
Urządzenie -> serwer

Dla:
SUPLA_CHANNELTYPE_SENSORNO
SUPLA_CHANNELTYPE_SENSORNC
SUPLA_CHANNELTYPE_RELAYHFD4
SUPLA_CHANNELTYPE_RELAYG5LA1A
SUPLA_CHANNELTYPE_2XRELAYG5LA1A
SUPLA_CHANNELTYPE_RELAY

value[0] = is_hi ? 1 : 0;

W przypadku rolet w value[0] przesyłana jest pozycja w zakresie 0 - 100 (%). -1 to pozycja nieokreślona

Dla:
SUPLA_CHANNELTYPE_THERMOMETERDS18B20

double temp = 22.11;
memcpy(value, &temp, sizeof(double));

wartość -275 uznawana jest za błąd odczytu czujnika lub jego brak lub po prostu jest offline.

Dla:
SUPLA_CHANNELTYPE_DHT11
SUPLA_CHANNELTYPE_DHT22
SUPLA_CHANNELTYPE_DHT21
SUPLA_CHANNELTYPE_AM2302
SUPLA_CHANNELTYPE_AM2301

double temp = 22.112;
double humidity = 30.053;

int t = temp*1000.00;
int h = humidity*1000.00;

memcpy(value, &t, 4);
memcpy(&value[4], &h, 4);

wilgotność o wartości -1 to brak czujnika, błąd lub offline

Dla:
SUPLA_CHANNELTYPE_DIMMER
SUPLA_CHANNELTYPE_RGBLEDCONTROLLER
SUPLA_CHANNELTYPE_DIMMERANDRGBLED
SUPLA_CHANNELTYPE_DISTANCESENSOR


memset(value, 0, SUPLA_CHANNELVALUE_SIZE);

value[0] = brightness;
value[1] = color_brightness;
value[2] = (char)((color & 0x000000FF)); // BLUE
value[3] = (char)((color & 0x0000FF00) >> 8); // GREEN
value[4] = (char)((color & 0x00FF0000) >> 16); // RED


Smartfon -> Serwer -> Urządzenie

Dla:
SUPLA_CHANNELFNC_CONTROLLINGTHEGATEWAYLOCK
SUPLA_CHANNELFNC_CONTROLLINGTHEGATE
SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR
SUPLA_CHANNELFNC_CONTROLLINGTHEDOORLOCK

value[0] = 1; Otwórz/Zamknij

Dla:
SUPLA_CHANNELFNC_CONTROLLINGTHEROLLERSHUTTER

value[0] = 0; Zatrzymaj
value[0] = 1; Zasłoń
value[0] = 2; Odsłoń

Wartość powyżej 10 oznacza procentowe otwarcie czyly 10 == 0%, 110 == 100%

Dla:
SUPLA_CHANNELFNC_POWERSWITCH
SUPLA_CHANNELFNC_LIGHTSWITCH

value[0] = 0; Wyłącz
value[0] = 1; Włącz

Dla:
SUPLA_CHANNELFNC_DIMMER
SUPLA_CHANNELFNC_RGBLIGHTING
SUPLA_CHANNELFNC_DIMMERANDRGBLIGHTING


value.value[0] = brightness;
value.value[1] = color_brightness;
value.value[2] = (char)((color & 0x000000FF)); // BLUE
value.value[3] = (char)((color & 0x0000FF00) >> 8); // GREEN
value.value[4] = (char)((color & 0x00FF0000) >> 16); // RED