Accesso / Registrazione

Accedi o registrati su RaspController

Per inviare notifiche dal Raspberry Pi all’app RaspController devi essere registrato.

Quindi apri l’app, vai alla sezione “Notifiche Raspberry Pi” e registrati o accedi.

La funzione “Notifiche” è disponibile solo nella versione PRO dell’applicazione.

Dall’interfaccia dell’app prendi nota della User API Key, ti servirà sul Raspberry Pi per inviare notifiche.

Per inviare e ricevere notifiche, sia il Raspberry Pi che RaspController devono essere connessi a Internet.

Scarica la libreria

Scarica e installa la libreria di notifica sul tuo Raspberry Pi

Sul tuo Raspberry Pi scarica la libreria RaspController per le notifiche digitando dal terminale:

wget -O raspc_notif_lib_v1.0.5.tar.gz www.egalnetsoftwares.com/_data/raspcontroller/raspc_notif_lib_v1.0.5.tar.gz

Estrai i files digitando:

tar -xzf raspc_notif_lib_v1.0.5.tar.gz

Vai alla cartella:

cd raspc_notif_lib

Installa la libreria python:

sudo python3 install.py

cpu_temp.py

Esempio di codice in python per inviare una notifica quando si verifica un evento

from raspc_notif import notif
from time import sleep
import subprocess


#Enter the User API Key you find in the RaspController app
sender = notif.Sender(apikey = "zyiFGwzW6wYzincCHTSiROS5dwl1-l_VDmpjjpN3k_mdsYrB6vFP_RCF9t6kx_7TdYvWmQCM2")


#Infinite loop to continuously get data
while True:
	
	#Gets data once every 5 seconds
	sleep(5)
	
	#Gets the CPU temperature
	cpu_temp_str = subprocess.check_output(["cat", "/sys/class/thermal/thermal_zone0/temp"]).decode("utf-8").strip()
	cpu_temp = float(cpu_temp_str) / 1000
	
	#Check if the temperature exceeds a certain threshold
	if cpu_temp > 70:
		
		#Send notification to RaspController
		notif_message = "The CPU has reached the temperature of {0}°C".format(cpu_temp)
		notification = notif.Notification("Attention!", notif_message, high_priority = True)
		result = sender.send_notification(notification)
		
		#Check if the submission was successful
		if result.status == notif.Result.SUCCESS:
			print(result.message)
		else:
			print("ERROR: {0}".format(result.message))
			
		#Wait 6 minutes before sending a notification again
		if result.status != notif.Result.SOCKET_ERROR:
			sleep(60 * 6) 

Informazioni sulle notifiche

Impostazione della durata di un messaggio

In genere, FCM recapita i messaggi immediatamente dopo l’invio. Tuttavia, questo potrebbe non essere sempre possibile. Ad esempio, se la piattaforma è Android, il dispositivo potrebbe essere spento, offline o altrimenti non disponibile. Oppure FCM potrebbe ritardare intenzionalmente i messaggi per impedire a un’app di consumare risorse eccessive e di avere un impatto negativo sulla durata della batteria.
Quando ciò accade, FCM memorizza il messaggio e lo recapita il prima possibile.

Impostazione della priorità di un messaggio (solo Android)

Ci sono due opzioni per assegnare la priorità di recapito ai messaggi downstream: priorità normale e priorità alta. Sebbene il comportamento differisca leggermente tra le piattaforme, la consegna dei messaggi con priorità normale e alta funziona in questo modo:
• Priorità normale. I messaggi con priorità normale vengono recapitati immediatamente quando l’app è in primo piano. Per le app in background, la consegna potrebbe essere ritardata. Per i messaggi meno urgenti, come nuove notifiche e-mail, sincronizzazione dell’interfaccia utente o sincronizzazione dei dati dell’app in background, scegli la priorità di recapito normale.
• Priorità alta. FCM tenta di recapitare immediatamente i messaggi con priorità alta anche se il dispositivo è in modalità Doze. I messaggi ad alta priorità sono per contenuti sensibili al tempo e visibili all’utente.

Frequenza massima dei messaggi

Una notifica può essere inviata al massimo ogni 5 minuti

Limite di testo

Il titolo della notifica deve essere inferiore a 200 caratteri e il corpo del messaggio non può superare i 1000 caratteri.

rc.local

Utilizzare rc.local per eseguire lo script all'avvio

1. Apri il terminale e digita il seguente comando per aprire il file rc.local:

sudo nano /etc/rc.local

2. Nel file rc.local immettere la seguente riga di codice prima della riga “exit 0”:

python3 /home/pi/myscript.py &

Qui sostitusci /home/pi/myscript.py con il nome del tuo script with your script name con il percorso assoluto.
(Nota che il comando termina con il simbolo “E commerciale” (&). Questo per informare il sistema che il programma che stiamo pianificando è in esecuzione continua, quindi non dovrebbe attendere che il tuo script finisca prima di avviare la sequenza di avvio. Nota che se non aggiungi “&” nel comando, lo script verrà eseguito all’infinito e il tuo Pi non si avvierà mai.)

3. Dopodiché, premi CTRL + O per salvare il file, quindi CTRL + X per chiudere l’editor.

4. Infine, digita  sudo reboot.

Cron jobs

Utilizzare cron per programmare il tuo script

In alternativa, puoi usare cron per pianificare l’esecuzione del tuo script (ricordati di rimuovere “while true” nel tuo script, se presente).

Installa cron eseguendo questo comando dal terminale:

sudo apt install cron

Una volta installato cron, ricordatevi di assicurarvi che sia abilitato e in esecuzione utilizzando il comando systemctl fornito da systemd:

sudo systemctl enable cron

Ora aggiungi un lavoro alla fine del file digitando:

crontab -e

Utilizza la sintassi appropriata  *  *  *  *  *  user  /home/user/myscript.py
È possibile utilizzare lo strumento online per le espressioni di pianificazione cron: https://crontab.guru/

Infine, premi CTRL + O per salvare il file e poi CTRL + X per chiudere l’editor.