Я шукаю рішення для свого запитання, але не знайшов або, краще сказати, не отримав його з тим, що знайшов. Тож давайте поговоримо про те, у чому полягає моя проблема. Я використовую програмне забезпечення Smart Home Control на Raspberry Pi, і, як я дізнався ці вихідні, використовуючи pilight-прийом, я можу отримати дані з мого датчика зовнішньої температури. Вихід pilight-отримання виглядає так:
{
"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
}
Тепер моє запитання до вас: як, до біса, я можу отримати температуру та вологість повітря з місця, де 1490. І як би ви порадили мені це часто перевіряти? Завданням cron, яке виконується кожні 10 хвилин, створює висновок прийому, що надходить, витягує дані виводу та передає їх у Smart Home Control Api.
Хтось має ідею - велике спасибі
awk
і за sed
умови, що вихід JSON зберігає показане тут форматування, яке йому не потрібно - пробіл JSON не має значення. Наприклад, ця awk
команда: awk '/temperature|humidity/ {print $2}'
близько.