私は私の質問の解決策を探しているビンを持っていますが、見つけたものでそれを手に入れなかった、またはより良いとは言いませんでした。私の問題が何であるかについて話しましょう。Raspberry Piでスマートホームコントロールソフトウェアを使用していますが、今週末、pilight-receiveを使用して、屋外の温度センサーからデータを取得できました。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
}
さて、私の質問です。IDが1490である場所から温度と湿度を抽出するにはどうすればよいですか。これを頻繁に確認することをどのようにお勧めしますか。10分ごとに実行されるcronジョブにより、pilight-receiveの出力を作成し、出力のデータを抽出して、Smart Home Control Apiにプッシュします。
アイデアを持っている人-どうもありがとう
awkし、sedJSONの出力を提供し、ここで示された書式保持することは必要はない-空白問題ではないJSONのため。たとえば、次のawkコマンドawk '/temperature|humidity/ {print $2}'は近いです。