TAS:esempi

From twidunode wiki
Jump to: navigation, search

Townet Alerting System : Esempi

Invio messaggio di Alert con Mirotik RouterOS

In questo esempio è riportato uno script che invia un messaggio ogni volta che la CPU sale oltre una certa soglia. Il messaggio non viene mandato in modo ripetuto se il valore persiste oltre la soglia ed è resettato qualora scende.

global TASList MyList
global TASAddress https://iot.mywaver.it/townetalert/message/
global MessageSent;


/system resource

global CPULoad ([get cpu-load]);


if ($CPULoad > 50) do={

:if ($MessageSent = 0) do={


:local MessageToSend "CPU Load Over Limits"; :local Severity 2;

:local MessageEncoded

:for i from=0 to=([:len $MessageToSend] - 1) do={  :local char [:pick $MessageToSend $i]  :if ($char = " ") do={ :set $char "%20" }  :if ($char = "-") do={ :set $char "%2D" }  :set MessageEncoded ($MessageEncoded . $char) }


:local url ($TASAddress."\?list=".$TASList."&message=".$MessageEncoded."&severity=".$Severity); :put $url;

/tool fetch url=$url dst-path=TAS.txt; :set MessageSent 1; } } else={ :set MessageSent 0; }

put $CPULoad;
put $MessageSent;

Esempio di invio alert utilizzando la funzionalità Netwatch di Mikrotik

Host: [ip dell'host da controlare] Interval: 00:05:00 Timeout: 1000

UP /tool fetch dst-path=netwatch.txt http-data="{\"message\":\"Telecamera up\",\"list\":\"ListaTEST\"}" url=https://iot.mywaver.it/townetalert/message/

DOWN /tool fetch dst-path=netwatch.txt http-data="{\"message\":\"ATTENZIONE! Telecamera Down\",\"list\":\"ListaTEST\"}" url=https://iot.mywaver.it/townetalert/message/

Invio di un messaggio con Node-Red

Se nella rete sotto monitoraggio è presente un Control-Node basato su Node-Red il seguente esempio riporta come effettuare l'invio di un messaggi oalla cloudutilizzando un pulsante di iniezione.

Node-01.png

Esempio completo

00-inject.png

questo nodo permette di inizializzare il processo.

Nel nostro esempio è più che sufficente l'implementazione base con l'innesco eseguito ad ogni click. E' ovvio che in un ambiente di produzione dovremo prevedere un controllo ciclico di altra natura.


02-functionnode.png

Questo nodo è usato per estrarre il timestamp dal nodo precedente e preparare la chiamata verso il server IoT.

Fare attenzione a come è composto il payload

var NewPayLoad = {"message":Message, "list":"townet12345"};

Che contiene il messaggio da inviare e il nome della lista a cui recapitare il messaggio.


03 httprequest.png

Questo nodo effettua la chiamata vera e propria al server passando il contenuto del payload.

Il risultato dell'operazione può essere passato ad un nodo di debug per essere ispezionato.