Hi.
I have a problem with reading data from a .csv file, in short I want to use Nodred to create virtual sensors for Homeassistant from data downloaded from the fuelio.csv file
Fuelio is a program - a log of vehicle refueling. (save file to *.csv)
Homeasistant - will display current data on sensors after synchronizing the file with fuelio.
Currently, I have prepared a fuelio file which is automatically transferred to the nodred server after synchronization.
Now nodered should read the data from the file and update the sensor status in Homeassistant.
in the ssh console the command works:
cat config/fuelio/fuelio.csv | grep '"*"' | cut -d "," -f 2 | awk 'NR==6' | sed 's/"//g'
returning data, e.g. about the current mileage: 117850 (km)
but I don't know if this command can be used in nodered?
I tried various functions but to no avail.
I am puzzled that you quote a bash shell command which works but your screen capture of [part of] a file pathname seems to be on Windows.
I presume your attempt to read the file using a function node gives an error.
Node-red has a read-file node (as you already know) which opens and reads a file, then you can parse the data within Node-red.
Or you could use an exec node to run the cat | grep | cut | awk | sed command. (Impressive use of every line editor known to man ).
Hello @jbudd
Thank you for the guidance, it works great with the EXEC node, but it refers to a short executable *.sh file containing bash commands (it works, but it's not very elegant )
Can you tell me what I should enter in the FUNCTION node to output only one value as shown in the screenshot?
If you click that "Copy path" button (and paste it somewhere) you will see that the data you outlined is msg.payload[6].col2
Assuming that it's always array element 6 that you need, in a function you could have msg.payload = msg.payload[6].col2
Or, using standard nodes rather than resorting to a function a change node can easily move msg.payload[6].col2 to msg.payload
Note: Looking at your debug output and the original Bash command line, I'm not convinced that your awk 'NR==6' retrieves the same line from the CSV file as msg.payload[6]