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