updates 2024-07-31
This commit is contained in:
190
Pub_Sub/ek_facility/thingsboard/ek_facility_measures.csv
Normal file
190
Pub_Sub/ek_facility/thingsboard/ek_facility_measures.csv
Normal file
@@ -0,0 +1,190 @@
|
||||
MeasuringPointName,ControllerName,GroupName,UploadType,DeadZonePercent,DataType,ArrayIndex,EnableBit,BitIndex,reverseBit,Address,Decimal,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit,Pt,Ct,Mapping_table,TransDecimal,bitMap,msecSample,storageLwTSDB,DataEndianReverse,ReadOffset,ReadLength,WriteOffset,WriteLength,DataParseMethod,BitId
|
||||
a_current,ek_facility,default,periodic,,FLOAT,,,,,Val_A_Current,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ab_volt,ek_facility,default,periodic,,FLOAT,,,,,Val_AB_Volt,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ac_volt,ek_facility,default,periodic,,FLOAT,,,,,Val_AC_Volt,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ait_102a_turbitity,ek_facility,default,periodic,,FLOAT,,,,,AI_102A.Scaled_Out,2,,ro,,Inlet Turbitity Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ait_102b_h2s,ek_facility,default,periodic,,FLOAT,,,,,AI_102B.Scaled_Out,2,,ro,,Inlet H2S Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ait_102c_ph,ek_facility,default,periodic,,FLOAT,,,,,AI_102C.Scaled_Out,2,,ro,,Inlet pH Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ait_102d_oil_in_water,ek_facility,default,periodic,,FLOAT,,,,,AI_102D.Scaled_Out,2,,ro,,Inlet Oil In Water,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ait_114a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,AIT_114A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
ait_114b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,AIT_114B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
ait_114c_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,AIT_114C.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
ait_114d_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,AIT_114D.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
ait_114e_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,AIT_114E.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
at_109a_turbidity,ek_facility,default,periodic,,FLOAT,,,,,AI_109A.Scaled_Out,2,,ro,,Outlet Turbidity Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
at_109b_h2s,ek_facility,default,periodic,,FLOAT,,,,,AI_109B.Scaled_Out,2,,ro,,Outlet H2S Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
at_109c_oil_in_water,ek_facility,default,periodic,,FLOAT,,,,,AI_109C.Scaled_Out,2,,ro,,Outlet Oil In Water Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
at_109d_o2_in_water,ek_facility,default,periodic,,FLOAT,,,,,AI_109D.Scaled_Out,2,,ro,,Outlet O2 In Water Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
at_109e_orp,ek_facility,default,periodic,,FLOAT,,,,,AI_109E.Scaled_Out,2,,ro,,Outlet ORP Value,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
b_current,ek_facility,default,periodic,,FLOAT,,,,,Val_B_Current,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
bc_volt,ek_facility,default,periodic,,FLOAT,,,,,Val_BC_Volt,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
bp_3a_auto,ek_facility,default,periodic,,BIT,,,,0,BP_3A_Auto,,,ro,,M107A HOA Hand Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3a_fault,ek_facility,default,periodic,,BIT,,,,0,BP_3A_Fault_FBK,,,ro,,M107A Fault Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3a_hand,ek_facility,default,periodic,,BIT,,,,0,BP_3A_Hand,,,ro,,M107A HOA Auto Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3a_run,ek_facility,default,periodic,,BIT,,,,0,BP_3A_RUN_FDBK,,,ro,,M107A Run Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3a_run_cmd,ek_facility,default,periodic,,BIT,,,,0,BP_3A,,,ro,,M107A Run Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3a_run_fail_alm,ek_facility,default,periodic,,BIT,,,,0,BP_3A_RUN_FAIL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_auto,ek_facility,default,periodic,,BIT,,,,0,BP_3B_Auto,,,ro,,M107B HOA Hand Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_fault,ek_facility,default,periodic,,BIT,,,,0,BP_3B_Fault_FBK,,,ro,,M107B Fault Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_hand,ek_facility,default,periodic,,BIT,,,,0,BP_3B_Hand,,,ro,,M107B HOA Auto Feedback,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_run,ek_facility,default,periodic,,BIT,,,,0,BP_3B_RUN_FDBK,,,ro,,M107B Run Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_run_cmd,ek_facility,default,periodic,,BIT,,,,0,BP_3B,,,ro,,M107B Run Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
bp_3b_run_fail_alm,ek_facility,default,periodic,,BIT,,,,0,BP_3B_RUN_FAIL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
c_current,ek_facility,default,periodic,,FLOAT,,,,,Val_C_Current,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
chemical_pump_01_rate_offset,ek_facility,default,periodic,,FLOAT,,,,,SPT_Chemical_Pump_1_Rate_Offset,2,,ro,%,Operator Adjustment,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
chemical_pump_01_run_status,ek_facility,default,periodic,,BIT,,,,0,FBK_Chemical_Pump_1_Running,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
chemical_pump_auto,ek_facility,default,periodic,,BIT,,,,0,CMD_Chemical_Pump_Auto,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
compressor_ambient_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Ambient_Temp,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
compressor_controller_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Controller_Temp,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
compressor_outlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Outlet_PSI,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
compressor_outlet_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Outlet_Element_Temp,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
ct_200_current,ek_facility,default,periodic,,FLOAT,,,,,CT_200.Scaled_Out,2,,ro,,M-105 Motor Amperage,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
dpi_108a_pressure,ek_facility,default,periodic,,FLOAT,,,,,DPI_108A,2,,ro,,Differential PSI Across Sock Filter,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
dpi_108b_pressure,ek_facility,default,periodic,,FLOAT,,,,,DPI_108B,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
esd_exists,ek_facility,default,periodic,,BIT,,,,0,ESD_Exists,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fcv_001_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_001_PRESCALE,2,,ro,,M107A Control Valve Setpoint,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fcv_002_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_002_PRESCALE,2,,ro,,M107B Control Valve Setpoint,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fcv_101a_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_101A.Scaled_Out,2,,ro,,Reject Stream Throttling Valve Position Feedback,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fcv_101b_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_101B.Scaled_Out,2,,ro,,Inlet Stream Throttling Valve Position Feedback,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fi_101b_popoff,ek_facility,default,periodic,,BIT,,,,0,FI_101B.Discrete_Input,,,ro,,Reject Stream Popoff Flow Switch,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fis_112_h2o2_popoff,ek_facility,default,periodic,,BIT,,,,0,FIS_112_FBK,,,ro,,H2O2 Popoff Flow Switch,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_004_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_004.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_100_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_100.Scaled_Out,2,,ro,,Inlet Flow Rate To ACW,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_hi_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_100.AH,,,ro,,Inlet Flow Rate To ACW Hi,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_100_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_100.AHH,,,ro,,Inlet Flow Rate To ACW HiHi,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_100_lo_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_100.AL,,,ro,,Inlet Flow Rate To ACW Lo,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_100_water_job,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Job_Total,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_water_last_month,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Water_LastMonth,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_water_lifetime,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Water_T1,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_water_month,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Water_Month,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_water_today,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Water_Todays,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_100_water_yesterday,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_100_Water_Yest,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_101_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_101.Scaled_Out,2,,ro,bbls,Reject Stream Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_102_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_102.Scaled_Out,2,,ro,,Inlet Slip Stream Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_104_n2_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_004.Scaled_Out,2,,ro,,M-104 Onyx Pump N2 Injection Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_106a_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_106A.Scaled_Out,2,,ro,,M-106A Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_106a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_106A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_106b_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_106B.Scaled_Out,2,,ro,,M-106B Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_106b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_106B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_107a_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_107A.Scaled_Out,2,,ro,,M107A Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_107a_lolo_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_107A.ALL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_107b_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_107B.Scaled_Out,2,,ro,,M107B Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_107b_lolo_alm,ek_facility,default,periodic,,BIT,,,,0,FIT_107B.ALL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
fit_109a_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_109A.Scaled_Out,2,,ro,,Outlet Slip Stream Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_109B.Scaled_Out,2,,ro,,Outlet Sales Meter,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_job,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Job_Total,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_last_month,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Water_LastMonth,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_lifetime,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Water_T1,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_month,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Water_Month,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_today,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Water_Todays,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_109b_water_yesterday,ek_facility,default,periodic,,FLOAT,,,,,Val_FIT_109B_Water_Yest,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_111_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_111.Scaled_Out,2,,ro,,FIT_111 Inlet Gas Flow Rate To ACW,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_112a_h2o2_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_112A.Scaled_Out,2,,ro,,H2O2 Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
fit_112b_nahso3_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_112B.Scaled_Out,2,,ro,,NaHSO3 Flow Rate,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
h2o2_chemical_rate,ek_facility,default,periodic,,INT,,0,,,Chemical_Pump_1_Rate,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
li_103D_level_alm,ek_facility,default,periodic,,BIT,,,,0,LI_103D_FBK,,,ro,,ACW Containment Level Tripped (Red When Tripped Please),none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
lit_101_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_101.Scaled_Out,2,,ro,,Chamber 5 Skim Level In Weir,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
lit_112a_h2o2_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_112A.Scaled_Out,2,,ro,,H2O2 Chemical Level,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
lit_112b_nahso3_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_112B.Scaled_Out,2,,ro,,NaHSO3 Chemical Level,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
lit_170_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,LIT_170.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
lit_170_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_170.Scaled_Out,2,,ro,,Chamber 5 Level GWR,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
lit_200_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,LIT_200.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
lit_200_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_200.Scaled_Out,2,,ro,,Chamber 5 Level DP,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
lsh_114_alm,ek_facility,default,periodic,,BIT,,,,0,LSH_114.ALARM,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
lsh_120_alm,ek_facility,default,periodic,,BIT,,,,0,LSH-120.ALARM,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
lsh_120_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,LSH_120,,,ro,,ACW Chamber 5 Level HiHi Switch Tripped (Red When Tripped Please),none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106a_vfd_active,ek_facility,default,periodic,,BIT,,,,0,M106A_VFD:I.Active,,,ro,,M-106A Run Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106a_vfd_faulted_alm,ek_facility,default,periodic,,BIT,,,,0,M106A_VFD:I.Faulted,,,ro,,M-106A Fault Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106a_vfd_frequency,ek_facility,default,periodic,,INT,,0,,,M106A_VFD:I.OutputFreq,,,ro,,M-106A Current Output Frequency,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
m106a_vfd_start,ek_facility,default,periodic,,BIT,,,,0,M106A_VFD:O.Start,,,ro,,M-106A Start Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106a_vfd_stop,ek_facility,default,periodic,,BIT,,,,0,M106A_VFD:O.Stop,,,ro,,M-106A Stop Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106b_vfd_active,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:I.Active,,,ro,,M-106B Run Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106b_vfd_faulted_alm,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:I.Faulted,,,ro,,M-106B Fault Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106b_vfd_frequency,ek_facility,default,periodic,,INT,,0,,,M106B_VFD:I.OutputFreq,,,ro,,M-106B Current Output Frequency,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
m106b_vfd_start,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:O.Start,,,ro,,M-106B Start Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
m106b_vfd_stop,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:O.Stop,,,ro,,M-106B Stop Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
n2_inlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Inlet_PSI,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
n2_outlet_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Outlet_Flow_Rate,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
n2_outlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_ N2_Outlet_ PSI,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
n2_outlet_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Outlet_Temp,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
n2_purity,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_N2_Purity,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
p100_auto,ek_facility,default,periodic,,BIT,,,,0,P100_Auto,,,ro,,M-104 Onyx Pump HOA Auto Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
p100_hand,ek_facility,default,periodic,,BIT,,,,0,P100_Hand,,,ro,,M-104 Onyx Pump HOA Hand Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
p200_auto,ek_facility,default,periodic,,BIT,,,,0,P200_Auto,,,ro,,M-105 Skim Pump HOA Hand Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
p200_hand,ek_facility,default,periodic,,BIT,,,,0,P200_Hand,,,ro,,M-105 Skim Pump HOA Auto Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdi_065_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PDI_065.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdi_065_lo_alm,ek_facility,default,periodic,,BIT,,,,0,PDI_065.AL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdi_065_lolo_alm,ek_facility,default,periodic,,BIT,,,,0,PDI_065.ALL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdi_065_pressure,ek_facility,default,periodic,,FLOAT,,,,,PDI_065.AI_Scaled,2,,ro,,M-104 Onyx Pump Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pdt_108a_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108A.AH,,,ro,,Sock Filter High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108A.AHH,,,ro,,Sock Filter High High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108b_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108B.AH,,,ro,,Cartrige Filter #1 High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108B.AHH,,,ro,,Cartrige Filter #1 High High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108b_pressure,ek_facility,default,periodic,,FLOAT,,,,,PDT_108B.AI_Scaled,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pdt_108c_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108C.AH,,,ro,,Cartrige Filter #2 High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108c_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PDT_108C.AHH,,,ro,,Cartrige Filter #2 High High Differential PSI,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pdt_108c_pressure,ek_facility,default,periodic,,FLOAT,,,,,PDT_108C.AI_Scaled,2,,ro,,Differential PSI Across Cartrige Filter #2,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_050_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_050.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_050_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_050.Scaled_Out,2,,ro,,PIT-104A Onyx Pump Suction PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_065_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_065.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_065_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_065.Scaled_Out,2,,ro,,PIT_104D Onyx Pump Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_100_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_100.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_100_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_100.Scaled_Out,2,,ro,,M-105 Skim Pump Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_100a_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_100A.Scaled_Out,2,,ro,psi,Inlet PSI External To ACW,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_101a_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_101A.AH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_101A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101a_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_101A.Scaled_Out,2,,ro,psi,"Inlet PSI Internal To ACW, Before SDV-101A",none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_101a_transmitter_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_101A.XFail,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101b_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_P101B.AH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_101B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101b_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_101B.Scaled_Out,2,,ro,psi,"Inlet PSI Internal To ACW, After SDV-101A",none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_101b_transmitter_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_101B.XFail,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_101c_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_101C.Scaled_Out,2,,ro,psi,Reject Stream PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_102_hi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_102.AH,,,ro,,Indicated if PIT102 is in Hi alarm state,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_102_hi_spt,ek_facility,default,periodic,,BIT,,,,0,PIT_102.AH_SP,,,ro,,"PIT_102 Hi Alarm Setpoint, If needed",none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_102_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_102.AHH,,,ro,,Indicates if PIT102 is in HiHi alarm state,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_102_hihi_spt,ek_facility,default,periodic,,BIT,,,,0,PIT_102.AHH_SP,,,ro,,PIT_102 HiHi Alarm Setpoint If Needed,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_102_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_102.Scaled_Out,2,,ro,,Inlet PSI To Reaction Tank,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_106a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_106A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_106a_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_106A.Scaled_Out,2,,ro,,M-106A Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_106b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_106B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_106b_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_106B.Scaled_Out,2,,ro,,M-106B Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_106c_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_106C.Scaled_Out,2,,ro,,"Reject Stream Discharge Header PSI, Pre SDV 106",none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_106d_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_106D.Scaled_Out,2,,ro,,"Reject Stream Discharge Header PSI, Post SDV106",none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_107a_lolo_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_107A.ALL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_107a_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_107A.Scaled_Out,2,,ro,,M107A & M107B Suction Header PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_107b_lolo_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_107B.ALL,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_107b_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_107B.Scaled_Out,2,,ro,,M107A Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_107c_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_107C.Scaled_Out,2,,ro,,M107A and M107B Discharge Flow Line PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_107d_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_107D.Scaled_Out,2,,ro,,M107B Discharge PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108G.Scaled_Out,2,,ro,,Post Filter Flow Line PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_108A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_108a_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108A.Scaled_Out,2,,ro,,Pre Sock Filter PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_108B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_108b_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108B.Scaled_Out,2,,ro,,Post Sock Filter PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108c_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_108C.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_108c_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108C.Scaled_Out,2,,ro,,Pre Cartrige Filter #1 PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108d_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108D.Scaled_Out,2,,ro,,Post Cartrige Filter #1 PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108e_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108E.Scaled_Out,2,,ro,,Pre Cartrige Filter #2 PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108f_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_108F.Scaled_Out,2,,ro,,Post Cartrige Filter #2 PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_108g_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_108G.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_110_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_110.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_110_pressure,ek_facility,default,periodic,,FLOAT,,,,,PIT_110.Scaled_Out,2,,ro,,PIT_103 ACW Vapor Space Pressure,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_111a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_111A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_111a_n2,ek_facility,default,periodic,,FLOAT,,,,,PIT_111A.Scaled_Out,2,,ro,,N2 System PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_111b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_111B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_111b_n2,ek_facility,default,periodic,,FLOAT,,,,,PIT_111B.Scaled_Out,2,,ro,,Inlet Skid N2 PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pit_111c_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,PIT_111C.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
pit_111c_n2,ek_facility,default,periodic,,FLOAT,,,,,PIT_111C.Scaled_Out,2,,ro,,N2 Outlet Skid PSI,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
pnl_esd_alm,ek_facility,default,periodic,,BIT,,,,0,PNL_ESD.ALARM,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
rmt_sd_alm,ek_facility,default,periodic,,BIT,,,,0,RMT_SD.ALARM,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
scada_stop_cmd,ek_facility,default,periodic,,BIT,,,,0,CMD_Scada_Stop,,,rw,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
sdv_101a,ek_facility,default,periodic,,INT,,1,7,0,Local:12:I.Data,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
sdv106_closed,ek_facility,default,periodic,,BIT,,,,0,SDV106_Closed_FBK,,,ro,,SDV106 Closed Feedback Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
sdv106_open,ek_facility,default,periodic,,BIT,,,,0,SDV106_Open_FBK,,,ro,,SDV106 Open Feedback Status,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
skim_total_barrels,ek_facility,default,periodic,,FLOAT,,,,,SKIM_TOTAL_BARRELS,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
spt_chemical_manual_rate,ek_facility,default,periodic,,FLOAT,,,,,SPT_Chemical_Manual_Rate,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,
|
||||
xy_100_run,ek_facility,default,periodic,,BIT,,,,0,XY_100,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
xy_200_run,ek_facility,default,periodic,,BIT,,,,0,XY_200,,,ro,,M-105 Run Command,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
zae_111a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,ZAE_111A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
zae_111b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,ZAE_111B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,
|
||||
|
1813
Pub_Sub/ek_facility/thingsboard/ek_facility_tb_v1_ekko_1.cfg
Normal file
1813
Pub_Sub/ek_facility/thingsboard/ek_facility_tb_v1_ekko_1.cfg
Normal file
File diff suppressed because one or more lines are too long
3096
Pub_Sub/ek_facility/thingsboard/ek_facility_v3.cfg
Normal file
3096
Pub_Sub/ek_facility/thingsboard/ek_facility_v3.cfg
Normal file
File diff suppressed because one or more lines are too long
190
Pub_Sub/ek_facility/thingsboard/pub/sendData.py
Normal file
190
Pub_Sub/ek_facility/thingsboard/pub/sendData.py
Normal file
@@ -0,0 +1,190 @@
|
||||
# Enter your python code.
|
||||
import json, os, time
|
||||
from datetime import datetime as dt
|
||||
from common.Logger import logger
|
||||
from quickfaas.remotebus import publish
|
||||
from quickfaas.global_dict import get as get_params
|
||||
from quickfaas.global_dict import _set_global_args
|
||||
from mobiuspi_lib.gps import GPS
|
||||
|
||||
def reboot():
|
||||
#basic = Basic()
|
||||
logger.info("!" * 10 + "REBOOTING DEVICE" + "!"*10)
|
||||
r = os.popen("kill -s SIGHUP `cat /var/run/python/supervisord.pid`").read()
|
||||
logger.info(f"REBOOT : {r}")
|
||||
|
||||
def checkFileExist(filename):
|
||||
path = "/var/user/files"
|
||||
if not os.path.exists(path):
|
||||
logger.info("no folder making files folder in var/user")
|
||||
os.makedirs(path)
|
||||
with open(path + "/" + filename, "a") as f:
|
||||
json.dump({}, f)
|
||||
if not os.path.exists(path + "/" + filename):
|
||||
logger.info("no creds file making creds file")
|
||||
with open(path + "/" + filename, "a") as f:
|
||||
json.dump({}, f)
|
||||
|
||||
def convertDStoJSON(ds):
|
||||
j = dict()
|
||||
for x in ds:
|
||||
j[x["key"]] = x["value"]
|
||||
return j
|
||||
|
||||
def convertJSONtoDS(j):
|
||||
d = []
|
||||
for key in j.keys():
|
||||
d.append({"key": key, "value": j[key]})
|
||||
return d
|
||||
|
||||
def checkCredentialConfig():
|
||||
logger.info("CHECKING CONFIG")
|
||||
cfgpath = "/var/user/cfg/device_supervisor/device_supervisor.cfg"
|
||||
credspath = "/var/user/files/creds.json"
|
||||
cfg = dict()
|
||||
with open(cfgpath, "r") as f:
|
||||
cfg = json.load(f)
|
||||
clouds = cfg.get("clouds")
|
||||
logger.info(clouds)
|
||||
#if not configured then try to configure from stored values
|
||||
if clouds[0]["args"]["clientId"] == "unknown" or clouds[0]["args"]["username"] == "unknown" or not clouds[0]["args"]["passwd"] or clouds[0]["args"]["passwd"] == "unknown":
|
||||
checkFileExist("creds.json")
|
||||
with open(credspath, "r") as c:
|
||||
creds = json.load(c)
|
||||
if creds:
|
||||
logger.info("updating config with stored data")
|
||||
clouds[0]["args"]["clientId"] = creds["clientId"]
|
||||
clouds[0]["args"]["username"] = creds["userName"]
|
||||
clouds[0]["args"]["passwd"] = creds["password"]
|
||||
cfg["clouds"] = clouds
|
||||
cfg = checkParameterConfig(cfg)
|
||||
with open(cfgpath, "w", encoding='utf-8') as n:
|
||||
json.dump(cfg, n, indent=1, ensure_ascii=False)
|
||||
reboot()
|
||||
else:
|
||||
#assuming clouds is filled out, if data is different then assume someone typed in something new and store it, if creds is empty fill with clouds' data
|
||||
checkFileExist("creds.json")
|
||||
with open(credspath, "r") as c:
|
||||
logger.info("updating stored file with new data")
|
||||
cfg = checkParameterConfig(cfg)
|
||||
with open(cfgpath, "w", encoding='utf-8') as n:
|
||||
json.dump(cfg, n, indent=1, ensure_ascii=False)
|
||||
creds = json.load(c)
|
||||
if creds:
|
||||
if creds["clientId"] != clouds[0]["args"]["clientId"]:
|
||||
creds["clientId"] = clouds[0]["args"]["clientId"]
|
||||
if creds["userName"] != clouds[0]["args"]["username"]:
|
||||
creds["userName"] = clouds[0]["args"]["username"]
|
||||
if creds["password"] != clouds[0]["args"]["passwd"]:
|
||||
creds["password"] = clouds[0]["args"]["passwd"]
|
||||
else:
|
||||
creds["clientId"] = clouds[0]["args"]["clientId"]
|
||||
creds["userName"] = clouds[0]["args"]["username"]
|
||||
creds["password"] = clouds[0]["args"]["passwd"]
|
||||
with open(credspath, "w") as cw:
|
||||
json.dump(creds,cw)
|
||||
|
||||
def checkParameterConfig(cfg):
|
||||
logger.info("Checking Parameters!!!!")
|
||||
paramspath = "/var/user/files/params.json"
|
||||
cfgparams = convertDStoJSON(cfg.get("labels"))
|
||||
#check stored values
|
||||
checkFileExist("params.json")
|
||||
with open(paramspath, "r") as f:
|
||||
logger.info("Opened param storage file")
|
||||
params = json.load(f)
|
||||
if params:
|
||||
if cfgparams != params:
|
||||
#go through each param
|
||||
#if not "unknown" and cfg and params aren't the same take from cfg likely updated manually
|
||||
#if key in cfg but not in params copy to params
|
||||
logger.info("equalizing params between cfg and stored")
|
||||
for key in cfgparams.keys():
|
||||
try:
|
||||
if cfgparams[key] != params[key] and cfgparams[key] != "unknown":
|
||||
params[key] = cfgparams[key]
|
||||
except:
|
||||
params[key] = cfgparams[key]
|
||||
cfg["labels"] = convertJSONtoDS(params)
|
||||
_set_global_args(convertJSONtoDS(params))
|
||||
with open(paramspath, "w") as p:
|
||||
json.dump(params, p)
|
||||
else:
|
||||
with open(paramspath, "w") as p:
|
||||
logger.info("initializing param file with params in memory")
|
||||
json.dump(convertDStoJSON(get_params()), p)
|
||||
cfg["labels"] = get_params()
|
||||
|
||||
return cfg
|
||||
|
||||
def getGPS():
|
||||
# Create a gps instance
|
||||
gps = GPS()
|
||||
|
||||
# Retrieve GPS information
|
||||
position_status = gps.get_position_status()
|
||||
logger.debug("position_status: ")
|
||||
logger.debug(position_status)
|
||||
latitude = position_status["latitude"].split(" ")
|
||||
longitude = position_status["longitude"].split(" ")
|
||||
lat_dec = int(latitude[0][:-1]) + (float(latitude[1][:-1])/60)
|
||||
lon_dec = int(longitude[0][:-1]) + (float(longitude[1][:-1])/60)
|
||||
if latitude[2] == "S":
|
||||
lat_dec = lat_dec * -1
|
||||
if longitude[2] == "W":
|
||||
lon_dec = lon_dec * -1
|
||||
#lat_dec = round(lat_dec, 7)
|
||||
#lon_dec = round(lon_dec, 7)
|
||||
logger.info("HERE IS THE GPS COORDS")
|
||||
logger.info(f"LATITUDE: {lat_dec}, LONGITUDE: {lon_dec}")
|
||||
speedKnots = position_status["speed"].split(" ")
|
||||
speedMPH = float(speedKnots[0]) * 1.151
|
||||
return (f"{lat_dec:.8f}",f"{lon_dec:.8f}",f"{speedMPH:.2f}")
|
||||
|
||||
def chunk_payload(payload, chunk_size=20):
|
||||
if "values" in payload:
|
||||
# Original format: {"ts": ..., "values": {...}}
|
||||
chunked_values = list(payload["values"].items())
|
||||
for i in range(0, len(chunked_values), chunk_size):
|
||||
yield {
|
||||
"ts": payload["ts"],
|
||||
"values": dict(chunked_values[i:i+chunk_size])
|
||||
}
|
||||
else:
|
||||
# New format: {"key1": "value1", "key2": "value2"}
|
||||
chunked_keys = list(payload.keys())
|
||||
for i in range(0, len(chunked_keys), chunk_size):
|
||||
yield {k: payload[k] for k in chunked_keys[i:i+chunk_size]}
|
||||
|
||||
def sendData(message):
|
||||
#logger.debug(message)
|
||||
try:
|
||||
checkCredentialConfig()
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
payload = {"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values": {}}
|
||||
attributes_payload = {}
|
||||
for measure in message["measures"]:
|
||||
try:
|
||||
logger.debug(measure)
|
||||
if measure["health"] == 1:
|
||||
if "_spt" in measure["name"]:
|
||||
attributes_payload[measure["name"]] = measure["value"]
|
||||
payload["values"][measure["name"]] = measure["value"]
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
|
||||
try:
|
||||
payload["values"]["latitude"], payload["values"]["longitude"], payload["values"]["speed"] = getGPS()
|
||||
except:
|
||||
logger.error("Could not get GPS coordinates")
|
||||
|
||||
for chunk in chunk_payload(payload=payload):
|
||||
publish(__topic__, json.dumps(chunk), __qos__)
|
||||
time.sleep(2)
|
||||
|
||||
attributes_payload["latestReportTime"] = (round(dt.timestamp(dt.now())/600)*600)*1000
|
||||
for chunk in chunk_payload(payload=attributes_payload):
|
||||
publish("v1/devices/me/attributes", json.dumps(chunk), __qos__)
|
||||
time.sleep(2)
|
||||
|
||||
75
Pub_Sub/ek_facility/thingsboard/sub/receiveCommands.py
Normal file
75
Pub_Sub/ek_facility/thingsboard/sub/receiveCommands.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import json, time
|
||||
from datetime import datetime as dt
|
||||
from quickfaas.measure import recall, write
|
||||
from quickfaas.remotebus import publish
|
||||
from common.Logger import logger
|
||||
|
||||
# Helper function to split the payload into chunks
|
||||
def chunk_payload(payload, chunk_size=20):
|
||||
chunked_values = list(payload["values"].items())
|
||||
for i in range(0, len(chunked_values), chunk_size):
|
||||
yield {
|
||||
"ts": payload["ts"],
|
||||
"values": dict(chunked_values[i:i+chunk_size])
|
||||
}
|
||||
|
||||
def sync():
|
||||
#get new values and send
|
||||
payload = {"ts": round(dt.timestamp(dt.now()))*1000, "values": {}}
|
||||
topic = "v1/devices/me/telemetry"
|
||||
try:
|
||||
data = recall()#json.loads(recall().decode("utf-8"))
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
logger.debug(data)
|
||||
for controller in data:
|
||||
for measure in controller["measures"]:
|
||||
#publish measure
|
||||
payload["values"][measure["name"]] = measure["value"]
|
||||
logger.debug("Sending on topic: {}".format(topic))
|
||||
logger.debug("Sending value: {}".format(payload))
|
||||
for chunk in chunk_payload(payload=payload):
|
||||
publish(topic, json.dumps(chunk), 1)
|
||||
time.sleep(2)
|
||||
|
||||
def writeplctag(value):
|
||||
#value in the form {"measurement": <measurement_name>, "value": <value to write>}
|
||||
try:
|
||||
#value = json.loads(value.replace("'",'"'))
|
||||
logger.info(value)
|
||||
#payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
||||
message = [{"name": "ek_facility", "measures":[{"name":value["measurement"], "value": value["value"]}]}]
|
||||
resp = write(message)
|
||||
logger.info("RETURN FROM WRITE: {}".format(resp))
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
return False
|
||||
|
||||
def receiveCommand(topic, payload, wizard_api):
|
||||
try:
|
||||
logger.debug(topic)
|
||||
logger.info(json.loads(payload))
|
||||
p = json.loads(payload)
|
||||
command = p["method"]
|
||||
commands = {
|
||||
"sync": sync,
|
||||
"writeplctag": writeplctag,
|
||||
}
|
||||
if command == "setPLCTag":
|
||||
result = commands["writeplctag"](p["params"])
|
||||
if result:
|
||||
sync()
|
||||
#commands[command](p["mac"].lower(),p["payload"]["value"], wizard_api)
|
||||
#logger.debug(command)
|
||||
ack(topic.split("/")[-1], wizard_api)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
|
||||
|
||||
def ack(msgid, wizard_api):
|
||||
#logger.debug(msgid)
|
||||
#logger.debug(mac)
|
||||
#logger.debug(name)
|
||||
#logger.debug(value)
|
||||
wizard_api.mqtt_publish("v1/devices/me/rpc/response/" + str(msgid), json.dumps({"msg": {"time": time.time()}, "metadata": "", "msgType": ""}))
|
||||
Reference in New Issue
Block a user