Ich habe nach einer Lösung für meine Frage gesucht, aber keine gefunden oder besser gesagt, ich habe sie nicht mit dem bekommen, was ich gefunden habe. Sprechen wir also darüber, worum es bei meinem Problem geht. Ich verwende eine Smart Home Control Software auf einem Raspberry Pi und wie ich an diesem Wochenende mit pilight-receive herausgefunden habe, kann ich die Daten von meinem Außentemperatursensor abrufen. Die Ausgabe von pilight-receive sieht folgendermaßen aus:
{
"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
}
Nun meine Frage an Sie: Wie zum Teufel kann ich die Temperatur und Luftfeuchtigkeit von der ID 1490 extrahieren? Und wie würden Sie mir empfehlen, dies regelmäßig zu überprüfen? Durch einen Cron-Job, der alle 10 Minuten ausgeführt wird, eine Ausgabe des Pilight-Empfangs erstellt, die Daten der Ausgabe extrahiert und an die Smart Home Control-API übermittelt.
Jemand, der eine Idee hat - vielen Dank
awk
und sed
vorausgesetzt, die JSON-Ausgabe behält die hier gezeigte Formatierung bei, die sie nicht benötigt - Leerzeichen spielen für JSON keine Rolle. Zum Beispiel ist dieser awk
Befehl: awk '/temperature|humidity/ {print $2}'
close.