Pythonscript Ausgabe zerlegen

  • Nachdem meine Tinos jetzt werkeln, will ich die Ausgabe des Pythonscripts zerlegen und in .txt Dateien speichern.

    Ich habe 3 Sender und am Empfänger kommen die Daten so an:

    (Rot einfärben geht nicht im Codeblock)

    --> NodeId,1,s=-77.50,data:OK;3196;39;280;60.00;1;,FEI=76,T=18,biterrors=0


    Interessant sind für mich nur Zeilen mit data:Ok und oben rot eingefärbt:

    Die ID 1-3 als Namensteil der Datei, andere Zeilen sollen ignoriert werden.

    Die Batteriespannung in Volt mit einer Nachkommastelle (Wert/1000)

    Die Temperatur mit einer Nachkommastelle (Wert/100), die Luftfeuchtigkeit ohne Kommastellen (.00 hinten weg)

    So dass die Ausgabe in sensor1_temp.txt, sensor1_hum.txt, sensor1_batt.txt, sensor2_temp.txt, sensor2_hum.txt, sensor2_batt.txt ..... erfolgt.

    Wie stelle ich das am besten an ? :denker: :conf: :helpnew:

    P.S. Das Script selbst ist noch in Python2 geschrieben.

  • Code
    python3 script.py | awk -F ';' '/data:OK/ { split($1,name,",") ; printf("%.1f\n",$2/100) >> "sensor" name[2] "_temp.txt" ; printf("%.1f\n",$4/100) >> "sensor" name[2] "_hum.txt" ; printf( "%.0f\n", $5) >> "sensor" name[2] "_batt.txt"  ; }'

    Es waere allerdings schlauer das schon im Python-Script zu machen!

  • Bei mir geht's (script.py, Zeile mit seltsamen Zeichen geloescht):