From bbb210a79988de5c83e5763a40cc72e07b6da2a1 Mon Sep 17 00:00:00 2001 From: Julien <6372605+fetzu@users.noreply.github.com> Date: Fri, 20 Oct 2023 20:14:42 +0200 Subject: [PATCH] Revert "fix: minor corrections to PR #39" This reverts commit bc577498be22f67ffa6c2e2570abb2840cef1d2c. --- teslamate_mqtt2abrp.py | 56 ++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/teslamate_mqtt2abrp.py b/teslamate_mqtt2abrp.py index da44e08..595ee8d 100644 --- a/teslamate_mqtt2abrp.py +++ b/teslamate_mqtt2abrp.py @@ -28,6 +28,7 @@ import os import paho.mqtt.client as mqtt import requests +import json from time import sleep from docopt import docopt @@ -148,13 +149,13 @@ def on_message(client, userdata, message): data["speed"] = int(payload) elif topic_postfix == "power": data["power"] = float(payload) - if(data["is_charging"] == True and int(payload)<-11): - data["is_dcfc"] = True + if(data["is_charging"]==True and int(payload)<-11): + data["is_dcfc"]=True elif topic_postfix == "charger_power": if(payload!='' and int(payload)!=0): - data["is_charging"] = True + data["is_charging"]=True if int(payload)>11: - data["is_dcfc"] = True + data["is_dcfc"]=True elif topic_postfix == "heading": data["heading"] = int(payload) elif topic_postfix == "outside_temp": @@ -179,27 +180,27 @@ def on_message(client, userdata, message): del data["voltage"] elif topic_postfix == "shift_state": if payload == "P": - data["is_parked"] = True + data["is_parked"]=True elif(payload == "D" or payload == "R"): - data["is_parked"] = False + data["is_parked"]=False elif topic_postfix == "state": state = payload - if payload == "driving": - data["is_parked"] = False - data["is_charging"] = False - data["is_dcfc"] = False - elif payload == "charging": - data["is_parked"] = True - data["is_charging"] = True - data["is_dcfc"] = False - elif payload == "supercharging": - data["is_parked"] = True - data["is_charging"] = True - data["is_dcfc"] = True - elif(payload == "online" or payload == "suspended" or payload == "asleep"): - data["is_parked"] = True - data["is_charging"] = False - data["is_dcfc"] = False + if payload=="driving": + data["is_parked"]=False + data["is_charging"]=False + data["is_dcfc"]=False + elif payload=="charging": + data["is_parked"]=True + data["is_charging"]=True + data["is_dcfc"]=False + elif payload=="supercharging": + data["is_parked"]=True + data["is_charging"]=True + data["is_dcfc"]=True + elif(payload=="online" or payload=="suspended" or payload=="asleep"): + data["is_parked"]=True + data["is_charging"]=False + data["is_dcfc"]=False elif topic_postfix == "usable_battery_level": #State of Charge of the vehicle (what's displayed on the dashboard of the vehicle is preferred) data["soc"] = int(payload) elif topic_postfix == "charge_energy_added": @@ -215,7 +216,7 @@ def on_message(client, userdata, message): #print("Unneeded topic:", message.topic, payload) # Calculate acurrate power on AC charging - if data["is_charging"] == True and data["is_dcfc"] == False and "voltage" in data and "current" in data: + if data["is_charging"]==True and data["is_dcfc"]==False and "voltage" in data and "current" in data: data["power"] = float(data["current"] * data["voltage"] * charger_phases) / 1000.0 * -1 return @@ -279,15 +280,18 @@ def updateABRP(): global APIKEY global USERTOKEN + msgDetails = "Data object to send:" + print(msgDetails, data) + try: headers = {"Authorization": "APIKEY "+APIKEY} body = {"tlm": data} response = requests.post("https://api.iternio.com/1/tlm/send?token="+USERTOKEN, headers=headers, json=body) resp = response.json() if resp["status"] != "ok": - print("Error, response from the ABRP API:", response.text) + print("Response from ABRP:", response.text) else: - print("Data object successfully sent:", data) + print("Response from ABRP:", resp["status"]) except Exception as ex: print("Unexpected exception while calling ABRP API:", sys.exc_info()[0]) print(ex) @@ -307,7 +311,7 @@ def updateABRP(): str_now = current_datetime.strftime("%Y-%m-%d %H:%M:%S") msg = str_now + ": Car is " + state if(state == "parked" or state == "online" or state == "suspended" or state=="asleep" or state=="offline"): #if parked, update every 30 cylces/seconds - if data["power"] != 0: #sometimes after charging the last power value is kept and not refreshed until the next drive or charge session. + if data["power"] != 0: #Sometimes after charging it keeps the last Power and not refresh any more until new drive or charge. data["power"] = 0.0 if "kwh_charged" in data: del data["kwh_charged"]