Differenze tra le versioni di "Centralina livello 1"

Da raspibo.
Jump to navigation Jump to search
Riga 237: Riga 237:
  
 
Con tutta probabilita`, sara` una "lista", generata da utente, dove inserire le utenze che faranno capo a quella determinata area di allarme, quindi, non sara` presente nel "record" di livello 1 (?)
 
Con tutta probabilita`, sara` una "lista", generata da utente, dove inserire le utenze che faranno capo a quella determinata area di allarme, quindi, non sara` presente nel "record" di livello 1 (?)
 +
 +
=== Record da/per MQTT ===
 +
 +
''Ancora tutta un'ipotesi''
 +
 +
Percorso di ricevimento dato, dove una "centralina" remota scrive il valore:
 +
 +
: TipoIO(I)/PosizioneC/PosizioneP/PosizioneS/Tipo
 +
 +
Percorso d'invio comando, dove scrivere l'eventuale comando utenza che sia letto dalla "centralina" remota:
 +
 +
: TipoIO(O)/PosizioneC/PosizioneP/PosizioneS/Tipo
 +
 +
Il dato in arrivo avra` solo informazioni di base, esempio di input:
 +
 +
{ "Tipo" : "PIR", "Descrizione" : "Sensore di movimento corridoio", "Valore" : "1", "DataOra" : "2016-03-16 09:46:01" }
 +
 +
Sono omesse { "TipoIO" : "I" , "PosizioneC" : "Casa", "PosizioneP" : "Piano0", "PosizioneS" : "Corridoio" }, perche` ricavabili da struttura directory.
 +
 +
Il dato per 'comando' avra`, per esempio, queste informazioni:
 +
 +
{ "Utenza" : "NomeUtenza", "Valore" : "1" }
 +
 +
Anche qua, possono essere omesse le info ricavabili dal percorso di "scambio" dati.

Versione delle 10:19, 16 mar 2016

Qui la foto

Centralina livello 1
Centralina generale (?) gestione segnali
Repository: ancora no

Centralina livello 1

Prima e sommaria descrizione

Centralina di controllo segnali.

Dove arrivano i segnali utenze e vengono smistati.

Come inizio si dovrebbe evolvere subito nella centralina di allarme (ma le idee sono ancora confuse --Dave4rp)

Hardware e Software

Hardware
Raspberry Pi 3, perche` completa di WiFi e Bluetooth
Software
MQTT Broker (Mosquitto), perche` in grado di dialogare con la maggior parte dei componenti (Arduino, ESP8266, eccetera)
Redis, perche` servira` un database di appoggio e manipolazione per alcuni dati, e perche` servira` una struttura dati "manipolabile" (dovremo poter aggiungere e togliere "campi:valori" ad una "chiave", e aggiungere/togliere chiavi a delle liste, ecc. ecc.)
Nginx, non si puo` fare senza web server
... e poi non so cos'altro
Script cgi
javascript
...

Descrizione

I 'segnali' arrivano sempre (?) a "MQTT broker", vengono manipolati se necessario, ed inseriti nel database Redis.

Dal database Redis sono di nuovo letti/scritti/modificati/manipolati ed inviati:

e/o
in report (testo, grafico, audio, video, ...)
e/o
alla centralina di allarme CentRed
e/o
reinviati a MQTT broker
e/o
inviati ad altre centraline livello 1
e/o
...

Dati di livello 1 (bozza)

Tipo
  • Temperatura
  • PIR
  • Finecorsa
  • Proximity
  • Livello
  • Rele`
  • Termostato
  • Valvola
  • Motore
  • ...
Descrizione

Breve (?) descrizione del segnale

TipoIO
  • I (Input/Ingresso)
  • O (Output/Uscita)
Segnale
  • Analogico
  • Digitale
  • Testo
  • I2C
  • SPI
  • ...
PosizioneC
  • Casa
  • Garage
  • Giardino
  • ...
PosizioneP
  • Piano0
  • Piano1
  • ...
PosizioneS
  • Cucina1
  • Camera2
  • Bagno1
  • ...
Utenza/ITEM

(solo esempi, tutta da definire)

  • 1
  • 2
  • 3
  • ..
  • Up
  • Down
  • Left
  • Right
  • (altro ?)
  • ...
AreaAllarme

(solo esempi, tutta da definire)

  • P2Ext
  • int
  • ext
  • numero
  • lettera
  • ...
Valore
  • 0
  • 1
  • 13
  • ...
UM (Unita` di Misura)
  • °C
  • V (tensione)
  • A (assorbimento)
  • ...
DataOra
  • 2016-03-13 20:40:08
TempoRitardo
  • 0s
  • 1s
  • 100ms
  • ...
RangeValori
  • 0-100
  • 0,1
ValoreMin
  • 10 (temperatura)
  • 0 (binari/digitali)
ValoreMax
  • 40 (temperatura)
  • 1 (binari/digitali)
ValoreOn
  • 1
Allarme
  • 0
  • 1
  • Min
  • Max
  • Min,Max
  • off((oppure casella vuota ?))
  • ...

Chiave primaria dati di livello 1

Mi riferisco alla chiave univoca d'inserimento dei dati in Redis.

Sicuramente deve essere univoca, nella versione minima, sara` cosi` composta:

PosizioneC:PosizioneP:PosizioneS:Utenza

Al vaglio, un'eventuale codice di questo tipo:

TipoIO:Tipo:PosizioneC:PosizioneP:PosizioneS:Utenza

AreaAllarme

Con tutta probabilita`, sara` una "lista", generata da utente, dove inserire le utenze che faranno capo a quella determinata area di allarme, quindi, non sara` presente nel "record" di livello 1 (?)

Record da/per MQTT

Ancora tutta un'ipotesi

Percorso di ricevimento dato, dove una "centralina" remota scrive il valore:

TipoIO(I)/PosizioneC/PosizioneP/PosizioneS/Tipo

Percorso d'invio comando, dove scrivere l'eventuale comando utenza che sia letto dalla "centralina" remota:

TipoIO(O)/PosizioneC/PosizioneP/PosizioneS/Tipo

Il dato in arrivo avra` solo informazioni di base, esempio di input:

{ "Tipo" : "PIR", "Descrizione" : "Sensore di movimento corridoio", "Valore" : "1", "DataOra" : "2016-03-16 09:46:01" }

Sono omesse { "TipoIO" : "I" , "PosizioneC" : "Casa", "PosizioneP" : "Piano0", "PosizioneS" : "Corridoio" }, perche` ricavabili da struttura directory.

Il dato per 'comando' avra`, per esempio, queste informazioni:

{ "Utenza" : "NomeUtenza", "Valore" : "1" }

Anche qua, possono essere omesse le info ricavabili dal percorso di "scambio" dati.