Ho bin cercando una soluzione per la mia domanda ma non ho trovato o meglio detto che non l'ho trovato con quello che ho trovato. Quindi parliamo di quale sia il mio problema. Sto usando un software di controllo Smart Home su un Raspberry Pi e, come ho scoperto questo fine settimana usando la funzione di ricezione pilight, posso catturare i dati dal mio sensore di temperatura esterno. L'output di pilight-reception è simile al seguente:
{
"message": {
"id": 4095,
"temperature": 409.5
},
"origin": "receiver",
"protocol": "alecto_wsd17",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 3
}
{
"message": {
"id": 1490,
"temperature": 25.1,
"humidity": 40.0,
"battery": 1
},
"origin": "receiver",
"protocol": "alecto_ws1700",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 3
}
{
"message": {
"id": 2039,
"temperature": 409.5
},
"origin": "receiver",
"protocol": "alecto_wsd17",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 4
}
Ora la mia domanda per te: come diamine posso estrarre la temperatura e l'umidità da dove l'id è 1490. E come mi consiglieresti di fare questo controllo frequentemente? Con un cron job che viene eseguito ogni 10 minuti, crea un output del pilight-reception, estrae i dati dell'output e li invia all'API di Smart Home Control.
Qualcuno che ha un'idea - grazie mille
awk
e sed
purché l'output JSON mantenga la formattazione mostrata qui, cosa che non serve - gli spazi bianchi non contano per JSON. Ad esempio, questo awk
comando: awk '/temperature|humidity/ {print $2}'
è vicino.