Supla Pushover x4 cd

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

Spróbuję tak żeby nie na mieszać bo się faktycznie wcześniej trochę zrobił "misz masz" w rozmowie.
Poniżej jest kod który przysłał klew i on działa oczywiście. Ja wcześniej też wysyłałem mniej więcej to samo tylko jako "organ do testów" dla klewa, więc jeśli wziąłeś ten poniżej czyli ten który uporządkowany odesłał klew to sprawy z "client1" o której napisałem nie ma, bo klew wyrzucił to co było zbędne min. te zakomentowane linie o których napisałem. Wtedy pozostaje Ci faktycznie poczekać aż klew coś poradzi. Bo teoretycznie na bibliotece Pushover tylko i wyłącznie z wprowadzoną tą komendą zmniejszająca bufory powinno działać. Sprawa dziwna bo u mnie już działa wszystko z wykorzystaniem EspWebServer i Pushover równolegle z SUPLĄ i co tam sobie jeszcze można wymyślić.
To co napisałem wcześniej o 'client1" dotyczy ewentualnego przypadku jeśli korzystasz z tego kodu który ja podsyłałem do klewa jako "organ" do testu i masz odkomentowaną linię która potencjalnie mogła by generować komunikat błędu wysłania pushover.
Więc podsumowując.
Ten kod poniżej plus wpisanie jednej linii w bibliotece pushover czyli "client->setBufferSizes(1024, 512);" i powinno działać. Lub podmień bibliotekę na tą co wysłałem a tam już ta komenda co podał klew jest wpisana.
I jeszcze taka drobna wzmianka jak już kod będzie Ci działał , kibicuję żeby się udało i u Ciebie. W kodzie jest taka linia "po.setDevice("galaxynote8");" Pewnie zauważyłeś, ale jeśli nie to jest to linia która wysyła wiadomość na konkretny zarejestrowany w pushover telefon. Nie wiem czym skutkuje wpisanie błędnego bo nie sprawdzałem , ale zwróć na to uwagę. Ja mam u siebie zakomentowaną tą linie teraz i wiadomości przychodzą.
klew wrote: Wed Apr 19, 2023 8:13 pm Poniżej lekko wyczyszczony kod z niektórych "zbędnych" zmiennych globalnych, które trochę pamięci mogły zjadać.

Code: Select all

#include <Arduino.h>
#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/control/action_trigger.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/network/html/custom_text_parameter.h>
//// #include <supla/device/supla_ca_cert.h>
//// #include <supla/events.h>
#include <supla/storage/eeprom.h>
#include <supla/sensor/binary.h>

#include <Pushover.h>

Supla::Eeprom eeprom;
Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;
Supla::EspWebServer suplaServer;         
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

#define RELAY_GPIO 12           // D6
#define BUTTON_CFG_RELAY_GPIO 0 // D3
#define LED 13                  // D7
#define BUTT 5                  // D1

bool stan_alarmu = false;

char PUSH_USER[200] = {};
char PUSH_API_KEY[200] = {};
const char PARAM1[] = "param1"; // PUSH_API_KEY
const char PARAM2[] = "param2"; // PUSH_USER

// Supla::Control::Relay *r1 = nullptr;
// Supla::Sensor::VirtualBinary *r2 = nullptr;
// Supla::Control::ActionTrigger *at1 = nullptr;
// RH_ASK driver(2000, 4, NOT_A_PIN); // ESP8266: do not use pin 11  D2

enum NoweAkcje
{
    MOJA_AKCJA_1,
    MOJA_AKCJA_2
};

class MojaAkcja : public Supla::ActionHandler {
 public:
  MojaAkcja(){};

  void handleAction(int event, int action) override {
    // SUPLA_LOG_DEBUG("Handle action: %d %d", event, action);
    if (action == MOJA_AKCJA_1) {
      // SUPLA_LOG_DEBUG("MOJA_AKCJA_1_START!");
      digitalWrite(LED, HIGH);
      Pushover po = Pushover(PUSH_API_KEY, PUSH_USER, UNSAFE);
      po.setMessage("Testnotification");
      po.setDevice("galaxynote8");
      po.setTitle("kuku");
      po.setSound("bike");
      if (po.send()) {
        SUPLA_LOG_DEBUG("Pushover send success!");
      } else {
        SUPLA_LOG_DEBUG("Pushover send failed!");
      }

      Serial.println(PUSH_API_KEY);
      Serial.println(PUSH_USER);
    }
    if (action == MOJA_AKCJA_2) {
      digitalWrite(LED, LOW);
      SUPLA_LOG_DEBUG("MOJA_AKCJA_1_STOP!");
    }
  }
};

void setup()
{
    Serial.begin(9600);
    wifi.enableSSL(false);

    new Supla::Html::CustomTextParameter(PARAM1, "Pushover API Key", 100);
    new Supla::Html::CustomTextParameter(PARAM2, "Pushover USER Key", 100);
    //new Supla::Html::CustomTextParameter(PARAM2, "Pushover Sound", 100);

    pinMode(LED, OUTPUT);
    Supla::Sensor::Binary *r2 = new Supla::Sensor::Binary(BUTT, true, true);
    auto buttonCfgRelay =
        new Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, false, true);
    MojaAkcja *custMojaAkcja = new MojaAkcja;
    r2->addAction(MOJA_AKCJA_1, custMojaAkcja, Supla::ON_TURN_ON);
    r2->addAction(MOJA_AKCJA_2, custMojaAkcja, Supla::ON_TURN_OFF);
    buttonCfgRelay->setHoldTime(5000);
    buttonCfgRelay->setMulticlickTime(500);
    buttonCfgRelay->addAction(Supla::TOGGLE_CONFIG_MODE, SuplaDevice, Supla::ON_HOLD);

    ////SuplaDevice.setSuplaCACert(suplaCACert);
    ////SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
    SuplaDevice.setName("Pushover Garaż_woda");
    SuplaDevice.begin();

    if (Supla::Storage::ConfigInstance()->getString(PARAM1, PUSH_API_KEY, 200))
    {
        SUPLA_LOG_DEBUG(" **** Param[%s]: %s", PARAM1, PUSH_API_KEY);
    }
    else
    {
        SUPLA_LOG_DEBUG(" **** Param[%s] is not set", PARAM1);
    }

    if (Supla::Storage::ConfigInstance()->getString(PARAM2, PUSH_USER, 200))
    {
        SUPLA_LOG_DEBUG(" **** Param[%s]: %s", PARAM2, PUSH_USER);
    }
    else
    {
        SUPLA_LOG_DEBUG(" **** Param[%s] is not set", PARAM2);
    }
}

void loop()
{
    SuplaDevice.iterate();
}

Pushover.rar
You do not have the required permissions to view the files attached to this post.
nebraska
Posts: 101
Joined: Thu Dec 08, 2022 3:00 pm

Post

zzrr podmieniłem bibliotekę i dalej to samo. Wgrałem twój kod co teraz wysłałeś tylko zmieniłem po prostu na przycisk jak wciskam wyslij powiadomienie. Jaką wersję płytke board dla 8266 masz? Ja korzystam 3.0.2? o ile to ma jakieś znaczenie?
U mnie na ESP8266 w ogole nie działa z Supla z Web Server czy bez niego jak wpisuje dane w programie.
Działa tylko na ESP32 z Supla.

Code: Select all

#include <Arduino.h>
#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
#include <supla/control/relay.h>
#include <supla/control/button.h>
#include <supla/control/action_trigger.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/network/html/custom_text_parameter.h>
//// #include <supla/device/supla_ca_cert.h>
//// #include <supla/events.h>
#include <supla/storage/eeprom.h>
#include <supla/sensor/binary.h>

#include <Pushover.h>

Supla::Eeprom eeprom;
Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;
Supla::EspWebServer suplaServer;
Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;
Supla::Html::StatusLedParameters htmlStatusLed;

#define STATUS_LED_GPIO 2
#define BUTTON_CFG_RELAY_GPIO 0  // kilk x5 Tryb CFG


bool stan_alarmu = false;

char PUSH_USER[200] = {};
char PUSH_API_KEY[200] = {};
const char PARAM1[] = "param1"; // PUSH_API_KEY
const char PARAM2[] = "param2"; // PUSH_USER

Supla::Control::Button *button_zam = nullptr; //{};
Supla::Control::Button *button_otw = nullptr; //{};


enum default_actions {MOJA_AKCJA, MOJA_AKCJA2};
class addedActionsClass : public Supla::ActionHandler, public Supla::Element {
  public: addedActionsClass() {}
    void handleAction(int event, int action) {

      if (action == MOJA_AKCJA) {
        Serial.println("Przycisk 1");
        // SUPLA_LOG_DEBUG("MOJA_AKCJA_1_START!");
        Pushover po = Pushover(PUSH_API_KEY, PUSH_USER, UNSAFE);
        po.setMessage("Powiadomienie");
        //po.setDevice("galaxynote8");
        po.setTitle("drzwi");
        po.setSound("bike");
        if (po.send()) {
          SUPLA_LOG_DEBUG("Pushover send success!");
        } else {
          SUPLA_LOG_DEBUG("Pushover send failed!");
        }
        Serial.println(PUSH_API_KEY);
        Serial.println(PUSH_USER);
      }
      if (action == MOJA_AKCJA2) {
        Serial.println("Przycisk 2");
      }
    }
};
addedActionsClass *custAct = new addedActionsClass;


void setup()
{
  Serial.begin(9600);
  wifi.enableSSL(false);

  new Supla::Html::CustomTextParameter(PARAM1, "Pushover API Key", 100);
  new Supla::Html::CustomTextParameter(PARAM2, "Pushover USER Key", 100);
  //new Supla::Html::CustomTextParameter(PARAM2, "Pushover Sound", 100);
  //---- Przycisk Konfiguracji -----------------------------------------------------------
  auto buttonCfgRelay = new Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);
  buttonCfgRelay->setHoldTime(1000);
  buttonCfgRelay->setMulticlickTime(800);
  buttonCfgRelay->configureAsConfigButton(&SuplaDevice);
  buttonCfgRelay->addAction(Supla::TOGGLE_CONFIG_MODE, SuplaDevice, Supla::ON_CLICK_5);
  //----------------------------------------------------------------------------------------
  button_zam = new Supla::Control::Button(5, true, true);
  button_otw = new Supla::Control::Button(4, true, true);
  button_zam->setMulticlickTime(800, false);
  button_otw->setMulticlickTime(800, false);

  button_zam ->addAction(MOJA_AKCJA, custAct, Supla::ON_PRESS);
  button_otw ->addAction(MOJA_AKCJA2, custAct, Supla::ON_PRESS);

  ////SuplaDevice.setSuplaCACert(suplaCACert);
  ////SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
  SuplaDevice.setName("Pushover Garaż_woda");
  SuplaDevice.begin();

  if (Supla::Storage::ConfigInstance()->getString(PARAM1, PUSH_API_KEY, 200))
  {
    SUPLA_LOG_DEBUG(" **** Param[%s]: %s", PARAM1, PUSH_API_KEY);
  }
  else
  {
    SUPLA_LOG_DEBUG(" **** Param[%s] is not set", PARAM1);
  }

  if (Supla::Storage::ConfigInstance()->getString(PARAM2, PUSH_USER, 200))
  {
    SUPLA_LOG_DEBUG(" **** Param[%s]: %s", PARAM2, PUSH_USER);
  }
  else
  {
    SUPLA_LOG_DEBUG(" **** Param[%s] is not set", PARAM2);
  }
}

void loop()
{
  SuplaDevice.iterate();
}
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

Więc sprawa wygląda tak. Ja nie robiłem tego w Arduino IDE. Ale zrobiłem tak... Przeniosłem kod programu do Arduino IDE i na tym co miałem bez ruszania czegokolwiek skompilowałem i jak wysłałem na urządzenie to mi nawet nie chciało połączyć ze stroną do konfiguracji. Dodałem bibliotekę 107-ArduinoLittlefs 0.4.0 i program cały ruszył wydawało by się że jak należy. Niestety przy zadziałaniu jest dokładnie to co opisałeś wcześniej. Czyli jest reakcja na kanale, powiedzmy dioda się w akcji zaświeca a pushower komunikat "Pushover send failed"
JA w PlatformIO nie mam czegoś takiego jak wersje płytek ale popatrzę czy da to jakoś porównać dlaczego w AIDE nie działa. Ale coś mi się zdaje że to będzie kwestia bibliotek.
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

nebraska wrote: Sat Apr 22, 2023 7:48 am zzrr podmieniłem bibliotekę i dalej to samo.
Udało mi się uruchomić to również na AIDE. Musisz dodać tą bibliotekę co napisałem w poprzednim poście i wrzucić bibliotekę Pushover do katalogu ze sketchem programu, Tam gdzie AIDE zapisał sobie projekt. Prawdopodobnie AIDE brał sobie dane z jakiejs innej lokalizacji zamiast z tej biblioteki którą edytowałeś, lub nie miałeś biblioteli Little Fs.
Wersja płytek 3.1.2
Supladev 23.4
107- ArduinoLittleFs 0.4.0
Działa EspWebServer jednocześnie z Pushower i Suplą
nebraska
Posts: 101
Joined: Thu Dec 08, 2022 3:00 pm

Post

A widzisz to dużo zmienia bo mamy dwa różne środowiska programowania. Dlatego zastanawiałem się dlaczego u ciebie działa a u mnie nic.
zeby wszystko było tak samo jak mamy to jeszcze napisz jakiej wersji Arduino używasz?
Pobrałem tą bibliotekę będe spr
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

Ale co masz na myśli wersja arduino? Wersja środowiska? Jeśli tak To na Arduino IDE 2.1.0 to sprawdziłem
nebraska
Posts: 101
Joined: Thu Dec 08, 2022 3:00 pm

Post

Tak dokładnie o to mi chodziło.
Ok użyje tego samego mam nadzieję że w końcu coś ruszy
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

Ruszy. No jak może nie ruszyć... :)
nebraska
Posts: 101
Joined: Thu Dec 08, 2022 3:00 pm

Post

Nic nie działa. :cry:
zzrr
Posts: 525
Joined: Wed Oct 26, 2022 7:35 pm

Post

Ale jak nic??? :shock:

Return to “Pomysły i koncepcje”