|
Manuale con il formato dei dati inviati via HTTP per RXTXeasy
|
Questo anche per MQTT.
Differisce l'invio del numero del canale WiFi (serve solo se usato con
DisplayRX e
ControlHUB) che avviene con
z= anziché
w=.
Evidenziamo che come parametri CGI/HTTP in standard POST, le letture ricevute dai sensori sono ritrasmesse usando gli identificatori:
a0 (RXTXeasy -> readings for VV-RF433 Channell #0)
a1 (RXTXeasy -> readings for VV-RF433 Channell #1)
...
a100 (RXTXeasy -> readings for WiFi Channell #0)
a101 (RXTXeasy -> readings for WiFi Channell #1)
...
at100 (RXTXeasy -> timestamp Unix Time for readings WiFi Channell #0) [novità]
...
In sintesi, mentre TXtemp TXsoil TXloop e TXdata inviano l'identificatore r della loro singola lettura, RXTXeasy ritrasmette tutte le letture che raccoglie, visto che sono molte non vanno in r ma ognuna in a+numero canale, da a0 ad a15 per i canali RF433, da a100 ad a199 per i canali WiFi.
RXTXeasy ritrasmette quello che TXtemp TXsoil TXloop TXdata metterebbero nel loro parametro r= ovvero un JSON che contiene la lettura di temperatura, umidità, val o quant'altro.
Ricordiamo che RXTXeasy riceve N dati da N sensori, e (se impostato HTTP) quando arriva il tempo della sua ritrasmissione periodica, trasmette questi dati allo script che tu indichi; quindi si segna di averli trasmessi (per cui risulteranno ancora elencati nella pagina di dati ricevuti, ma trasmessi), questo segnarsi al momento avviene sia che la tx sia stata OK che non OK (per fare altra tx dovrà ricevere altri dati).
Legacy TXdata TXtemp TXsoil
Ipotizzando di ricevere a123=..., per un canale che riceve un
TXdata, i dati in
a123 sono:
- la risposta che il TXdata riceve dalla sua azione (per esempio una risposta formata da bytes in HexAscii a comando/comandi ModBus)
Per un canale che riceve un
TXtemp, i dati in
a123 sono 2 o 3 bytes in HexAscii
(B1) (B2) (B3):
- temperatura=((B1)*256+(B2)) / 100
- (se c'è) umidità=(B3)
Esempio per canale 0 in RF433: 090A sarebbe temperatura 23.14°C oppure 090A15 sarebbe temperatura 23.14°C e umidità 21%
Per un canale che riceve un
TXsoil i dati in
a123 sono 2 o 3 bytes in HexAscii
(B1) (B2) (B3):
- temperatura=((B1)*256+(B2)) / 100 (se non c'è la misura della temperatura il dato sarà tra -12600 o -12800)
- umidità=(B3)
Esempio per canale 0 in RF433: 090A sarebbe temperatura 23.14°C oppure 090A15 sarebbe temperatura 23.14°C e umidità 21%
Script python di esempio
Per brevi test puoi usare lo script http://wfeasy.com/txtest.py il cui output si vede a
http://wfeasy.com/txtest.py?v=1 - se vuoi usarlo giusto come prova dovrai:
nello specchietto "HTTP / CHUB & VisualVision" ci va la Pass: pippo
sotto si sceglie "TX Web a script custom utente. URL:" e si mette come script http://wfeasy.com/txtest.py
Oppure, per chi volesse provarlo sul proprio server (richiede Python),
questo stesso script di esempio si può scaricare da
http://wfeasy.com/txtest.zip
Ovviamente lo script si può fare in Python, Perl, PHP, insomma qualsiasi linguaggio, guardando l'esempio in Python vedete i parametri CGI da prendere, non è difficile...
Hardware e software professionale e facile da usare, dal 1996
FATTO IN ITALIA - MADE IN ITALY