Configurazione MQTT - GeekyIdea/SmartHomeAlarm GitHub Wiki

In questa schermata è possibile modificare i parametri del protocollo MQTT

Abilita MQTT Spuntando questa opzione è possibile abilitare il protocollo MQTT

Parametro Descrizione
Host L'url o l'indirizzo IP del broker MQTT
Porta La porta utilizzata dal broker MQTT (0-65535) (Default: 1883)
Client Il nome che identifica ogni client MQTT che si connette a un broker MQTT. Questo ID deve essere univoco per ogni dispositivo connesso al broker MQTT.
User L'username necessaria per collegarsi al broker MQTT
Password La password necessaria per collegarsi al broker MQTT
Topic Il nome del topic che verrà utilizzato da questo dispitivio, è usato nei comandi e nelle risposte MQTT e dovrebbe essere unico
Periodo Telemetria Il tempo in secondi passato il quale la centralina invia lo stato generale dell'allarme al broker MQTT (Default: 300)

Comandi via MQTT

Per inviare comandi e visualizzare le risposte avrai bisogno di un client MQTT.

I comandi MQTT vengono inviati alla centralina usando il seguente schema cmd/%topic%/<COMANDO> <PARAMETRO>

Flusso dei comandi

In questi esempi è possibile vedere alcune delle risposte che si ricevono quando si invia un comando via MQTT.

cmnd/topic-allarme/REPORT ← 
   ↳ stat/topic-allarme/REPORT → {"Time":"23:0:46D19-4-2019","Uptime":"0D0:6:21","Status":"TOT","Wifi":{"SSId":"LA_MIA_RETE","RSSI":100,"Mac":"00:11:22:33:44:55"}}

cmnd/topic-allarme/TOT ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:6:8D21-4-2019","Status":"TOT","Zone":"","Schedule":"","Sensor":""} 
   ↳ stat/topic-allarme/SENSOR → {"Time":"22:5:11D21-4-2019","SensorCount":2,"PreAlarmed":{"Sensore 3"}} //In caso di sensori già allarmati

cmnd/topic-allarme/EX-TOT ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:6:8D21-4-2019","Status":"TOT","Zone":"","Schedule":"","Sensor":""} 

cmnd/topic-allarme/PAR-0 ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:6:8D21-4-2019","Status":"PAR","Zone":"","Schedule":"","Sensor":""} 
   ↳ stat/topic-allarme/SENSOR → {"Time":"22:5:11D21-4-2019","SensorCount":2,"PreAlarmed":{"Sensore 3"}} //In caso di sensori già allarmati

cmnd/topic-allarme/EX-PAR-0 ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:6:8D21-4-2019","Status":"PAR","Zone":"","Schedule":"","Sensor":""}

cmnd/topic-allarme/SCHED-0 ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:15:54D21-4-2019","Status":"SCHED-TOT-ACT","Zone":"","Schedule":"Programma 0","Sensor":""}

cmnd/topic-allarme/OFF ← 
   ↳ stat/topic-allarme/STATUS → {"Time":"22:14:55D21-4-2019","Status":"OFF","Zone":"","Schedule":"","Sensor":""}

cmnd/topic-allarme/SENSOR ← 
   ↳ stat/topic-allarme/SENSOR → {"Time":"0:10:57D22-5-2019","SensorCount":1,"PreAlarmed":{}}

cmnd/topic-allarme/LIST-SCHEDULE ← 
   ↳ stat/topic-allarme/LIST-SCHEDULE → {"Time":"23:59:10D21-5-2019","ScheduleName": {"Programma 0"},"ScheduleCount": 1}

cmnd/topic-allarme/LIST-ZONE ← 
   ↳ stat/topic-allarme/LIST-ZONE → {"Time":"23:49:10D21-5-2019","ZoneName": {"Zona Cucina"},"ZoneCount": 1}

cmnd/topic-allarme/INFO ← 
   ↳ stat/topic-allarme/INFO → {"Version":"v.1.0.8","FallbackTopic":"Allarme","IPAddress":"192.168.1.2","RestartReason": "External System"}

Il parametro "Status" può restituire i seguenti valori:

Valore Descrizione
OFF L'allarme è disattivato
SCHED-TOT Lo schedule ha attivato l'allarme totale
TOT L'allarme totale è attivato
SCHED-PAR Lo schedule ha attivato l'allarme parziale
PAR L'allarme parziale è attivato
TRIG L'allarme è triggerato: è stata rilevata un intrusione
SCHED-TOT-ACT L'allarme schedulare sta attivando l'allarme totale
SCHED-PAR-ACT L'allarme schedulare sta attivando l'allarme parziale
TOT-ACT L'allarme totale è in attivazione
PAR-ACT L'allarme parziale è in attivazione
PANIC L'allarme antipanico è stato triggerato
JAMMER L'allarme antijammer è stato triggerato
TAMPER L'allarme antitamper è stato triggerato

Esempi

Nei seguenti esempi il nome del topic usato è topic-allarme

  • Ricevere un report dello stato generale dell'allarme Contattare il topic cmd/topic-allarme/REPORT inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato generale della centralina al seguente topic stat/topic-allarme/REPORT.

  • Attivare l'allarme totale Contattare il topic cmd/topic-allarme/TOT inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Attivare l'allarme totale con esclusione sensori Nel caso si voglia attivare l'allarme escludendo eventuali sensori già allarmati in fase di attivazione basterà semplicemente contattare il topic cmd/topic-allarme/EX-TOT inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Attivare l'allarme parziale Contattare il topic cmd/topic-allarme/PAR-x dove x sta ad indicare l'id della zona che si vuole attivare, inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. Per conoscere gli id di tutte le zone attivabili contattare il topic cmd/topic-allarme/LIST-ZONE inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Attivare l'allarme parziale con esclusione sensori Nel caso si voglia attivare l'allarme escludendo eventuali sensori già allarmati in fase di attivazione basterà semplicemente contattare il topic cmd/topic-allarme/EX-PAR-x dove x sta ad indicare l'id della zona che si vuole attivare, inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. Per conoscere gli id di tutte le zone attivabili contattare il topic cmd/topic-allarme/LIST-ZONE inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Attivare l'allarme schedulare Contattare il topic cmd/topic-allarme/SCHED-x dove x sta ad indicare l'id della zona che si vuole attivare, inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. Per conoscere gli id di tutti gli schedule attivabili contattare il topic cmd/topic-allarme/LIST-SCHEDULE inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Disattivare l'allarme Contattare il topic cmd/topic-allarme/OFF inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato al seguente topic stat/topic-allarme/REPORT.

  • Conoscere lo stato dei sensori Contattare il topic cmd/topic-allarme/SENSOR inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà lo stato dei sensorial seguente topic stat/topic-allarme/SENSOR.

  • Conoscere le zone disponibili Contattare il topic cmd/topic-allarme/LIST-ZONE inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà le zone disponibili al seguente topic stat/topic-allarme/LIST-ZONE.

  • Conoscere gli schedule disponibili Contattare il topic cmd/topic-allarme/LIST-SCHEDULE inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà gli schedule disponibili al seguente topic stat/topic-allarme/LIST-SCHEDULE.

  • Visualizzare le informazioni del software Contattare il topic cmd/topic-allarme/INFO inviando un parametro vuoto o nel caso il broker non lo permettesse, inviare semplicemente come parametro un carattere qualsiasi. L'allarme visualizzerà le informazioni del software al seguente topic stat/topic-allarme/INFO.

Lista comandi mqtt

Comando Risposta
cmd/topic-allarme/REPORT stat/topic-allarme/REPORT
cmd/topic-allarme/TOT stat/topic-allarme/STATUS
cmd/topic-allarme/EX-TOT stat/topic-allarme/STATUS
cmd/topic-allarme/PAR-x stat/topic-allarme/STATUS
cmd/topic-allarme/EX-PAR-x stat/topic-allarme/STATUS
cmd/topic-allarme/SCHED-x stat/topic-allarme/STATUS
cmd/topic-allarme/OFF stat/topic-allarme/STATUS
cmd/topic-allarme/SENSOR stat/topic-allarme/SENSOR
cmd/topic-allarme/LIST-SCHEDULE stat/topic-allarme/LIST-SCHEDULE
cmd/topic-allarme/LIST-ZONE stat/topic-allarme/LIST-ZONE
cmd/topic-allarme/INFO stat/topic-allarme/INFO

Prefissi topic

L'allarme usa 3 tipi diversi di prefissi per la formulazione del topic:

  • cmd - E' il prefisso usato per impartire comandi e richiedere gli eventuali stati
  • stat - E' il prefisso usato per visualizzare le varie statistiche dell'allarme
  • tele - E' il prefisso usato per i report di telemetria inviati ad intervalli di tempo regolari
⚠️ **GitHub.com Fallback** ⚠️