Actuator warning check (#41)

* Docker file optimizations

* Adding startup disable all

* Remove Error - Add warning for missing ids.
This commit is contained in:
lcmchris
2022-10-21 11:01:07 +01:00
committed by GitHub
parent 55817d278a
commit dcdab183c7
4 changed files with 19 additions and 9 deletions

View File

@@ -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,

View File

@@ -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}")

View File

@@ -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()]

View File

@@ -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")