Actuator warning check (#41)
* Docker file optimizations * Adding startup disable all * Remove Error - Add warning for missing ids.
This commit is contained in:
@@ -3,8 +3,6 @@ import string
|
||||
import appdaemon.plugins.hass.hassapi as hass
|
||||
import pickle
|
||||
import pandas as pd
|
||||
from pandas import DataFrame
|
||||
from sklearn.tree import DecisionTreeClassifier
|
||||
import copy
|
||||
import os.path
|
||||
import logging
|
||||
@@ -90,7 +88,6 @@ class ModelExecutor(hass.Hass):
|
||||
all_rules = all_rules[all_rules["entity_id"] == act]
|
||||
|
||||
if not all_rules.empty:
|
||||
rules_to_verify.to_pickle("test.pkl")
|
||||
matching_rule = all_rules.merge(rules_to_verify)
|
||||
assert len(matching_rule) in [
|
||||
0,
|
||||
|
||||
@@ -51,6 +51,18 @@ def check_device_ids(in_data_ids):
|
||||
invalid_actuators_ids = set(tsh_config.actuators) - set(in_data_ids)
|
||||
invalid_sensors_ids = set(tsh_config.sensors) - set(in_data_ids)
|
||||
if invalid_actuators_ids:
|
||||
raise Exception(f"Cannot find actuator cases for ids {invalid_actuators_ids}")
|
||||
for invalid in list(invalid_actuators_ids):
|
||||
tsh_config.actuators.remove(invalid)
|
||||
logging.warning(
|
||||
f"Cannot find actuator cases for ids {invalid_actuators_ids}. Removing..."
|
||||
)
|
||||
if invalid_sensors_ids:
|
||||
raise Exception(f"Cannot find sensor cases for ids {invalid_sensors_ids}")
|
||||
for invalid in list(invalid_sensors_ids):
|
||||
tsh_config.sensors.remove(invalid)
|
||||
logging.warning(
|
||||
f"Cannot find sensor cases for ids {invalid_sensors_ids}. Removing..."
|
||||
)
|
||||
if len(invalid_actuators_ids) == len(tsh_config.actuators):
|
||||
raise Exception(f"No valid actuator cases for all ids {invalid_actuators_ids}")
|
||||
if len(invalid_sensors_ids) == len(tsh_config.actuators):
|
||||
raise Exception(f"No valid sensor cases for all ids {invalid_actuators_ids}")
|
||||
|
||||
@@ -10,7 +10,6 @@ from thesillyhome.model_creator.config_checker import check_device_ids
|
||||
import thesillyhome.model_creator.read_config_json as tsh_config
|
||||
|
||||
|
||||
|
||||
def get_current_states(df_output: pd.DataFrame) -> pd.DataFrame:
|
||||
"""
|
||||
Returns pivoted frame of each state id desc
|
||||
@@ -73,8 +72,10 @@ def parse_data_from_db():
|
||||
logging.info("Reading from homedb...")
|
||||
df_all = homedb().get_data()
|
||||
df_all = df_all[["entity_id", "state", "last_updated"]]
|
||||
|
||||
|
||||
check_device_ids(df_all["entity_id"].unique())
|
||||
logging.info(tsh_config.actuators)
|
||||
logging.info(tsh_config.sensors)
|
||||
|
||||
df_all["state"] = convert_unavailabe(df_all)
|
||||
assert ~df_all["state"].isnull().values.any(), df_all[df_all["state"].isnull()]
|
||||
|
||||
@@ -18,8 +18,8 @@ options = json.load(config_file)
|
||||
# Mandatory
|
||||
username = options.get("username")
|
||||
password = options.get("password")
|
||||
actuators = options.get("actuactors_id")
|
||||
sensors = options.get("sensors_id")
|
||||
actuators = list(options.get("actuactors_id"))
|
||||
sensors = list(options.get("sensors_id"))
|
||||
devices = actuators + sensors
|
||||
db_options = options.get("db_options")[0]
|
||||
db_password = db_options.get("db_password")
|
||||
|
||||
Reference in New Issue
Block a user