J'ai bin à la recherche d'une solution à ma question, mais je n'ai pas trouvé de réponse ou mieux dit que je ne l'ai pas trouvée avec ce que j'ai trouvé. Permet donc de parler de mon problème. J'utilise un logiciel de contrôle de maison intelligente sur un Raspberry Pi et comme je l'ai découvert ce week-end en utilisant la réception pilight, je peux capturer les données de mon capteur de température extérieure. La sortie de pilight-receive ressemble à ceci:
{
"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
}
Maintenant ma question pour vous: comment diable puis-je extraire la température et l'humidité de l'endroit où l'id est 1490. Et comment me recommanderiez-vous de vérifier cela fréquemment? Par un travail cron qui s'exécute toutes les 10 minutes, crée une sortie de la réception pilight, extrait les données de la sortie et les pousse vers l'API Smart Home Control.
Quelqu'un a une idée - merci beaucoup
awk
et à sed
condition que la sortie JSON conserve le formatage montré ici, ce qui n'est pas nécessaire - les espaces blancs n'ont pas d'importance pour JSON. Par exemple, cette awk
commande: awk '/temperature|humidity/ {print $2}'
est proche.