Compare commits
14 Commits
Author | SHA1 | Date |
---|---|---|
support.sampyo | 50a6bf2373 | |
support.sampyo | 5c1d08ee98 | |
support.sampyo | 95921c49b8 | |
support.sampyo | 44c6a224c2 | |
support.sampyo | 797816a6f5 | |
support.sampyo | 5c41e0664d | |
support.sampyo | f54f9e7fb5 | |
support.sampyo | ad62a2f89e | |
support.sampyo | c566b4070e | |
support.sampyo | 4239597f8a | |
support.sampyo | a47d7c2bd9 | |
support.sampyo | 1a6344fccf | |
support.sampyo | a493257c17 | |
support.sampyo | 696cc6f0e8 |
44
control.json
44
control.json
|
@ -4,36 +4,46 @@
|
||||||
"action": "Off"
|
"action": "Off"
|
||||||
},
|
},
|
||||||
"measure": {
|
"measure": {
|
||||||
"action": "On",
|
"action": "On"
|
||||||
"duration": 20
|
|
||||||
},
|
},
|
||||||
"mixed": {
|
"mixed": {
|
||||||
"action": "Off",
|
"action": "Off"
|
||||||
"duration": 5
|
|
||||||
},
|
},
|
||||||
"pure": {
|
"pure": {
|
||||||
"action": "Off",
|
"action": "Off",
|
||||||
"duration": 10,
|
"duration": 1.5
|
||||||
"holding": 7
|
},
|
||||||
|
"enter":{
|
||||||
|
"action": "Off"
|
||||||
},
|
},
|
||||||
"enter":{
|
|
||||||
"action": "Off",
|
|
||||||
"duration": 5
|
|
||||||
},
|
|
||||||
"vent": {
|
"vent": {
|
||||||
"action": "Off",
|
"action": "On"
|
||||||
"duration": 15,
|
|
||||||
"holding": 5
|
|
||||||
},
|
},
|
||||||
"motor": {
|
"motor": {
|
||||||
"action": "Off"
|
"action": "Off"
|
||||||
|
},
|
||||||
|
"main": {
|
||||||
|
"action": "Off",
|
||||||
|
"duration": 1.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"working-time":{
|
||||||
|
"step0": 5,
|
||||||
|
"step1": 10,
|
||||||
|
"step2": 6,
|
||||||
|
"step3": 7,
|
||||||
|
"step4": 20,
|
||||||
|
"step5": 10,
|
||||||
|
"step6": 6,
|
||||||
|
"step7": 6,
|
||||||
|
"step8": 10,
|
||||||
|
"step9": 0.5
|
||||||
|
},
|
||||||
"maintenance": {
|
"maintenance": {
|
||||||
"clean": {
|
"clean": {
|
||||||
"duration": 20,
|
"duration": 20,
|
||||||
"time": 25
|
"time": 25
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "manual"
|
"type": "manual"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
version: bwc/v2 # bwc 버전 정보입니다.
|
version: bwc/v2 # bwc 버전 정보입니다.
|
||||||
spec:
|
spec:
|
||||||
appName: sampyo-dio-app # 앱의 이름입니다.
|
appName: sampyo-dio-app # 앱의 이름입니다.
|
||||||
runFile: main.py # 앱의 실행 파일입니다.
|
runFile: main.py # 앱의 실행 파일입니다.
|
||||||
env:
|
env:
|
||||||
bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.)
|
bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.)
|
||||||
virtualEnv: base # 사용할 가상환경 이름입니다.
|
virtualEnv: base # 사용할 가상환경 이름입니다.
|
||||||
package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
|
package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
|
||||||
stackbase:
|
stackbase:
|
||||||
tagName: v0.0.35 # Stackbase(gitea)에 릴리즈 태그명 입니다.
|
tagName: v0.0.49 # Stackbase(gitea)에 릴리즈 태그명 입니다.
|
||||||
repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다.
|
repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다.
|
||||||
|
|
228
main.py
228
main.py
|
@ -35,13 +35,34 @@ def Valve_MixedWater(chip, status, action):
|
||||||
|
|
||||||
chip.set_values(status)
|
chip.set_values(status)
|
||||||
|
|
||||||
def Valve_PureWater(chip, status, action):
|
def Valve_PureWater(chip, status, action, duration=7):
|
||||||
if action == 'On':
|
global pure_valve_status
|
||||||
status[3] = 1
|
|
||||||
else: # action == 'Off'
|
status[2] = 0
|
||||||
status[3] = 0
|
status[3] = 0
|
||||||
|
|
||||||
chip.set_values(status)
|
chip.set_values(status)
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
|
if pure_valve_status != 0 and action == 'Off':
|
||||||
|
status[2] = 0
|
||||||
|
status[3] = 1
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(7)
|
||||||
|
pure_valve_status = 0
|
||||||
|
elif pure_valve_status == 0 and action == 'On':
|
||||||
|
status[2] = 1
|
||||||
|
status[3] = 0
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(duration)
|
||||||
|
if duration >= 7:
|
||||||
|
pure_valve_status = 2
|
||||||
|
elif duration < 7:
|
||||||
|
pure_valve_status = 1
|
||||||
|
|
||||||
|
status[2] = 0
|
||||||
|
status[3] = 0
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
def Valve_EnterWater(chip, status, action):
|
def Valve_EnterWater(chip, status, action):
|
||||||
if action == 'On':
|
if action == 'On':
|
||||||
|
@ -51,6 +72,35 @@ def Valve_EnterWater(chip, status, action):
|
||||||
|
|
||||||
chip.set_values(status)
|
chip.set_values(status)
|
||||||
|
|
||||||
|
def Valve_MainWater(chip, status, action, duration=7):
|
||||||
|
global main_valve_status
|
||||||
|
|
||||||
|
status[5] = 0
|
||||||
|
status[6] = 0
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
|
if main_valve_status != 0 and action == 'Off':
|
||||||
|
status[5] = 0
|
||||||
|
status[6] = 1
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(7)
|
||||||
|
main_valve_status = 0
|
||||||
|
elif main_valve_status == 0 and action == 'On':
|
||||||
|
status[5] = 1
|
||||||
|
status[6] = 0
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(duration)
|
||||||
|
if duration >= 7:
|
||||||
|
main_valve_status = 2
|
||||||
|
elif duration < 7:
|
||||||
|
main_valve_status = 1
|
||||||
|
|
||||||
|
status[5] = 0
|
||||||
|
status[6] = 0
|
||||||
|
chip.set_values(status)
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
def Measure_Weight(client):
|
def Measure_Weight(client):
|
||||||
# print('in')
|
# print('in')
|
||||||
val = 0
|
val = 0
|
||||||
|
@ -80,102 +130,125 @@ def Set_Zero(client):
|
||||||
client.write_coil(1, 1)
|
client.write_coil(1, 1)
|
||||||
|
|
||||||
def Command_Read():
|
def Command_Read():
|
||||||
global client
|
global client, main_valve_status
|
||||||
|
|
||||||
with open('./control.json', 'r') as f:
|
with open('./control.json', 'r') as f:
|
||||||
cmd = json.load(f)
|
cmd = json.load(f)
|
||||||
|
|
||||||
if cmd['type'] == 'auto':
|
if cmd['type'] == 'auto':
|
||||||
|
main_duration = float(cmd['device']['main']['duration'])
|
||||||
|
pure_duration = float(cmd['device']['pure']['duration'])
|
||||||
|
step0_duration = float(cmd['working-time']['step0'])
|
||||||
|
step1_duration = float(cmd['working-time']['step1'])
|
||||||
|
step2_duration = float(cmd['working-time']['step2'])
|
||||||
|
step3_duration = float(cmd['working-time']['step3'])
|
||||||
|
step4_duration = float(cmd['working-time']['step4'])
|
||||||
|
step5_duration = float(cmd['working-time']['step5'])
|
||||||
|
step6_duration = float(cmd['working-time']['step6'])
|
||||||
|
step7_duration = float(cmd['working-time']['step7'])
|
||||||
|
step8_duration = float(cmd['working-time']['step8'])
|
||||||
|
step9_duration = float(cmd['working-time']['step9'])
|
||||||
|
|
||||||
Valve_Vent(chip=output_lines, status=status, action='Off')
|
|
||||||
Motor(chip=output_lines, status=status, action='Off')
|
|
||||||
|
|
||||||
mixed_duration = int(cmd['device']['mixed']['duration'])
|
# Step 0. Mesure init weight before starting the sequence
|
||||||
pure_duration = int(cmd['device']['pure']['duration'])
|
time.sleep(step0_duration)
|
||||||
pure_holding = int(cmd['device']['pure']['holding'])
|
start = Measure_Weight(client=client)
|
||||||
vent_duration = int(cmd['device']['vent']['duration'])
|
|
||||||
vent_holding = int(cmd['device']['vent']['holding'])
|
|
||||||
measure_duration = int(cmd['device']['measure']['duration'])
|
|
||||||
enter_duration = int(cmd['device']['enter']['duration'])
|
|
||||||
|
|
||||||
time.sleep(5)
|
|
||||||
start = Measure_Weight(client=client)
|
|
||||||
|
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action='On')
|
# Step 1. Vent pured water before input mixed water
|
||||||
time.sleep(0.5)
|
# Target valve status: [Motor: Off, Vent: On, Pure: Off, Enter: On, Main: On]
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
Valve_Vent(chip=output_lines, status=status, action='On')
|
Valve_Vent(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(vent_holding)
|
time.sleep(0.5)
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
Valve_MainWater(chip=output_lines, status=status, action='On', duration=main_duration)
|
||||||
time.sleep(vent_holding)
|
time.sleep(step1_duration)
|
||||||
|
|
||||||
|
# Step 2. Empty the remaining pure water
|
||||||
|
# Target valve status: [Motor: Off, Vent: On, Pure: Off, Enter: Off, Main: On]
|
||||||
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
|
time.sleep(step2_duration)
|
||||||
|
|
||||||
|
# Step 3. Input the mixed water
|
||||||
|
# Target valve status: [Motor: Off, Vent: Off, Pure: Off, Enter: On, Main: On]
|
||||||
Valve_Vent(chip=output_lines, status=status, action='Off')
|
Valve_Vent(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(mixed_duration)
|
time.sleep(step3_duration)
|
||||||
|
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action='Off')
|
# Step 4. Mesure the weight
|
||||||
time.sleep(0.5)
|
# Target valve status: [Motor: Off, Vent: Off, Pure: Off, Enter: Off, Main: Off]
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(measure_duration)
|
time.sleep(0.5)
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action='Off')
|
||||||
# measure weight
|
|
||||||
|
time.sleep(step4_duration)
|
||||||
end = Measure_Weight(client=client)
|
end = Measure_Weight(client=client)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
Calculate_Concentration(weight=(float(end)-float(start)))
|
Calculate_Concentration(weight=(float(end)-float(start)))
|
||||||
|
|
||||||
|
# Step 5. Drain the mixed water and add pure water.
|
||||||
Motor(chip=output_lines, status=status, action='On')
|
# Target valve status: [Motor: Off, Vent: On, Pure: On, Enter: On, Main: Off]
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='On')
|
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
|
||||||
Valve_Vent(chip=output_lines, status=status, action='On')
|
Valve_Vent(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(vent_duration)
|
time.sleep(0.5)
|
||||||
|
Valve_PureWater(chip=output_lines, status=status, action='On', duration=pure_duration)
|
||||||
|
time.sleep(step5_duration)
|
||||||
|
|
||||||
|
# Step 6. Drain mixed water
|
||||||
|
# Target valve status: [Motor: Off, Vent: On, Pure: On, Enter: Off, Main: Off]
|
||||||
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
|
time.sleep(step6_duration)
|
||||||
|
|
||||||
|
# Step 7. Input pure water and clean
|
||||||
|
# Target valve status: [Motor: On, Vent: Off, Pure: On, Enter: On, Main: Off]
|
||||||
|
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
||||||
|
time.sleep(0.5)
|
||||||
Valve_Vent(chip=output_lines, status=status, action='Off')
|
Valve_Vent(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
Motor(chip=output_lines, status=status, action='On')
|
||||||
# 2) Input Pure Water
|
time.sleep(step7_duration)
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='On')
|
|
||||||
time.sleep(0.5)
|
# Step 8. Drain pure Water
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
# Target valve status: [Motor: On, Vent: On, Pure: Off, Enter: Off, Main: Off]
|
||||||
time.sleep(pure_duration)
|
|
||||||
|
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
|
||||||
time.sleep(0.5)
|
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
|
||||||
# 4) Wait until empty
|
|
||||||
Valve_Vent(chip=output_lines, status=status, action='On')
|
Valve_Vent(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(vent_duration)
|
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
||||||
|
time.sleep(step8_duration)
|
||||||
|
|
||||||
# 5) Motor Off and Vent close
|
# Step 9. Stop moter
|
||||||
|
# Target valve status: [Motor: Off, Vent: On, Pure: Off, Enter: Off, Main: Off]
|
||||||
Motor(chip=output_lines, status=status, action='Off')
|
Motor(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(step9_duration)
|
||||||
Valve_Vent(chip=output_lines, status=status, action='Off')
|
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
elif cmd['type'] == 'clean':
|
elif cmd['type'] == 'clean':
|
||||||
clean_system()
|
clean_system()
|
||||||
|
time.sleep(3)
|
||||||
|
|
||||||
else: # cmd['type'] == 'manual'
|
else: # cmd['type'] == 'manual'
|
||||||
Motor(chip=output_lines, status=status, action=cmd['device']['motor']['action'])
|
Motor(chip=output_lines, status=status, action=cmd['device']['motor']['action'])
|
||||||
Valve_Vent(chip=output_lines, status=status, action=cmd['device']['vent']['action'])
|
Valve_Vent(chip=output_lines, status=status, action=cmd['device']['vent']['action'])
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action=cmd['device']['mixed']['action'])
|
# Valve_MixedWater(chip=output_lines, status=status, action=cmd['device']['mixed']['action'])
|
||||||
Valve_PureWater(chip=output_lines, status=status, action=cmd['device']['pure']['action'])
|
# Valve_PureWater(chip=output_lines, status=status, action=cmd['device']['pure']['action'])
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action=cmd['device']['enter']['action'])
|
Valve_EnterWater(chip=output_lines, status=status, action=cmd['device']['enter']['action'])
|
||||||
|
|
||||||
|
if cmd['device']['pure']['duration'] == 0:
|
||||||
|
Valve_PureWater(chip=output_lines, status=status, action=cmd['device']['pure']['action'])
|
||||||
|
else:
|
||||||
|
Valve_PureWater(chip=output_lines, status=status, action=cmd['device']['pure']['action'], duration=cmd['device']['pure']['duration'])
|
||||||
|
|
||||||
|
|
||||||
|
if cmd['device']['main']['duration'] == 0:
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action=cmd['device']['main']['action'])
|
||||||
|
else:
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action=cmd['device']['main']['action'], duration=cmd['device']['main']['duration'])
|
||||||
|
|
||||||
|
|
||||||
if cmd['device']['measure']['action'] == 'On':
|
if cmd['device']['measure']['action'] == 'On':
|
||||||
result = Measure_Weight(client=client)
|
result = Measure_Weight(client=client)
|
||||||
Calculate_Concentration(result)
|
Calculate_Concentration(result)
|
||||||
|
@ -187,6 +260,7 @@ def Command_Read():
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def clean_system():
|
def clean_system():
|
||||||
|
global main_valve_status
|
||||||
with open('./control.json', 'r') as f:
|
with open('./control.json', 'r') as f:
|
||||||
cmd = json.load(f)
|
cmd = json.load(f)
|
||||||
|
|
||||||
|
@ -195,15 +269,26 @@ def clean_system():
|
||||||
if cmd['type'] == 'clean':
|
if cmd['type'] == 'clean':
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='On')
|
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action='On')
|
Valve_PureWater(chip=output_lines, status=status, action='On')
|
||||||
time.sleep(clean_duration)
|
time.sleep(clean_duration)
|
||||||
|
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action='Off')
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
|
Valve_EnterWater(chip=output_lines, status=status, action='On')
|
||||||
|
time.sleep(0.5)
|
||||||
|
Valve_Vent(chip=output_lines, status=status, action='On')
|
||||||
|
time.sleep(clean_duration)
|
||||||
|
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action='Off')
|
Valve_Vent(chip=output_lines, status=status, action='Off')
|
||||||
time.sleep(6)
|
time.sleep(0.5)
|
||||||
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
def runAction():
|
def runAction():
|
||||||
# Write the app's actions in the "runAction" function.
|
# Write the app's actions in the "runAction" function.
|
||||||
|
@ -249,6 +334,9 @@ def runAction():
|
||||||
time_str = now.strftime('%H')
|
time_str = now.strftime('%H')
|
||||||
time_int = int(time_str)
|
time_int = int(time_str)
|
||||||
|
|
||||||
|
with open('./control.json', 'r') as f:
|
||||||
|
cmd = json.load(f)
|
||||||
|
|
||||||
if time_int == int(cmd['maintenance']['clean']['time']):
|
if time_int == int(cmd['maintenance']['clean']['time']):
|
||||||
if clean_flag < 3:
|
if clean_flag < 3:
|
||||||
clean_flag += 1
|
clean_flag += 1
|
||||||
|
@ -326,9 +414,10 @@ def handle_client(conn, ip, port):
|
||||||
cmd['type'] = 'clean'
|
cmd['type'] = 'clean'
|
||||||
|
|
||||||
with open('./control.json', 'w') as f:
|
with open('./control.json', 'w') as f:
|
||||||
json.dunp(cmd, f, indent=4)
|
json.dump(cmd, f, indent=4)
|
||||||
send_msg = 'STXOKETX'
|
|
||||||
conn.sendall(send_msg.encode("utf8"))
|
send_msg = 'STXOKETX'
|
||||||
|
conn.sendall(send_msg.encode("utf8"))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
err_msg = 'STXERRORETX'
|
err_msg = 'STXERRORETX'
|
||||||
conn.sendall(err_msg.encode("utf8"))
|
conn.sendall(err_msg.encode("utf8"))
|
||||||
|
@ -386,9 +475,10 @@ def start_server(addr, port):
|
||||||
def exit_handler(signum, frame):
|
def exit_handler(signum, frame):
|
||||||
Motor(chip=output_lines, status=status, action='Off')
|
Motor(chip=output_lines, status=status, action='Off')
|
||||||
Valve_Vent(chip=output_lines, status=status, action='Off')
|
Valve_Vent(chip=output_lines, status=status, action='Off')
|
||||||
Valve_MixedWater(chip=output_lines, status=status, action='Off')
|
# Valve_MixedWater(chip=output_lines, status=status, action='Off')
|
||||||
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
||||||
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
Valve_EnterWater(chip=output_lines, status=status, action='Off')
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action='Off')
|
||||||
|
|
||||||
client.close()
|
client.close()
|
||||||
|
|
||||||
|
@ -406,7 +496,13 @@ if __name__ == "__main__":
|
||||||
status = [0, 0, 0, 0, 0, 0, 0, 0]
|
status = [0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, exit_handler)
|
signal.signal(signal.SIGINT, exit_handler)
|
||||||
|
|
||||||
|
main_valve_status = 0
|
||||||
|
pure_valve_status = 0
|
||||||
|
|
||||||
|
Valve_MainWater(chip=output_lines, status=status, action='Off')
|
||||||
|
Valve_PureWater(chip=output_lines, status=status, action='Off')
|
||||||
|
|
||||||
with open('./config.json', encoding='UTF-8') as f:
|
with open('./config.json', encoding='UTF-8') as f:
|
||||||
jsonData = json.load(f)
|
jsonData = json.load(f)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue