Dane z aplikacji Fuelio

Mam na telefonie aplikację Fuelio, która zlicza mi pzebyty dystans pojazdem, ilość tankowań, jaki rodzaj paliwa itp.
Te dane zapisuję na chmurę dropboxa w postaci pliku.
Następnie plik ten odczytuję w HA w Node-Red i za pomocą funkcji wyciągam odpowiednie dane do odpowiednio utworzonych czujników.
Do niedawna jeździłem pojazdem na benzynę. Ostatnio zmieniłem na elektryka i mam problem z funkcją. Co należy dopisać, żeby te dane wyciągnąć odnośnie ilości tankowań kwh?
Dodałem kilka zmiennych, ale nie wiem co dalej. Moja funkcja wygląda tak:

var koszt_lpg=0;
var koszt_pb95=0;
var koszt_kWh=0;
var pb95=0
var lpg=0
var kWh=0
var cena_lpg=0;
var cena_pb95=0;
var cena_kWh=0;
var tankowania_lpg=0
var tankowania_pb95=0
var tankowania_kWh=0
var odo=0

for (i=0; i< msg.payload.length; i++){

    if (msg.payload[i]["FuelType"]=="401"){
        if (!isNaN(parseFloat(msg.payload[i]["Fuel (litres)"]))){
            lpg=lpg+parseFloat(msg.payload[i]["Fuel (litres)"]);
        }
        if (!isNaN(parseFloat(msg.payload[i]["Price (optional)"]))){
            koszt_lpg=koszt_lpg+parseFloat(msg.payload[i]["Price (optional)"]);
        }
        if (!isNaN(parseFloat(msg.payload[i]["VolumePrice"]))){
            cena_lpg=cena_lpg+parseFloat(msg.payload[i]["VolumePrice"]);
            tankowania_lpg=tankowania_lpg+1;
        }
    }
    if (msg.payload[i]["FuelType"]=="110"){
        if (!isNaN(parseFloat(msg.payload[i]["Fuel (litres)"]))){
            pb95=pb95+parseFloat(msg.payload[i]["Fuel (litres)"]);
        }
        if (!isNaN(parseFloat(msg.payload[i]["Price (optional)"]))){
            koszt_pb95=koszt_pb95+parseFloat(msg.payload[i]["Price (optional)"]);
        }
        if (!isNaN(parseFloat(msg.payload[i]["VolumePrice"]))){
            cena_pb95=cena_pb95+parseFloat(msg.payload[i]["VolumePrice"]);
            tankowania_pb95=tankowania_pb95+1;
        }
    }
    
}
    
msg.sr_cena_lpg=(cena_lpg/tankowania_lpg).toFixed(2);
msg.sr_cena_pb95=(cena_pb95/tankowania_pb95).toFixed(2);
msg.koszt_lpg=(koszt_lpg).toFixed(2);
msg.koszt_pb95=(koszt_pb95).toFixed(2);
msg.lpg=(lpg).toFixed(2);
msg.pb95=(pb95).toFixed(2);
msg.tankowania_lpg=tankowania_lpg-1;
msg.tankowania_pb95=tankowania_pb95-1;
msg.odo=parseInt(msg.payload[0]["Odo (km)"]);
msg.ostatnie_tankowanie_data=msg.payload[0]["Data"]
msg.ostatnie_tankowanie_litry=msg.payload[0]["Fuel (litres)"]
msg.ostatnie_tankowanie_koszt=msg.payload[0]["Price (optional)"]
msg.ostatnie_tankowanie_cena=msg.payload[0]["VolumePrice"]
msg.ostatnie_tankowanie_spalanie=msg.payload[0]["l/100km (optional)"]

if (msg.payload[0]["FuelType"]=="110")
    msg.ostatnie_tankowanie_paliwo="PB95"
if (msg.payload[0]["FuelType"]=="401")
    msg.ostatnie_tankowanie_paliwo="LPG"


return msg;

Natomiast w nodzie debug wygląda to tak jak poniżej i na screenach

msg : Object
object
_msgid: "27e03175a2ce73b5"
payload: array[81]
[0 … 9]
0: object
Data: "2022-02-06 04:40"
Odo (km): 344.66
kWh: 1.29
Full: 1
Price (optional): 0.81
kWh/100km (optional): 7.8
latitude (optional): 50.0833298
longitude (optional): 18.8312011
City (optional): "Akacjowa 38c - "
Missed: 0
TankNumber: 1
FuelType: 601
VolumePrice: 0.63
StationID (optional): 0
ExcludeDistance: 0
UniqueId: 33
TankCalc: 0
1: object
2: object
3: object
4: object
5: object
6: object
7: object
8: object
9: object
[10 … 19]
10: object
11: object
12: object
13: object
14: object
15: object
16: object
17: object
18: object
19: object
[20 … 29]
[30 … 39]
[40 … 49]
[50 … 59]
[60 … 69]
[70 … 79]
[80 … 80]
topic: ""
filename: "/Aplikacje/Fuelio/sync/vehicle-2-sync.csv"
columns: "Data,Odo (km),kWh,Full,Price (optional),kWh/100km (optional),latitude (optional),longitude (optional),City (optional),Notes (optional),Missed,TankNumber,FuelType,VolumePrice,StationID (optional),ExcludeDistance,UniqueId,TankCalc"


1 Like

Nie wiem jak Ci pomóc, bo nie mam elektryka, ale sam pomysł na pobranie danych z Fuelio bardzo ciekawy. Że też o tym wcześniej nie pomyślałem, a korzystam właściwie od zawsze. Chyba sobie takie cos zrobię, z tym że ja pobieram na dysk google. Chyba da się to łatwo pobrać do NR.

W załączniku przesyłam ci cały flow
Fuelio.json (15,0 KB)

mogłbys wspomóc z configuracja dropboxa cały czas mam

7.02.2022, 06:55:08node: Ścieżka do pliku \n z danymi pojazdu
msg : string[31]
"download failed [object Object]"

Bo jak zainstalujesz dropboxa to musisz wejść i zobaczyć gdzie zapisuje dane i taką ścieżkę mu podać.
Czytałeś to?

cos drgneło ściaga dane

podrzuc swoj plik csv (mam bete na ios moze to jest przyczyna ze nie do konca działa)

@fox2plus opisz jak zintegrowałeś fuelio, napewno wielu użytkowników forum skorzysta.

1 Like

Można prosić o bardziej szczegółowy opis konfiguracji i uruchomienia?