Tôi có bin tìm kiếm một giải pháp cho câu hỏi của mình nhưng không tìm thấy hay nói tốt hơn là tôi không hiểu nó với những gì tôi tìm thấy. Vì vậy, hãy nói về những gì vấn đề của tôi là về. Tôi đang sử dụng Phần mềm điều khiển nhà thông minh trên Raspberry Pi và khi tôi phát hiện ra vào cuối tuần này bằng cách sử dụng pilight-receive, tôi có thể bắt dữ liệu từ cảm biến nhiệt độ ngoài trời của mình. Đầu ra của pilight-receive trông như thế:
{
"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
}
Bây giờ câu hỏi của tôi cho bạn: Làm thế nào tôi có thể trích xuất nhiệt độ và độ ẩm từ nơi id là 1490. Và làm thế nào bạn có thể khuyên tôi nên kiểm tra điều này thường xuyên? Bằng một công việc định kỳ chạy cứ sau 10 phút, tạo ra đầu ra của pilight-receive, trích xuất dữ liệu của đầu ra và đẩy nó vào Api Smart Home Control.
Ai đó có một ý tưởng - cảm ơn rất nhiều
awk
và sed
cung cấp đầu ra JSON vẫn giữ định dạng được hiển thị ở đây, điều này không cần - khoảng trắng không quan trọng đối với JSON. Ví dụ, awk
lệnh này : awk '/temperature|humidity/ {print $2}'
gần.