Nie masz co modyfikować tylko zaloguj się na IP urządzenia i zmień tryb pracy przycisku.Patryk wrote: Mon Aug 19, 2019 7:59 pm Prośba o pomoc.
Co należy zmienić (zmodyfikować), aby przycisk monostabilny, włączał przekaźnik podczas "wciśnięcia". a nie dopiero jak się go zwalnia.
Code: Select all
void SuplaDeviceClass::iterate_relaybutton(SuplaChannelPin *pin, TDS_SuplaDeviceChannel_B *channel, unsigned long time_diff, int channel_number) { if ( channel->Type == SUPLA_CHANNELTYPE_RELAY ){ int state; uint8_t val = suplaDigitalRead(channel->Number, pin->pin2); if ( pin->start == 0) { if ( pin->flag == RELAY_FLAG_RESTORE && Params.cb.read_supla_relay_state != 0) { state = Params.cb.read_supla_relay_state(channel->Number); channelSetValue(channel->Number, state, 0); //Serial.print("channel->Number-"); Serial.print(channel->Number); Serial.print("=="); Serial.println(state); } else { uint8_t val1 = suplaDigitalRead(channel->Number, pin->pin1); //channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0); channelSetValue(channel->Number, val1 == HIGH ? 1 : 0, 0); } pin->start = 1; } else { if ( val != pin->last_val && millis()-pin->time_left >= 200 ) { if(val == 1 && val != pin->last_val){ relaySwitch(channel->Number, pin->pin1); } else if (val == 0 && val != pin->last_val){ if(pin->type == INPUT_TYPE_BTN_BISTABLE){ relaySwitch(channel->Number, pin->pin1); } } pin->time_left = millis(); pin->last_val = val; } } } }
ESP8266 Primary GUI
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
https://gui-generic-builder.supla.io/
-
Patryk
- Posts: 2944
- Joined: Mon Jan 07, 2019 7:51 pm
- Location: Rybnik
Z Wielkim SZACUNKIEM, chciałbym Ci PODZIĘKOWAĆ , za modyfikacje biblioteki SUPLADEVICE.krystianmen wrote: Mon Aug 19, 2019 11:57 pmNie masz co modyfikować tylko zaloguj się na IP urządzenia i zmień tryb pracy przycisku.Patryk wrote: Mon Aug 19, 2019 7:59 pm Prośba o pomoc.
Co należy zmienić (zmodyfikować), aby przycisk monostabilny, włączał przekaźnik podczas "wciśnięcia". a nie dopiero jak się go zwalnia.
Code: Select all
void SuplaDeviceClass::iterate_relaybutton(SuplaChannelPin *pin, TDS_SuplaDeviceChannel_B *channel, unsigned long time_diff, int channel_number) { if ( channel->Type == SUPLA_CHANNELTYPE_RELAY ){ int state; uint8_t val = suplaDigitalRead(channel->Number, pin->pin2); if ( pin->start == 0) { if ( pin->flag == RELAY_FLAG_RESTORE && Params.cb.read_supla_relay_state != 0) { state = Params.cb.read_supla_relay_state(channel->Number); channelSetValue(channel->Number, state, 0); //Serial.print("channel->Number-"); Serial.print(channel->Number); Serial.print("=="); Serial.println(state); } else { uint8_t val1 = suplaDigitalRead(channel->Number, pin->pin1); //channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0); channelSetValue(channel->Number, val1 == HIGH ? 1 : 0, 0); } pin->start = 1; } else { if ( val != pin->last_val && millis()-pin->time_left >= 200 ) { if(val == 1 && val != pin->last_val){ relaySwitch(channel->Number, pin->pin1); } else if (val == 0 && val != pin->last_val){ if(pin->type == INPUT_TYPE_BTN_BISTABLE){ relaySwitch(channel->Number, pin->pin1); } } pin->time_left = millis(); pin->last_val = val; } } } }
Wgrałem soft do sonoffa th16, i przycisk ( oryginalny) dopiero przełącza przekaźnik po "puszczeniu".
Dlatego moje pytanie, jak "zrobić", żeby zmiana przekaźnika następowała w chwili "wciśnięcia" przycisku ( wybrałem w konfiguracji " monostabilny " ), a nie dopiero jak go " puszczam"
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
Myślę, że inni wnieśli dużo dużo więcej w rozwój niż jaPatryk wrote: Tue Aug 20, 2019 1:11 amZ Wielkim SZACUNKIEM, chciałbym Ci PODZIĘKOWAĆ , za modyfikacje biblioteki SUPLADEVICE.krystianmen wrote: Mon Aug 19, 2019 11:57 pmNie masz co modyfikować tylko zaloguj się na IP urządzenia i zmień tryb pracy przycisku.Patryk wrote: Mon Aug 19, 2019 7:59 pm Prośba o pomoc.
Co należy zmienić (zmodyfikować), aby przycisk monostabilny, włączał przekaźnik podczas "wciśnięcia". a nie dopiero jak się go zwalnia.
Code: Select all
void SuplaDeviceClass::iterate_relaybutton(SuplaChannelPin *pin, TDS_SuplaDeviceChannel_B *channel, unsigned long time_diff, int channel_number) { if ( channel->Type == SUPLA_CHANNELTYPE_RELAY ){ int state; uint8_t val = suplaDigitalRead(channel->Number, pin->pin2); if ( pin->start == 0) { if ( pin->flag == RELAY_FLAG_RESTORE && Params.cb.read_supla_relay_state != 0) { state = Params.cb.read_supla_relay_state(channel->Number); channelSetValue(channel->Number, state, 0); //Serial.print("channel->Number-"); Serial.print(channel->Number); Serial.print("=="); Serial.println(state); } else { uint8_t val1 = suplaDigitalRead(channel->Number, pin->pin1); //channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0); channelSetValue(channel->Number, val1 == HIGH ? 1 : 0, 0); } pin->start = 1; } else { if ( val != pin->last_val && millis()-pin->time_left >= 200 ) { if(val == 1 && val != pin->last_val){ relaySwitch(channel->Number, pin->pin1); } else if (val == 0 && val != pin->last_val){ if(pin->type == INPUT_TYPE_BTN_BISTABLE){ relaySwitch(channel->Number, pin->pin1); } } pin->time_left = millis(); pin->last_val = val; } } } }
Wgrałem soft do sonoffa th16, i przycisk ( oryginalny) dopiero przełącza przekaźnik po "puszczeniu".
Dlatego moje pytanie, jak "zrobić", żeby zmiana przekaźnika następowała w chwili "wciśnięcia" przycisku ( wybrałem w konfiguracji " monostabilny " ), a nie dopiero jak go " puszczam"
Wrzuciłem Ci poprawkę zobacz sobie jak to działa:
https://github.com/krycha88/SuplaDevice/tree/dev
https://gui-generic-builder.supla.io/
-
Patryk
- Posts: 2944
- Joined: Mon Jan 07, 2019 7:51 pm
- Location: Rybnik
Działa !!!.
Dziękuję.
Może "wrzuć" całą bibliotekę na oficjalny github (pull requests).
Dziękuję.
Może "wrzuć" całą bibliotekę na oficjalny github (pull requests).
-
uchnast.michal
- Posts: 1334
- Joined: Tue Jun 04, 2019 11:37 am
- Has thanked: 7 times
Przyłączę się do dyskusji, mam 2 pytania.
1. Jak wprowadza się w tryb konfiguracji?
2. By pominąć etap konfiguracji, uzupełniłem Config_Wifi_name, Config_Wifi_pass, SUPLA server addres, Location ID i hasło. Niestety to nie działa
W logach portu "Connection fail. Server: xxx". Serwer i hasło jako string w "" natomiast id jako int.
Z góry dzięki za odp.
1. Jak wprowadza się w tryb konfiguracji?
2. By pominąć etap konfiguracji, uzupełniłem Config_Wifi_name, Config_Wifi_pass, SUPLA server addres, Location ID i hasło. Niestety to nie działa
Z góry dzięki za odp.
-
George2002
- Posts: 191
- Joined: Mon May 01, 2017 2:00 am
Niby dwa razy reset szybki przyciskiem ale nie potwierdzę bo działam na Sonoff touch a tam nie ma przycisku reset 
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
Jak chcesz mogę Ci przygotować kod gdzie będzie możliwość uruchomienia trybu konfiguracji po przez przytrzymania np. 5 sekund przycisku i nie będzie musiał być to resetGeorge2002 wrote: Wed Aug 21, 2019 5:36 pm Niby dwa razy reset szybki przyciskiem ale nie potwierdzę bo działam na Sonoff touch a tam nie ma przycisku reset![]()
https://gui-generic-builder.supla.io/
-
Patryk
- Posts: 2944
- Joined: Mon Jan 07, 2019 7:51 pm
- Location: Rybnik
Jak Byś mógł, również by mnie to interesowało.
-
Rafaello
- Posts: 108
- Joined: Sun May 29, 2016 1:34 pm
Panowie pomóżcie
Skrypt kompiluje się, ładnie wgrywa, przechodzi do trybu konfiguracji, wszystko się zapisuje, łączy się z punktem dostępowym a za chwilkę zrywa połączenie i tak w kółko, oczywiście nie widać go w Cloudzie. Mam różnych układów działających na Supli chyba kilkadziesiąt, większość na gotowym firmware, jednakże dla konkretnych potrzeb lepsze jest tworzenie własnego tak aby nie zaśmiecać w Cloud niepotrzebnymi wyjściami. Obecny skrypt to dwa przekaźniki w tym jeden RELAYBUTTON, jeden sensor oraz DALLAS, testuje na MEMOS D1 Mini.
z góry dzięki za wszelakie wskazówki.
Skrypt kompiluje się, ładnie wgrywa, przechodzi do trybu konfiguracji, wszystko się zapisuje, łączy się z punktem dostępowym a za chwilkę zrywa połączenie i tak w kółko, oczywiście nie widać go w Cloudzie. Mam różnych układów działających na Supli chyba kilkadziesiąt, większość na gotowym firmware, jednakże dla konkretnych potrzeb lepsze jest tworzenie własnego tak aby nie zaśmiecać w Cloud niepotrzebnymi wyjściami. Obecny skrypt to dwa przekaźniki w tym jeden RELAYBUTTON, jeden sensor oraz DALLAS, testuje na MEMOS D1 Mini.
z góry dzięki za wszelakie wskazówki.
