ESP8266 Primary GUI

Sibikk
Posty: 366
Rejestracja: pn lis 07, 2016 12:42 pm
Lokalizacja: Katowice
Kontakt:

Cześć,
Miałem problem z biblioteka DHT ale po rekonesanie w "goglu " wyszło że trzeba zainstalować 2 biblioteki
DHT sensor i adafruit unified sensor.

Teraz jednak mam większą zagwozdkę.

Kod: Zaznacz cały

exit status 1
'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'

Kod: Zaznacz cały

Arduino:1.8.8 (Windows Store 1.8.19.0) (Windows 10), Płytka:"Generic ESP8266 Module, 80 MHz, 40MHz, DOUT, 115200, 4M (3M SPIFFS), ck, Disabled, None"

Opcje projektu zmienione, przeładuj całość
UWAGA: biblioteka SuplaDevice działa na architekturze(/architekturach) (avr) i może nie być kompatybilna z obecną płytką która działa na architekturze(/architekturach) (esp8266).
C:\Users\Sibinski\Desktop\Nowy folder1\Primary_GUI\Primary_GUI.ino: In function 'SuplaDeviceCallbacks supla_arduino_get_callbacks()':

Primary_GUI:240:6: error: 'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'

   cb.read_supla_relay_state = &read_supla_relay_state;

      ^

Primary_GUI:241:6: error: 'SuplaDeviceCallbacks' has no member named 'save_supla_relay_state'

   cb.save_supla_relay_state = &save_supla_relay_state;

      ^

C:\Users\Sibinski\Desktop\Nowy folder1\Primary_GUI\Primary_GUI.ino: In function 'void add_Relay_Button(int, int, int)':

Primary_GUI:500:82: error: no matching function for call to 'SuplaDeviceClass::addRelayButton(int&, int&, int&, int)'

   SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay));

                                                                                  ^

C:\Users\Sibinski\Desktop\Nowy folder1\Primary_GUI\Primary_GUI.ino:500:82: note: candidates are:

In file included from C:\Users\Sibinski\Desktop\Nowy folder1\Primary_GUI\Primary_GUI.ino:21:0:

C:\Users\Sibinski\Documents\Arduino\libraries\SuplaDevice/SuplaDevice.h:261:8: note: int SuplaDeviceClass::addRelayButton(int, int, int, bool, int)

    int addRelayButton(int relayPin1, int relayPin2, int type_button, bool hiIsLo, _supla_int_t functions);

        ^

C:\Users\Sibinski\Documents\Arduino\libraries\SuplaDevice/SuplaDevice.h:261:8: note:   candidate expects 5 arguments, 4 provided

C:\Users\Sibinski\Documents\Arduino\libraries\SuplaDevice/SuplaDevice.h:262:9: note: bool SuplaDeviceClass::addRelayButton(int, int, int)

    bool addRelayButton(int relayPin, int relayPin2, int type_button);

         ^

C:\Users\Sibinski\Documents\Arduino\libraries\SuplaDevice/SuplaDevice.h:262:9: note:   candidate expects 3 arguments, 4 provided

sketch\supla_board_settings.cpp: In function 'void supla_board_configuration()':

supla_board_settings.cpp:40:43: error: 'supla_rs_SavePosition' was not declared in this scope

     SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);

                                           ^

supla_board_settings.cpp:40:67: error: 'supla_rs_LoadPosition' was not declared in this scope

     SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);

                                                                   ^

supla_board_settings.cpp:40:91: error: 'supla_rs_SaveSettings' was not declared in this scope

     SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);

                                                                                           ^

supla_board_settings.cpp:40:115: error: 'supla_rs_LoadSettings' was not declared in this scope

     SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);

                                                                                                                   ^

exit status 1
'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'

Ten raport powinien zawierać więcej informacji jeśli w 
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"

bord settings

Kod: Zaznacz cały

  //    add_Relay(5);
//  add_Relay_Invert(5);
  
  //  add_Relay_Button_Invert(5, 14, CHOICE_TYPE);
  //  add_Relay_Button_Invert(13, 12, CHOICE_TYPE);
  
 // add_Relay_Button(5, 14, CHOICE_TYPE);
 // add_Relay_Button(13, 12, CHOICE_TYPE);
  
    add_Roller_Shutter_Relays(16, 5);
    add_Roller_Shutter_Buttons(0, 14, 12);
    SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);
  
  add_Sensor(4);
  add_Sensor(16);
  
  add_Roller_Shutter_Relays(4, 0);
    add_Roller_Shutter_Buttons(1, 13, 15);
    SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);
  
  add_Sensor(9);
  add_Sensor(10);
  
   add_DS18B20_Thermometer(2);
  //  add_DHT11_Thermometer(12);
   add_DHT22_Thermometer(1);
  
  //  SuplaDevice.addRelayButton(5, 14, INPUT_TYPE_BTN_MONOSTABLE, 0, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);

    add_Led_Config(LED_CONFIG_PIN);
Obrazek
Patryk
Posty: 2685
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Chodź jestem tu początkujący wydaje mi się że nie możesz mieć do tego samego GIPO przyporządkowanych różnych funkcji. I tak np nasz GIPO16 w
add_Roller_Shutter_Relays(16, 5);
oraz
add_Sensor(16);
Itd.
Ale mogę się mylić.
Sibikk
Posty: 366
Rejestracja: pn lis 07, 2016 12:42 pm
Lokalizacja: Katowice
Kontakt:

Patryk pisze: wt sty 15, 2019 6:20 pm Chodź jestem tu początkujący wydaje mi się że nie możesz mieć do tego samego GIPO przyporządkowanych różnych funkcji. I tak np nasz GIPO16 w
add_Roller_Shutter_Relays(16, 5);
oraz
add_Sensor(16);
Itd.
Ale mogę się mylić.
Masz rację, ale to nie to też to wyłapałem i zmieniłem ale dalej lipa.
Obrazek
cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

Podmieniles pliki w bibliotece suplaDevice na te od Espablo? Masz wersję paczki plytek 2.4.2?
Sibikk
Posty: 366
Rejestracja: pn lis 07, 2016 12:42 pm
Lokalizacja: Katowice
Kontakt:

cino111 pisze: wt sty 15, 2019 8:41 pm Podmieniles pliki w bibliotece suplaDevice na te od Espablo? Masz wersję paczki plytek 2.4.2?
Pobrałem z postu, ostatnia wersja jaką wrzucił. Czy coś jeszcze mam podmienić extra w tej paczce? Płytki mam z tego linku
http://arduino.esp8266.com/staging/pack ... index.json
Jeszcze raz zainstalowałem IDE wyczyściłem, biblioteki zrobiłem zgodnie z tym co wyczytałem w temacie.
Teraz mam

Kod: Zaznacz cały

exit status 1
'supla_rs_SavePosition' was not declared in this scope


Jak wy to robicie że Wam się kompiluje wszystko ja od kilku tygodni próbuje cokolwiek zdziałać i ani razu jeszcze mi się soft nie skompilował :lol:
Obrazek
krycha88
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

Espablo pisze: ndz sty 06, 2019 4:29 pm
krystianmen pisze: sob sty 05, 2019 4:03 pm dodaję sobie przekaźnik:
add_Relay_Invert(16)

start kontrolera
w chmurze przekaźnik domyślnie ustawiony na ON
digitalRead(16) zwraca 1
przełączam w chmurze na OFF
digitalRead(16) zwraca nadal 1
przełączam w chmurze na ON
digitalRead(16) zwraca 0
od tego momentu każde przełączenie w chmurze zwraca już poprawny stan, też tak macie ?
add_Relay_Invert opiera się na standardowej funkcji obsługi przekaźnika w SuplaDivace.
add_Relay_Button_Invert jest już robiona przeze mnie i tam nie powinno już być tego problemu.
Sprawdziłem add_Relay_Button_Invert niestety ale ma identyczny problem jak opisałem.

Macie jakieś rozwiązania tego problemu?

EDIT:
Problem jednak jest w pliku SuplaDevice.cpp, dla add_Relay_Button_Invert lub add_Button_Invert należy zmienić wartość domyślą na 1 a nie 0.

Kod: Zaznacz cały

void SuplaDeviceClass::iterate(void) {
...
for(a=0;a<Params.reg_dev.channel_count;a++) {                
    channel_pin[a].start = 1;
}
...
}

EDIT:
ostatecznie swój problem rozwiązałem poprawiając w SuplaDevice.cpp w metodzie void SuplaDeviceClass::iterate_relaybutton
z:

Kod: Zaznacz cały

channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0);
na:

Kod: Zaznacz cały

channelSetValue(channel_number, val1, 0);
może się komuś przyda ... :)
https://gui-generic-builder.supla.io/
cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

Oj przyda, przyda. Denerwujące to było.
Dziś przetestuję czy działa :D

PS. Może ktoś udostępnić kod button mono i bi do wklejenia bezpośrednio do programu? Robię obsługę wszystkiego w piwnicy na jednym module ArduinoMega i na tym sofcie nic nie zdziałam. Chcę mieć 10 termometrów DS, 2DHT, czujnik odległości do podajnika ekogroszku, sterowanie zaworem wody, termostat na bojler i obsługa pomp na grzejniki i podłogówkę.
Padło na Arduino bo już kiedyś zakupiłem jak jeszcze nie ogarniałem ESP, no i podepnę się kablem LAN, więc też będzie pewność, że nie zerwie mi połączenia. Dodatkowo logika 5V lepiej działa np z czujnikiem odległości HC-SR04. Ręczne włączniki jednak przydały by się w przypadku np. awarii RPI na którym mam własną instancję Supli.
cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

krystianmen pisze: śr sty 16, 2019 9:48 pm

EDIT:
ostatecznie swój problem rozwiązałem poprawiając w SuplaDevice.cpp w metodzie void SuplaDeviceClass::iterate_relaybutton
z:

Kod: Zaznacz cały

channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0);
na:

Kod: Zaznacz cały

channelSetValue(channel_number, val1, 0);
może się komuś przyda ... :)
Cześć
Na pewno to jest dobre rozwiązanie? Przy ustawieniach przekaźników na reset po załączeniu zasilania od razu się załączają. W aplikacji mam zapalone żarówki i faktycznie są włączone. Trzeba ustawić przekaźniki z pamięcią, ale nie zawsze to jest wskazane. Teraz ustawiłem jeden przekaźnik z pamięcią, a drugi jako reset i się wysypało. Cały czas pokazuje sieć do konfiguracji. Po wprowadzeniu danych i zapisaniu dalej pokazuje sieć "MODUŁ SUPLA"
Robiłem aktualizację online i dziś już nie będę wyciągał modułu do update po kablu :?
krycha88
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

cino111 pisze: pn sty 21, 2019 9:10 pm Cześć
Na pewno to jest dobre rozwiązanie? Przy ustawieniach przekaźników na reset po załączeniu zasilania od razu się załączają. W aplikacji mam zapalone żarówki i faktycznie są włączone. Trzeba ustawić przekaźniki z pamięcią, ale nie zawsze to jest wskazane. Teraz ustawiłem jeden przekaźnik z pamięcią, a drugi jako reset i się wysypało. Cały czas pokazuje sieć do konfiguracji. Po wprowadzeniu danych i zapisaniu dalej pokazuje sieć "MODUŁ SUPLA"
Robiłem aktualizację online i dziś już nie będę wyciągał modułu do update po kablu :?
Poprawiłem to w taki sposób, że przekaźniki domyślnie w chmurze są włączone oraz przekaźnik po podłączeniu zasilania ma odpowiedni stan. Zrobiłem to dla add_Relay_Button_Invert oraz add_Relay_Button.

Jak byś chciał sprawdzić to wrzucam SuplaDevice.cpp
Załączniki
SuplaDevice.zip
(10.8 KiB) Pobrany 215 razy
https://gui-generic-builder.supla.io/
Patryk
Posty: 2685
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Espablo pisze: wt sty 08, 2019 11:22 pm
wojtas567 pisze: wt sty 08, 2019 9:51 pm Wgrałem soft do toucha x2 i działa stabilnie nie ma klekotania przekaźników tak przy zaniku jak i powrocie wifi :)
Ale odkryłem inny problem a właściwie nawet dwa
  • po zaniku wifi nie da się zmienić stanu przekaźnika
  • nie da się też wejść w tryb konfiguracji bo nie ma resetu, nie jest to może duży problem bo dane można zmienić przez stronę ale...
No i odkryłeś tego babola o którym pisałem tutaj memberlist.php?mode=viewprofile&u=200, zanim go usunąłem :D Właściwie to już go opanowałem ale jeszcze nie udostępniłem kodu bo chcę go poprawić kosmetyczne.
Czy można już liczyć na rozwiązanie tego problemu ???
ODPOWIEDZ

Wróć do „Nowości”