Tengo bin buscando una solución para mi pregunta, pero no encontré una o mejor, dije que no la obtuve con lo que encontré. Así que hablemos de cuál es mi problema. Estoy usando un software de control inteligente para el hogar en una Raspberry Pi y, como descubrí este fin de semana usando la recepción de pilight, puedo capturar los datos de mi sensor de temperatura exterior. La salida de Pilight-Recibir se ve así:
{
"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
}
Ahora mi pregunta para usted: ¿Cómo diablos puedo extraer la temperatura y la humedad de donde está la identificación 1490. ¿Y cómo me recomendaría que verifique esto con frecuencia? Mediante un trabajo cron que se ejecuta cada 10 minutos, crea una salida de la recepción de pilight, extrae los datos de la salida y los envía a la API de Smart Home Control.
Alguien que tiene una idea, muchas gracias
awk
y sed
siempre que la salida JSON conserve el formato que se muestra aquí, lo cual no es necesario; el espacio en blanco no importa para JSON. Por ejemplo, este awk
comando: awk '/temperature|humidity/ {print $2}'
está cerca.