У меня есть бин, ищущий решение для моего вопроса, но не нашел или лучше сказал, что я не получил это с тем, что я нашел. Итак, давайте поговорим о том, о чем моя проблема. Я использую программное обеспечение Smart Home Control на Raspberry Pi, и, как я узнал в эти выходные, используя систему приема-приема, я могу получить данные с моего датчика температуры наружного воздуха. Вывод pilight-receive выглядит так:
{
"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 минут, создается вывод pilight-receive, извлекаются данные этого вывода и отправляется в Api Smart Home Control.
У кого-то есть идея - большое спасибо
awk
и sed
при условии, что вывод JSON сохраняет форматирование, показанное здесь, в этом нет необходимости - пробел не имеет значения для JSON. Например, эта awk
команда: awk '/temperature|humidity/ {print $2}'
близка.