Spaces:
Sleeping
Sleeping
File size: 2,827 Bytes
3b66598 66977cd 3b66598 e8d4213 dbd7ac0 3b66598 66977cd 3b66598 66977cd 3b66598 4a389dc 3b66598 4a389dc dbd7ac0 e8d4213 816790f e8d4213 3b66598 816790f 985bb5d 66977cd 985bb5d 4a389dc 3b66598 816790f 3b66598 4a389dc 3b66598 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import json
from rtu.RTUAnomalizer1 import RTUAnomalizer1
from rtu.RTUAnomalizer2 import RTUAnomalizer2
from rtu.RTUPipeline import RTUPipeline
from vav.VAVPipeline import VAVPipeline
from vav.VAVAnomalizer import VAVAnomalizer
import paho.mqtt.client as mqtt
def main():
rtu_data_pipeline = RTUPipeline(scaler1_path="src/rtu/models/scaler_rtu_1_2.pkl",scaler2_path="src/rtu/models/scaler_rtu_3_4.pkl")
#RTU - 1, 2
rtu_anomalizer1 = RTUAnomalizer1(
prediction_model_path="src/rtu/models/lstm_2rtu_smooth_04.keras",
clustering_model_paths=[
"src/rtu/models/kmeans_rtu_1.pkl",
"src/rtu/models/kmeans_rtu_2.pkl",
],
num_inputs=rtu_data_pipeline.num_inputs,
num_outputs=rtu_data_pipeline.num_outputs,
)
#RTU - 3,4
rtu_anomalizer2 = RTUAnomalizer2(
prediction_model_path="src/rtu/models/lstm_2rtu_smooth_03.keras",
clustering_model_paths=[
"src/rtu/models/kmeans_rtu_3.pkl",
"src/rtu/models/kmeans_rtu_4.pkl",
],
num_inputs=rtu_data_pipeline.num_inputs,
num_outputs=rtu_data_pipeline.num_outputs,
)
vav_pipeline = VAVPipeline(rtu_id=1, scaler_path="src/vav/models/scaler_vav_1.pkl")
vav_anomalizer = VAVAnomalizer(
rtu_id=1,
prediction_model_path="src/vav/models/lstm_vav_01.keras",
clustering_model_path="src/vav/models/kmeans_vav_1.pkl",
num_inputs=vav_pipeline.num_inputs,
num_outputs=vav_pipeline.num_outputs,
)
# print(vav_pipeline.input_col_names)
# print(len(vav_pipeline.output_col_names))
def on_message(client, userdata, message):
df_new_vav, df_trans_vav = vav_pipeline.fit(message)
vav_anomalizer.num_inputs = vav_pipeline.num_inputs
vav_anomalizer.num_outputs = vav_pipeline.num_outputs
if not df_new_vav is None and not df_trans_vav is None:
out_vav = vav_anomalizer.pipeline(
df_new_vav, df_trans_vav, vav_pipeline.scaler
)
df_new1, df_trans1, df_new2, df_trans2 = rtu_data_pipeline.fit(message)
if not df_new1 is None and not df_trans1 is None and not df_new2 is None and not df_trans2 is None:
out1,out2,out3,out4 = rtu_anomalizer1.pipeline(df_new1, df_trans1, rtu_data_pipeline.scaler1)
out5,out6,out7,out8 = rtu_anomalizer2.pipeline(df_new2, df_trans2, rtu_data_pipeline.scaler2)
#print(out2)
broker_address = "localhost"
broker_port = 1883
topic = "sensor_data"
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1)
print("Connecting to broker")
client.on_message = on_message
client.connect(broker_address, broker_port)
client.subscribe(topic)
client.loop_forever()
if __name__ == "__main__":
main()
|