Powiadomienie na panelu i SMS

Zaczęty przez Ms_ki, Wrzesień 21, 2017, 15:03:29

Poprzedni wątek - Następny wątek

Ms_ki

Witam
Chciałem ustawić powiadomienie na zewnętrzny buzer kiedy I9 drzwi jest otwarte więcej niz 120 s oraz wysłać powiadomienie na panel oraz SMS na dwa numery tel ale niestety mam problem.

Buzer działa tak jak chcę nie ma problemu natomiast wysłanie powiadomienia na Panel jak i SMS nie działa. Poniżej przesyłam skrypt logiki.
Panel ma oczywiście zaznaczoną opcję wysyłania powiadomien przez logic procesor


int I9;
int M1;
int O3;
main(){
gbenv();
O3=geto(3);
while(1){
gbenv();
I9=geti(9);
O3=geto(3);
if(M1>=120){
PRINT("Otwarte Drzwi Wejsciowe");
SMS("Otwarte Drzwi Wejsciowe $1,2");
};
M1=tond(0,I9,0,120);
O3=blnk(1,M1,0,5);
seto(3,O3);
};
};

RobertH

M1 nigdy nie spełni >=120 bo może być '0' lub '1'.
Czas 120s już się odliczył w 'tond'
więc powinno być M1 _I (zbocze narastające)
żeby było tylko jedno powiadomienie.

Ms_ki

Hmm poprawiłem wg wskazówki ale niestety powiadomienie ani sms nie idzie niestety.


mirekgrz

Czy mozna wogole zasymulowac wyslanie sms'a? osobiscie mam z tym problem

robertm

Samo wysłanie SMS -ów można sprawdzić w zakładce Podgląd Online - Test wysłania SMS.

robertm

@Ms_ki

Proszę o przesłanie pełnej konfiguracji na e-mail. Powinno wy zrzutu wszystko działać.
Czy w pamięci zdarzeń jest jakaś informacja o błędach ?

Ms_ki


robertm


Ms_ki

Witam

Kiedy się pojawi poprawka aplikacji OPTIMAGSM Manager ponieważ nie da się programować na niej z marszu ponieważ są błędy. Kiedys walczyłem z tematem wysyłania komunikatów i  nie wychodziło a dopiero po wysłaniu do serwis@ropam pomogła poprawka kodu bo jest bąd w apce a dziś znów mam ten sam problem pisze skrypt i nie działa wysłanie komunikatu sms ani na panel. znowu jakiś błąd się generuje w kodzie. Strach wstawic optime w jakiejś aplikacji bo czasami bez pomocy serwisu się nie obędzie...


RobertH

Nie ma żadnego błędu, skrypt z kreatora jest generowany 'po kolei'.
Niektóre zmienne, funkcje ustawiane w skrypcie i wykorzystywane kilka razy trzeba przesunąć w odpowiednie miejsce
(np. jeżeli są wywoływane a także zerowane)

Ms_ki

rozumiem ale nie ma nigdzie "how to" jak pisać skrypty czy tez na co zwracać uwage. W takiej sytuacji strach sie brać za programowanie optimy na coś bardziej złożonego bo gdzie tu szukac później błędów.

reasumując napisałem skrypt powiadamiania o otwartych drzwiach wg instrukcji i zonk .. dziś mam dość niby prosta rzecz a nie do przejścia..

RobertH

jak Pan dostał poprawkę to tam było opisane co zostało zmienione,

takie tematy dotyczą zazwyczaj zerowania jakieś zmiennej a do przykładów jest dołączany także skrypt (listing) więc wystarczy porównać kilka linii kodu

Ms_ki

Panie Robercie tak był przykład i polegało na wykasowaniu  2  linii chyba. Dane gdzieś z czasem mi przepadły a teraz pisząc logikę dla innego klienta niestety nie działa.. Przykłady skryptów nic mi nie mówią jesli nie zna się podstaw, poprostu nie ma na czym bazować czytając te skrypty.

Juz kiedys chciałem dla przykładu sterować oświetleniem na PLC z paneli i z wlącznika i niestety mimo wielu skryptów poddałem się i docelowo poszła integra i dodatkowy kabel ...i tak klient płaci...... Przepraszam ale z mojego punktu widzenia jeśli sa jakies podstawy opisane to szybko mozna dana zasadę poznać a jeśli nie to się odpuszcza bezowocne drążenie tematu. Założe się że wielu instalatorów było by zainteresowanych jakimś instruktażem jak pisać i jak powinny być zbudowane skrypty dla optimy wraz z przykładami błędów.

RobertH

To jest język C programowania.

I naprawdę większość instalatorów korzysta z kreatora bo dla std. funkcji wszystko jest tam prawidłowo generowane.
Większość not aplikacyjnych oparta jest o kreatora.

A jak ktoś już generuje w kod to niestety trzeba poznać zasady jeżyka C.

Ms_ki

no i tu się zrozumieliśmy w kwestii programowania centralki tj ja jak zdecydowana większośc korzystam z kreatora i niestety nie zawsze się to sprawdza ...

Poniżej skrypt dla mojego przykładu (problem z wysłaniem smsa i komunikatu o otwartych drzwiach) tu się generator wyłożył niestety. Nie chcę Panu psuć nerwów ale jak chce się coś zrobioć i ni wychodzi mimo postepowania zgodnie instrukcją to krew zalewa ;-) ogólnie polubiłem optimę ale jak mam coś przerabiać i dokładać logikę to mnie gęsia skóra wychodzi ;-)

int as1;
int as1p;
int I9;
int ip1;
int ip1p;
int M1;
int M1p;
int O25;
int O3;
int O4;
int tk1;
int tk1p;
int tk2;
int tk2p;
main(){
gbenv();
M1p=M1;tk1p=tk1;tk2p=tk2;as1p=as1;p1p=p1;ip1p=ip1;O25=geto(25);
O3=geto(3);
O4=geto(4);
while(1){
gbenv();
I9=geti(9);
O25=geto(25);
O3=geto(3);
O4=geto(4);
if((M1p==0&&M1==1)){
PRINT("Otwarte Drzwi Wejsciowe");
SMS("Otwarte Drzwi Wejsciowe $1,2");
};
if((tk2p==0&&tk2==1)){
O4=1;
};
if((tk2p==1&&tk2==0)){
O4=0;
};
if(ip1==1||(ip1p==0&&ip1==1)){
O25=1;
};
if(ip1==0||(ip1p==1&&ip1==0)){
O25=0;
};
if((as1p==1&&as1==0)&&tk1==1){
O25=1;
};
if((tk1p==0&&tk1==1)&&as1==0){
ARMN(1);
};
if((tk1p==1&&tk1==0)&&as1==0){
DISARM(0);
};
M1=tond(0,I9,0,120);
O3=blnk(1,M1,0,5);
as1p=as1;ip1p=ip1;M1p=M1;tk1p=tk1;tk2p=tk2;
seto(3,O3);
seto(4,O4);
seto(25,O25);
};
};