Added a special token to avoid usage conflicts.
This commit is contained in:
parent
67874de37a
commit
c5782018b8
@ -10,22 +10,26 @@ MD1200BAUD = int(os.getenv("MD1200BAUD", 38400))
|
||||
# used if you want to run it on multiple JBODs
|
||||
SERIALADAPTER = os.getenv("SERIALADAPTER", "/dev/ttyUSB0")
|
||||
# Factor that defines how aggressive the temperature curve is
|
||||
TEMP_FACTOR = int(os.getenv("TEMP_FACTOR", 19))
|
||||
TEMP_FACTOR = float(os.getenv("TEMP_FACTOR", 19))
|
||||
# time between sending command to get temp and storing it. It's there to allow JBOD to answer
|
||||
EPPYSLEEPY = float(os.getenv("EPPYSLEEPY", 1))
|
||||
|
||||
LOW_FAN_TRSHD = int(os.getenv("LOW_FAN_TRSHD", 21))
|
||||
HIGH_FAN_TRSHD = int(os.getenv("HIGH_FAN_TRSHD", 40))
|
||||
LOW_FAN_TRSHD = float(os.getenv("LOW_FAN_TRSHD", 21))
|
||||
HIGH_FAN_TRSHD = float(os.getenv("HIGH_FAN_TRSHD", 40))
|
||||
|
||||
GETTMPCMND = os.getenv("GETTMPCMND", "_temp_rd")
|
||||
SETFANCMND = os.getenv("SETFANCMND", "set_speed")
|
||||
|
||||
DEFOUTPRCNTG = int(os.getenv("DEFOUTPRCNTG", 24))
|
||||
DEFOUTPRCNTG = float(os.getenv("DEFOUTPRCNTG", 24))
|
||||
|
||||
MDSERIALTIMEOUT = float(os.getenv("MDSERIALTIMEOUT", 1))
|
||||
|
||||
TEMPREADINTERVAL = float(os.getenv("TEMPREADINTERVAL", 15))
|
||||
|
||||
TEMPSETING = bool(os.getenv("TEMPSETING", True))
|
||||
|
||||
PROCESSTEMPWAITTIME = float(os.getenv("PROCESSTEMPWAITTIME"), 0.75)
|
||||
|
||||
# INFLUXDB config
|
||||
# token = "apg1gysUeCcxdcRTMmosJTenbEppmUNi9rXlANDB2oNadBdWAu2GVTDc_q_dyo0iyYsckKaOvPRm6ba2NK0y_A=="
|
||||
token = os.getenv("INFLUX_TOKEN")
|
||||
@ -56,6 +60,7 @@ MDserial = serial.Serial(
|
||||
lastTempReading = time.time()
|
||||
MDtempDict = {}
|
||||
MDict = {}
|
||||
currentSerialUsage = False
|
||||
fluxSending = False
|
||||
currentTime = 0
|
||||
lastTempReading = 0
|
||||
@ -68,12 +73,16 @@ write_api = inflxdb_client.write_api(write_options=SYNCHRONOUS)
|
||||
|
||||
|
||||
def getTemp():
|
||||
global MDict, fluxSending
|
||||
global MDict, fluxSending, currentSerialUsage
|
||||
|
||||
currentSerialUsage = True
|
||||
|
||||
MDserial.write(f"{GETTMPCMND}\n\r".encode())
|
||||
time.sleep(1)
|
||||
MDreturning = MDserial.read_until(" >").decode()
|
||||
|
||||
currentSerialUsage = False
|
||||
|
||||
# MDict = {}
|
||||
|
||||
# Sanitise output
|
||||
@ -133,6 +142,7 @@ def getTemp():
|
||||
|
||||
|
||||
def setSpeed(inSpeeDict: dict):
|
||||
global currentSerialUsage
|
||||
|
||||
bpavrg = 0
|
||||
# default
|
||||
@ -144,16 +154,23 @@ def setSpeed(inSpeeDict: dict):
|
||||
outfanprcntg = int((bpavrg / (HIGH_FAN_TRSHD - LOW_FAN_TRSHD)) * TEMP_FACTOR)
|
||||
# os.system(f"echo setting {outfanprcntg}%")
|
||||
|
||||
currentSerialUsage = True
|
||||
|
||||
# Set fan speed
|
||||
if outfanprcntg >= 20:
|
||||
MDserial.write((f"{SETFANCMND} {str(outfanprcntg)} \n\r").encode())
|
||||
print(f"setting {outfanprcntg}%", flush=True)
|
||||
|
||||
currentSerialUsage = False
|
||||
return 0
|
||||
else:
|
||||
# Set default value
|
||||
MDserial.write((f"{SETFANCMND} {str(DEFOUTPRCNTG)} \n\r").encode())
|
||||
|
||||
currentSerialUsage = False
|
||||
return 1
|
||||
|
||||
currentSerialUsage = False
|
||||
# If something goes super wrong
|
||||
return -1
|
||||
|
||||
@ -198,14 +215,14 @@ def process_temps():
|
||||
write_api.write(bucket=bucket, org=org, record=inflxdb_Data_To_Send)
|
||||
|
||||
|
||||
# Clean up before another loop
|
||||
# Clean up before another lo#op, 0.75
|
||||
inflxdb_LeData.clear()
|
||||
print("Sending data to InfluxDB", flush=True)
|
||||
|
||||
fluxSending = False
|
||||
|
||||
else:
|
||||
time.sleep(0.25)
|
||||
time.sleep(PROCESSTEMPWAITTIME)
|
||||
|
||||
|
||||
|
||||
@ -216,7 +233,7 @@ lastTempReading = time.time()
|
||||
|
||||
def mainCodeHere():
|
||||
while True:
|
||||
global MDict, fluxSending, currentTime, lastTempReading
|
||||
global MDict, fluxSending, currentTime, lastTempReading, currentSerialUsage
|
||||
# https://stackoverflow.com/questions/52578122/not-able-to-send-the-enter-command-on-pyserial
|
||||
|
||||
# get temperature data, wait for MD1200 to answer and store
|
||||
@ -227,7 +244,7 @@ def mainCodeHere():
|
||||
getTemp()
|
||||
lastTempReading = currentTime
|
||||
|
||||
if MDict:
|
||||
if MDict and TEMPSETING:
|
||||
setSpeedrcode = setSpeed(MDict)
|
||||
|
||||
# good
|
||||
@ -247,11 +264,18 @@ def mainCodeHere():
|
||||
else:
|
||||
print("idk", flush=True)
|
||||
exit()
|
||||
elif TEMPSETING == False:
|
||||
print(f"Waiting to get temp", flush=True)
|
||||
pass
|
||||
else:
|
||||
print(f"temperature not yet pulled.\nFalling back do default fan speed", flush=True)
|
||||
# os.system(f"echo temperature not yet pulled.\nFalling back do default fan speed")
|
||||
currentSerialUsage = True
|
||||
|
||||
MDserial.write((f"{SETFANCMND} {str(DEFOUTPRCNTG)} \n\r").encode())
|
||||
|
||||
currentSerialUsage = False
|
||||
|
||||
time.sleep(EPPYSLEEPY)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user