mirror of
https://github.com/flobz/psa_car_controller.git
synced 2026-08-23 09:56:14 +00:00
+5
-1
@@ -1,5 +1,6 @@
|
||||
from mylogger import logger
|
||||
from psa_connectedcar import Position, Geometry, PositionProperties, Kinetic, Energy, EnergyCharging, Status
|
||||
from psa_connectedcar import Position, Geometry, PositionProperties, Kinetic, Energy, EnergyCharging, Status, \
|
||||
VehicleOdometer
|
||||
|
||||
|
||||
# pylint: disable=too-many-arguments
|
||||
@@ -27,6 +28,9 @@ class CarStatus(Status):
|
||||
if len(self._energy) == 2 and self._energy[0].type != 'Electric':
|
||||
self._energy = self._energy[::-1]
|
||||
|
||||
if self.timed_odometer is None:
|
||||
self.timed_odometer = VehicleOdometer()
|
||||
|
||||
def is_moving(self):
|
||||
try:
|
||||
return self.kinetic.moving
|
||||
|
||||
+12
-8
@@ -163,12 +163,15 @@ class MyPSACC:
|
||||
def __refresh_vehicle_info(self):
|
||||
if self.info_refresh_rate is not None:
|
||||
while True:
|
||||
sleep(self.info_refresh_rate)
|
||||
logger.debug("refresh_vehicle_info")
|
||||
for car in self.vehicles_list:
|
||||
self.get_vehicle_info(car.vin)
|
||||
for callback in self.info_callback:
|
||||
callback()
|
||||
try:
|
||||
sleep(self.info_refresh_rate)
|
||||
logger.debug("refresh_vehicle_info")
|
||||
for car in self.vehicles_list:
|
||||
self.get_vehicle_info(car.vin)
|
||||
for callback in self.info_callback:
|
||||
callback()
|
||||
except: # pylint: disable=bare-except
|
||||
logger.exception("refresh_vehicle_info: ")
|
||||
|
||||
def start_refresh_thread(self):
|
||||
if self.refresh_thread is None:
|
||||
@@ -270,7 +273,7 @@ class MyPSACC:
|
||||
|
||||
def __get_mqtt_customer_id(self):
|
||||
brand_code = self.customer_id[:2]
|
||||
return MQTT_BRANDCODE[brand_code]+self.customer_id[2:]
|
||||
return MQTT_BRANDCODE[brand_code] + self.customer_id[2:]
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
def __on_mqtt_connect(self, client, userdata, result_code, _):
|
||||
@@ -395,6 +398,7 @@ class MyPSACC:
|
||||
logger.info("ask wakeup to %s", vin)
|
||||
msg = self.mqtt_request(vin, {"action": "state"})
|
||||
logger.info(msg)
|
||||
self.mqtt_client.publish(MQTT_REQ_TOPIC + self.__get_mqtt_customer_id() + "/VehCharge/state", msg)
|
||||
return True
|
||||
|
||||
def lock_door(self, vin, lock: bool):
|
||||
@@ -437,7 +441,7 @@ class MyPSACC:
|
||||
f.write(config_str)
|
||||
self._config_hash = new_hash
|
||||
logger.info("save config change")
|
||||
# disconnect
|
||||
|
||||
@staticmethod
|
||||
def load_config(name="config.json"):
|
||||
with open(name, "r") as f:
|
||||
|
||||
+6
-1
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
from datetime import datetime
|
||||
from json import JSONDecodeError
|
||||
|
||||
import requests
|
||||
|
||||
@@ -40,7 +41,11 @@ class Abrp:
|
||||
response = requests.request("POST", self.url, params=params, proxies=self.proxies,
|
||||
verify=self.proxies is None)
|
||||
logger.debug(response.text)
|
||||
return response.json()["status"] == "ok"
|
||||
try:
|
||||
return response.json()["status"] == "ok"
|
||||
except (JSONDecodeError, KeyError):
|
||||
logger.error("Bad response from ABRP API: %s", response.text)
|
||||
return False
|
||||
except (AttributeError, IndexError, ValueError):
|
||||
logger.exception("abrp:")
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user