Supla Scripts Powiadomienia 2.0

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Awatar użytkownika
wojtas567
Posty: 1954
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

pn wrz 02, 2019 5:01 am

Tak o ten soft mi chodziło
Pozdrawiam
Wojtek
piomar2
Posty: 270
Rejestracja: pt kwie 26, 2019 5:32 pm
Lokalizacja: Bukowice

pn wrz 02, 2019 6:59 am

Dzięki wielkie za odpowiedź. W moim przypadku to chęć poznania innego podejścia do tematu pushover. Moje rozwiązanie sprawdza się też znakomicie (supla - mega - wemos mini - pushover).

Pozdrawiam
Awatar użytkownika
wojtas567
Posty: 1954
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

pn wrz 02, 2019 7:15 am

Też testowałem inne rozwiązania i nawet były lepsze ale z supla nie chciały się zsynchronizować.
A takim rozwiązaniem wysyłam dane do domoticza i do pushover i wszystko ładnie śmiga. Moduł z bme od ostatniego wgrania aktualizacji softu śmiga już 33 dzień bez restartu :D
Wieczorem porównam z najnowszą wersją czy coś dodałem jeszcze w tym kawałku kodu.
Pozdrawiam
Wojtek
piomar2
Posty: 270
Rejestracja: pt kwie 26, 2019 5:32 pm
Lokalizacja: Bukowice

pn wrz 02, 2019 10:24 am

Uzupełniając sprawę dodaję jeszcze raz kod. Tym razem całościowy, jakiego używam. W supli mam arduino mega i z jego wyprowadzeń poprzez transoptory podaję sygnały wyzwalające na 3 wejścia wemosa D1 mini. Ten z kolei (z kodem poniżej) uruchamia pushovera.
Układ działa pewnie od około czerwca (zero problemów). 4 wejście uruchamiane jest kontaktronem przy drzwiach wejściowych do domu. Powiadamianie działa szybko i niezawodnie. To tyle.
Dzięki Wojtku za wymianę doświadczeń. Opisałem sprawę chyba dość przystępnie (może ktoś mniej "kumaty" od Ciebie) będzie zainteresowany. Czytałem, że ktoś szukał rozwiązania powiadomienia (otwarta furtka, brama do garażu itp.) to może sobie któreś z tych rozwiązań wykorzysta.

Pozdrawiam.

Kod: Zaznacz cały


#include <ESP8266WiFi.h>
WiFiClient client;

// Setup WiFi
const char* ssid = "xxxxx";
const char* password = "xxxxx"; 


// Pushover settings
char pushoversite[] = "api.pushover.net";
char apitoken[] = "xxxxxxxxxxxxxxxxxxx";
char userkey [] = "xxxxxxxxxxxxxxxxxxx";
char sound [] = "";
int length;
byte dl=0;
byte a=0;
byte b=0;
byte c=0;
byte d=0;

 /* pushover - Pushover (domyślnie)   8
bike - Rower                    4
bugle - TrÄ…bka                5  
cashregister - Kasa             12 
classical - Klasyczny           9   
cosmic - Kosmiczny              6
falling - Upada                 7
gamelan - Gamelan               7
incoming - Przychodzące         8    
intermission - Przerwa          12
magic - Magia                   5
mechanical - Mechaniczne        10  
pianobar - Piano Bar            8
siren - Syrena                  5
spacealarm - Alarm kosmiczny    10   
tugboat - Holownik              7
alien - Alien Alarm             5
climb - Wspinaczka              5
persistent                     10
echo - Pushover Echo            4
updown - Up Down                6
none - Brak (cichy)             4

*/

//--------------void setup()--------------------
void setup() {
   pinMode(2, OUTPUT);
   pinMode(2,HIGH);
   Serial.begin(115200);
  delay(10);
  Serial.print("Connecting to ");
  WiFi.begin(ssid, password);    
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print("......");
  }
  
  pinMode(1, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(2,LOW);
}

//------------void loop----------------
void loop() {
  
  //-----------------------------------
  if (digitalRead(1)==HIGH){
    a=0;
  }
  if (digitalRead(1)==LOW && a==0){
    pinMode(2,HIGH);
    dl=5;
    a=1;
    pushover("DRZWI !!!",1,"siren");
    pinMode(2,LOW);
    Serial.println("siren");
    }
  //-----------------------------------
  if (digitalRead(3)==HIGH){
    b=0;
  }
  if (digitalRead(3)==LOW && b==0){
    pinMode(2,HIGH);
    dl=7;
    b=1;
    pushover("tugboat",1,"tugboat"); 
    pinMode(2,LOW);
    Serial.println("tugboat");
    }
  //-----------------------------------   
if (digitalRead(4)==HIGH){
    c=0;
  }
  if (digitalRead(4)==LOW && c==0){
    pinMode(2,HIGH);
    dl=4;
    c=1;
    pushover("DZWONEK !!!",1,"bike"); 
    pinMode(2,LOW);
    Serial.println("bike");
    }
  //-----------------------------------
  if (digitalRead(5)==HIGH){
    d=0;
  }
   if (digitalRead(5)==LOW && d==0){
    pinMode(2,HIGH);
    dl=10;
    d=1;
    pushover("POŻAR !!!",1,"persistent"); 
    pinMode(2,LOW);
    Serial.println("bike");
    }
  //-----------------------------------
  
} 
 
// ---------Pushover settings------------------------------

  byte pushover(char *pushovermessage, int priority, char sound []) 
  {
     
 String message = pushovermessage;
 
//---- length = dł sound + 99 + message.length();---------
       length = dl + 99 + message.length();
 if(client.connect(pushoversite,80))
 {
   client.println("POST /1/messages.json HTTP/1.1");
   client.println("Host: api.pushover.net");
   client.println("Connection: close\r\nContent-Type: application/x-www-form-urlencoded");
   client.print("Content-Length: ");
   client.print(length);
   client.println("\r\n");
   client.print("token=");
   client.print(apitoken);
   client.print("&user=");
   client.print(userkey);
   client.print("&message=");
   client.print(message);
   client.print("&priority=");
   client.print(priority);
   client.print("&sound=");
   client.print(sound);
   
   while(client.connected())  
   {
     while(client.available())
     {
       char ch = client.read();
       Serial.write(ch);
     }
   }
 }  
}
 


SzymaneK
Posty: 18
Rejestracja: wt wrz 03, 2019 6:05 am

wt wrz 03, 2019 9:18 am

Witam

Mam problem z działaniem powiadomień, teoretycznie wszystko działa niestety tyko jeden raz po uruchomieniu SUPLA Notifications. Przesyła jedno powiadomienie po czym "cisza" dopiero jak ręcznie wyłączę i włączę "START" STOP" to powiadomienie się pojawi. Tylko znowu tylko jedno :/.
Miał może ktoś podobny problem?

Pozdrawiam.
Gucio2607.
Posty: 457
Rejestracja: wt sie 22, 2017 1:56 pm

wt wrz 03, 2019 10:22 am

Masz wyłączoną optymalizację baterii dla aplikacji automate?
Zainstalowane:
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
Awatar użytkownika
uchnast.michal
Posty: 250
Rejestracja: wt cze 04, 2019 11:37 am
Lokalizacja: Czeladź
Kontaktowanie:

wt wrz 03, 2019 10:55 am

Szkoda, że powiadomienia nie można zintegrować z pushover, który uważam za dużo lepszą alternatywę.
- automate ma duże opóźnienia oraz strasznie zżera baterię (na przykładzie mojego S8);
- wystarczająca ilość darmowych powiadomień w pushover;
- możliwość umieszczania url w komunikacie, który może posłużyć do zmiany stanu urządzenia;
SzymaneK
Posty: 18
Rejestracja: wt wrz 03, 2019 6:05 am

wt wrz 03, 2019 11:18 am

Gucio2607. pisze:
wt wrz 03, 2019 10:22 am
Masz wyłączoną optymalizację baterii dla aplikacji automate?
Tak tutaj wszystko jest ok. Optymalizacja wyłączona.
Co więcej od strony webowej wygląda na to, że skrypt się wykonuje... :/
Więc wychodzi na to że coś w telefonie jest spaprane, pewnie znając mnie coś namieszałem....
Gucio2607.
Posty: 457
Rejestracja: wt sie 22, 2017 1:56 pm

wt wrz 03, 2019 11:35 am

A jaki masz telefon?
Zainstalowane:
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
SzymaneK
Posty: 18
Rejestracja: wt wrz 03, 2019 6:05 am

wt wrz 03, 2019 1:30 pm

Gucio2607. pisze:
wt wrz 03, 2019 11:35 am
A jaki masz telefon?
Xiaomi Mi Note 3
ODPOWIEDZ