Supla Scripts Powiadomienia 2.0

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
wojtas567
Posts: 1717
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Mon Sep 02, 2019 5:01 am

Tak o ten soft mi chodziło
Pozdrawiam
Wojtek
piomar2
Posts: 81
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Mon Sep 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
piomar2
User avatar
wojtas567
Posts: 1717
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Mon Sep 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
Posts: 81
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Mon Sep 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.

Code: Select all


#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);
     }
   }
 }  
}
 


piomar2
SzymaneK
Posts: 3
Joined: Tue Sep 03, 2019 6:05 am

Tue Sep 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.
Posts: 413
Joined: Tue Aug 22, 2017 1:56 pm

Tue Sep 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
uchnast.michal
Posts: 110
Joined: Tue Jun 04, 2019 11:37 am
Location: Czeladź
Contact:

Tue Sep 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;
14 x sonoff basic, 1 x SV, 1 x R Pi zero, 2 x NodeMcu v3
SzymaneK
Posts: 3
Joined: Tue Sep 03, 2019 6:05 am

Tue Sep 03, 2019 11:18 am

Gucio2607. wrote:
Tue Sep 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.
Posts: 413
Joined: Tue Aug 22, 2017 1:56 pm

Tue Sep 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
Posts: 3
Joined: Tue Sep 03, 2019 6:05 am

Tue Sep 03, 2019 1:30 pm

Gucio2607. wrote:
Tue Sep 03, 2019 11:35 am
A jaki masz telefon?
Xiaomi Mi Note 3
Post Reply