Automat schodowy

User avatar
lesny8
Posts: 644
Joined: Mon Dec 11, 2017 9:43 pm

Mon May 21, 2018 6:55 pm

Jestem troszkę zmieszany bo...
...albo czegoś tu nie rozumiem i mam braki w kodzie, albo w tej funkcjonalności nie wszystko działa tak jak powinno.

Z uwagi na to, że Cloud mam na malinie w wersji dockerowej, a jak wiadomo docker jeszcze nie jest aktualny, przepiąłem się z testowym modułem na beta-cloud.supla.org, gdzie tytułowa funkcjonalność już jest.

Kompiluję sobie taką konfigurację i po flashowaniu ustawiam moduł i podpinam go do cloud.
Jak widać poniżej mam 2 przekaźnik sterowane przez 2 przyciski na kanałach 0 i 1.

supla_esp_board_gpio_init wygląda tak

Code: Select all

supla_input_cfg[0].type = INPUT_TYPE_BTN_MONOSTABLE;
supla_input_cfg[0].gpio_id = B_BTN1_PORT;
supla_input_cfg[0].flags = INPUT_FLAG_PULLUP |  INPUT_FLAG_CFG_BTN;
supla_input_cfg[0].relay_gpio_id = B_RELAY1_PORT;
supla_input_cfg[0].channel = 0;

supla_input_cfg[1].type = INPUT_TYPE_BTN_MONOSTABLE;
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 = 1;
    

supla_relay_cfg[0].gpio_id = B_RELAY1_PORT;
supla_relay_cfg[0].flags = RELAY_FLAG_RESET;
supla_relay_cfg[0].channel = 0;

supla_relay_cfg[1].gpio_id = B_RELAY2_PORT;
supla_relay_cfg[1].flags = RELAY_FLAG_RESET;
supla_relay_cfg[1].channel = 1;
a supla_esp_board_set_channels tak

Code: Select all

*channel_count = 2;

channels[0].Number = 0;
channels[0].Type = SUPLA_CHANNELTYPE_RELAY;
channels[0].FuncList =	SUPLA_BIT_RELAYFUNC_POWERSWITCH \
						| SUPLA_BIT_RELAYFUNC_LIGHTSWITCH \
						| SUPLA_BIT_RELAYFUNC_STAIRCASETIMER;
channels[0].Default = 0;
channels[0].value[0] = supla_esp_gpio_relay_on(B_RELAY1_PORT);
	
channels[1].Number = 1;
channels[1].Type = channels[0].Type;
channels[1].FuncList = channels[0].FuncList;
channels[1].Default = 0;
channels[1].value[0] = supla_esp_gpio_relay_on(B_RELAY2_PORT);
supla_esp_board_send_channel_values_with_delay

Code: Select all

	
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));
W Cloud ustawiam dla kanału 0 automat schodowy, wskazuję dla niego odpowiedni czas pracy, zapisuję i w aplikacji na telefonie widzę przepiękną ikonkę z funkcjonalnością, na którą wszyscy tu od dawna czekali ;)

Zacieram ręce i sprawdzam działanie.
Uruchamiam w telefonie automat i przekaźnik pstryka, a po upływie ustalonego czasu następuje wyłączenie, przekaźnik pstryka. Sprawdzam w apce wyłączenie przed upływem ustawionego czasu, działa super.

Biorę łącznik w łapki wciskam przycisk, przekaźnik pstryka :D czekam, czekam... ustalony czas mija i cisza :shock: (tu spodziewałem się zmiany stanu kanału jak to miało miejsce przy wykonaniu akcji z aplikacji w tel). Zerkam w telefon bo nie wiem czy nie dosłyszałem zmiany, ale niestety nie. Stan kanału się nie zmienił, hmm.. ale dlaczego? Ponowne naciskam przycisk, kanał zmienia stan, przekaźnik pstryka. Sprawdziłem kilka razy i zawsze to samo, chyba że włączę już włączony kanał na telefonie, to wtedy odliczy czas i zmienia stan.

Czy czegoś mi brakuje w tej konfiguracji? Powinienem mieć tu jeszcze coś, jakoś, gdzieś? Czy to po prostu jakiś bug po stronie działania funkcji? Szukałem w źródłach jakiegoś tropu czemu to tak, ale ślad mi się urwał..... :roll:

P.S. Źródła mam aktualne
User avatar
pzygmunt
Posts: 6013
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Tue May 22, 2018 7:42 am

Ten firmware tego jeszcze nie obsługuje.
User avatar
lesny8
Posts: 644
Joined: Mon Dec 11, 2017 9:43 pm

Tue May 22, 2018 9:14 pm

Ok, rozumiem...
Server - już to ma, bo umie wysterować i przetworzyć żądania;
Client - już to ma, bo wysyła żądanie do Servera;
Device - jeszcze nie ma, bo nie ma jak wysłać żądania i działa tylko lokalnie, a lokalnie to on nie wie, że ma coś więcej zrobić;

Wszystkie komponenty współdzielą protokół więc myślałem, że już gotowe i będzie hulać. Teraz jak się przyglądam supla_esp_gpio to widzę, że nie ma żadnej dodatkowej struktury lub zmiennej, czy funkcji obsługującej tę funkcjonalność tak jak w przypadku RS, choć w przypadku RS jest to dużo bardziej skomplikowane.

Dopisałbym co trzeba, ale to jeszcze nie ten etap, muszę więcej wypić...;)

Zastanawiam się jak Ty to chłopie wszystko ogarniasz? Posiadasz/tworzysz jakieś diagramy w UML czy wszystko w głowie?
User avatar
pzygmunt
Posts: 6013
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Wed May 23, 2018 6:52 am

Na tyle jest tego jeszcze mało, że w głowie ale pierwsze diagramy się nawet ostatnio pojawiły przy koncepcie OAuth brokera dla Supla<->Amazon Echo/Google Home.
User avatar
lesny8
Posts: 644
Joined: Mon Dec 11, 2017 9:43 pm

Thu May 24, 2018 9:29 pm

No to szacun Panie kolego ;)

Wiem, że dla twórcy systemu poruszanie się w kodzie bez jakichkolwiek diagramów to nie problem, tym bardziej jak się na co dzień obcuje z kompilatorem i to nie jednym, i nie w jednym języku a co najmniej w kilku, to dla zwykłych zjadaczy chleba, którym się wydaje że coś tam wiedzą, przedarcie się przez dziesiątki tysięcy linii kodu, żeby zrozumieć jakąś zależność i pozornie prostą rzecz, to jak wejście na Giewont w japonkach :D

Dlatego szapo ba Przemku.
User avatar
lesny8
Posts: 644
Joined: Mon Dec 11, 2017 9:43 pm

Fri Jun 29, 2018 2:35 pm

Czy komuś udało się uruchomić automat schodowy z harmonogramu? U mnie ani razu nie wystartował i nie mam pojęcia czemu :(
Gdzie ewentualnie szukać jakichś logów?
harmonogram.png
harmonogram.png (71.12 KiB) Viewed 9177 times
User avatar
pzygmunt
Posts: 6013
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Fri Jun 29, 2018 2:36 pm

Harmonogram tego nie obsługuje poprawnie.
User avatar
michael
Posts: 882
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Tue Sep 18, 2018 8:13 am

Chciałbym ustawić automat schodowy na SONOFFie lub ROWie, ale przy wyborze funkcji nie widać na liście automatu. Automat udało mi się odpalić tylko na Raspberry. Czy jest to możliwe?
Ewentualnie którą linijkę kodu zmienić, żeby pojawiła mi się ta opcja? :D
Kabel ucięty na miarę zawsze jest za krótki...
User avatar
pzygmunt
Posts: 6013
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Tue Sep 18, 2018 8:39 am

Rzecz w tym, że ESP nie specjalnie się nadają do obsługi automatu bez dodania pamięci FRAM.
Bez tego mogą gubić czas.
User avatar
michael
Posts: 882
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Tue Sep 18, 2018 8:44 am

To na czym najlepiej zrobić taki automat?
Kabel ucięty na miarę zawsze jest za krótki...
Post Reply