Centralina livello 1/Notes

Da raspibo.
Jump to navigation Jump to search

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