Modyfikacja przykładu WebInterface Arduino

User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Hej. Chciałbym małej pomocy. Tak jak w temacie. Przyklady z biblioteki Arduino przerobiłem prawie wszystkie, o dziwo chodzą :) . Czy mógłby mi ktoś podpowiedzieć, co musiałbym dodać, jaką komendę, aby moduł mi się zgłaszał do serwera pod moją nazwą, a nie esp32 lub esp8266. Czy mógłby mi ktoś podpowiedzieć też, czy można ten przykład zmodyfikować tak, aby w jakiś łatwy sposób dodać opcję resetu modułu z poziomu webserwera? Wiem, że mogę sobie wygenerować oprogramowanie w GUI Generic Builder i tam będę wszystko miał, ale chciałbym się pobawić i może w jakiś prosty sposób dodać te funkcje do programu.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Nazwę możesz ustawić tą metodą:
https://github.com/SUPLA/supla-device/b ... ice.h#L100

Trzeba wywołać przed metoda begin.

Odnośnie resetowania, to standardowo powinien być przycisk save&restart
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Dobra będę kontynuował tutaj. No więc tak dodałem w sekcji setup:
SuplaDevice.setName("Moja nazwa"); oczywiście przed SuplaDevice.begin();
No i tak urządzenie rozgłasza sieć wifi o nazwie takiej jaką ustawiłem, jak chcę dodać urządzenie do serwera poprzez aplikację, to aplikacja nie wykrywa modułu. Jak podłączę się poprzez webserwer do urządzenia i ustawię wszystkie parametry to urządzenie łączy się normalnie z serwerem. załączam kod może ktoś znajdzie co żle zrobiłem

Code: Select all

#define Dioda_Led 2
#define Przycisk_Konfiguracja 3
#define DHT1PIN 5
#define DHT1TYPE DHT11
#define RELAY_GPIO1 16
#define RELAY_GPIO2 14
#define RELAY_GPIO3 13
#define RELAY_GPIO4 0

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/sensor/DHT.h>
#include <supla/sensor/DS18B20.h>


// Choose where Supla should store roller shutter data in persistent memory
// We recommend to use external FRAM memory
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom;
// #include <supla/storage/fram_spi.h>
// Supla::FramSpi fram(STORAGE_OFFSET);

Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;

Supla::Device::StatusLed statusLed(Dioda_Led, true); // inverted state
Supla::EspWebServer suplaServer;


// HTML www component (they appear in sections according to creation
// sequence)
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

void setup() {

  Serial.begin(115200);
  SuplaDevice.setName("Sterownik");
  // Channels configuration
  // CH 1 - Relay

  auto r1 = new Supla::Control::Relay(RELAY_GPIO1);
  auto r2 = new Supla::Control::Relay(RELAY_GPIO2);
  auto r3 = new Supla::Control::Relay(RELAY_GPIO3);
  auto r4 = new Supla::Control::Relay(RELAY_GPIO4);
  auto buttonCfgRelay = new Supla::Control::Button(Przycisk_Konfiguracja, true, true);
  new Supla::Sensor::DHT(DHT1PIN, DHT1TYPE);
  new Supla::Sensor::DS18B20(12); //channel 1 czujnik kolektora gpio 12

  r1->getChannel()->setDefault(SUPLA_CHANNELFNC_LIGHTSWITCH);
  r2->getChannel()->setDefault(SUPLA_CHANNELFNC_LIGHTSWITCH);
  r3->getChannel()->setDefault(SUPLA_CHANNELFNC_POWERSWITCH);
  r4->getChannel()->setDefault(SUPLA_CHANNELFNC_POWERSWITCH);

  
  buttonCfgRelay->configureAsConfigButton(&SuplaDevice);

  // configure defualt Supla CA certificate
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
 
  SuplaDevice.begin();
}

void loop() {
  SuplaDevice.iterate();
}
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Bo aplikacja dodaje tylko urządzenia o określonych nazwach.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Robert Błaszczak wrote: Fri Dec 09, 2022 5:46 pm Bo aplikacja dodaje tylko urządzenia o określonych nazwach.
Super dzięki, już działa jak zmieniłem nazwę :D.
A teraz jeszcze jakby sposób na FactoryReset ktoś dał przyklad😉. Oczywiście z poziomu webserwera 😉
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

nebraska wrote: Fri Dec 09, 2022 7:03 pm Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
nebraska
Posts: 204
Joined: Thu Dec 08, 2022 3:00 pm
Been thanked: 1 time

Post

veeroos wrote: Fri Dec 09, 2022 8:41 pm
nebraska wrote: Fri Dec 09, 2022 7:03 pm Dołączam się do pytania. Z ciekawości na jaką nazwę zmieniłeś?
Też chciałbym się pobawić z konfigiem jeszcze dobrze nie kumam od niedawna zacząłem z Supla.
Chciałbym dodać do konfigu pola kluczy, żebym mógł wpisać sobie klucze powiadomień na surowym kodzie działa ale chciałbym mieć możliwość konfigu zmieniać klucze ponieważ w firmie potrzebuje użyć i czasami z konfigu zmieniać na szybko klucze. Fajnie by było jakby ktoś podarował przykładem kodu czy pomógł jak to ugryźć.
Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Dzięki za info.
Tak wiem ale ten przykład nic nie daje poza tym że masz tylko do wpisania nazwę, hasło, adres serwera Supli i email.
Trzeba mieć kod źródłowy żeby móc dodać jakaś listę dodatkowych pól. Nigdzie nie znalazłem źródła przykładu kodu z web serwer, szkieletu programu żeby móc dopisywać.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

veeroos wrote: Fri Dec 09, 2022 8:41 pm Nazwę dałem Supla- po myślniku swoją nazwę, kawałek mojego przykładowego kodu masz parę postów wyżej. Wszystko działa jak należy, brakuje mi tylko resetu, powtórne przytrzymanie przycisku configu działa jak save + restart
Krótkie wciśnięcie przycisku config powinno zrobić tylko restart modułu.
Długie przytrzymanie (trzymać aż się nie zresetuje - około 5s) powinno zresetować do ustawień fabrycznych i zrobić reset urządzenia. Po takim zabiegu powinno wejść automatycznie w tryb konfiguracyjny i mieć puste dane.

Jeśli działa tam coś inaczej, to poprawię.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

nebraska wrote: Fri Dec 09, 2022 10:14 pm Tak wiem ale ten przykład nic nie daje poza tym że masz tylko do wpisania nazwę, hasło, adres serwera Supli i email.
Trzeba mieć kod źródłowy żeby móc dodać jakaś listę dodatkowych pól. Nigdzie nie znalazłem źródła przykładu kodu z web serwer, szkieletu programu żeby móc dopisywać.
WebInterface to przykład, w którym jest dodany "web server" i przykładowe pola - w kodzie są to elementy Supla::Html ( https://github.com/SUPLA/supla-device/b ... ce.ino#L71 ).

Wszystkie obecnie dostępne "elementy HTML" są tutaj:
https://github.com/SUPLA/supla-device/t ... twork/html

Wiem, że nie ma dokumentacji i nie ma przykładów. Postaram się coś dodać, ale dajcie mi na to kilka dni.
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”