Differenze tra le versioni di "Centralina livello 1/Notes"
(→4) |
|||
| Riga 1: | Riga 1: | ||
| + | == Record da/per MQTT == | ||
| + | |||
| + | 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/Possession/Tipo | ||
| + | |||
| + | Il dato in arrivo avra` solo informazioni di base, esempio di input: | ||
| + | |||
| + | { "ID" : "NomeUtenza", "Valore" : "1" } | ||
| + | |||
| + | Sono omesse { "TipoIO" : "I" , "PosizioneC" : "Casa", "PosizioneP" : "Piano0", "PosizioneS" : "Corridoio", "Tipo" : "PIR" }, perche` ricavabili da struttura directory.<br/> | ||
| + | Ho eliminato anche "DataOra" : "2016-03-16 09:46:01", perche` non sempre e` a disposizione, mentre lo sara` nella centralina, quindi si occupera` lei di inserirlo nella fase di manipolazione dati pre-inserimento in redis. | ||
| + | |||
| + | Il dato per 'comando' avra`, per esempio, queste informazioni: | ||
| + | |||
| + | { "ID" : "NomeUtenza", "Valore" : "1" } | ||
| + | |||
| + | Anche qua, possono essere omesse le info ricavabili dal percorso di "scambio" dati. | ||
| + | |||
== 4 == | == 4 == | ||
Versione delle 08:26, 17 apr 2016
Record da/per MQTT
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/Possession/Tipo
Il dato in arrivo avra` solo informazioni di base, esempio di input:
{ "ID" : "NomeUtenza", "Valore" : "1" }
Sono omesse { "TipoIO" : "I" , "PosizioneC" : "Casa", "PosizioneP" : "Piano0", "PosizioneS" : "Corridoio", "Tipo" : "PIR" }, perche` ricavabili da struttura directory.
Ho eliminato anche "DataOra" : "2016-03-16 09:46:01", perche` non sempre e` a disposizione, mentre lo sara` nella centralina, quindi si occupera` lei di inserirlo nella fase di manipolazione dati pre-inserimento in redis.
Il dato per 'comando' avra`, per esempio, queste informazioni:
{ "ID" : "NomeUtenza", "Valore" : "1" }
Anche qua, possono essere omesse le info ricavabili dal percorso di "scambio" dati.
4
RPI3
apt-get install redis-server redis-tools python3-redis
apt-get install mosquitto mosquitto-clients
apt-get install python3-pip
apt-get install nginx-full fcgiwrap
pip3 install paho-mqtt
3
http://docs.python-guide.org/en/latest/scenarios/json/
2
Per ricordarsi come estrarre le info:
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> var = "/I/Casa1/Piano2/Stanza4/Message"
>>> var.split()
['/I/Casa1/Piano2/Stanza4/Message']
>>> var.split("/")
['', 'I', 'Casa1', 'Piano2', 'Stanza4', 'Message']
>>> var.split("/")[1]
'I'
>>> var.split("/")[2]
'Casa1'
>>> var.split("/")[3]
'Piano2'
>>> var.split("/")[4]
'Stanza4'
>>> var.split("/")[5]
'Message'
>>> var = "/I/Casa1/Piano2/Stanza4/Message" >>> while (var != "/"): ... #print(var) ... print(os.path.basename(var)) ... var=os.path.split(var)[0] ... Message Stanza4 Piano2 Casa1 I >>>
Ho controllato, sembra che mosquitto scriva senza il primo backslash, quindi:
>>> var = "I/Casa1/Piano2/Stanza4/Message" >>> while (var != ""): ... #print(var) ... print(os.path.basename(var)) ... var=os.path.split(var)[0] ... Message Stanza4 Piano2 Casa1 I >>>
1
http://nginx.org/en/docs/http/configuring_https_servers.html
apt-get install ssl-cert
make-ssl-cert generate-default-snakeoil --force-overwrite
pip3 install paho-mqtt