arduino2/openhab2/scripts/jfs1.py
2020-11-06 13:17:55 +01:00

107 lines
2.6 KiB
Python

import sys
import time
import serial
ser = serial.Serial(
port='/dev/XPort',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
def getrs232line(a):
ser.flushInput()
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
if lx[0] == '':
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
while len(lx) != 10:
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
return lx[a]
def getrs232info():
ser.flushInput()
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
if lx[0] == '':
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
while len(lx) != 10:
myrs = ser.readline()
lx = [x.strip() for x in myrs.split(',')]
return lx
#for eacharg in sys.argv:
# sys.stderr.write(sys.argv[1])
# Gibt Rs232 String aus
if sys.argv[1] == "info":
print(getrs232info())
#setzt Uhrzeit aus der CControl
elif sys.argv[1] == "setuhr":
ser.write(time.strftime("u%H%M"))
#Ausgabe der aktuellen Laufzeit
elif sys.argv[1] == "time":
s = getrs232line(9)[:-1]
print(s)
#Ausgabe der aktiven Kanals oder null
elif sys.argv[1] == "kanal":
s = getrs232line(0)
print(s)
#Ausgabe Uhrzeit (rudimntaer)
elif sys.argv[1] == "uhr":
s = getrs232line(8)
print(s)
#Ausgabe Drucksensor (funktion?)
elif sys.argv[1] == "druck":
s = getrs232line(7)
print(s)
#Ausgabe Temperatur am sensor
elif sys.argv[1] == "temp":
s = getrs232line(6)
t = (float(s)-50)/2
print(t)
#Ausgabe Motor und Ventile
elif sys.argv[1] == "motor":
s = getrs232line(1)
print(s)
elif sys.argv[1] == "ventil1":
s = getrs232line(2)
print(s)
elif sys.argv[1] == "ventil2":
s = getrs232line(3)
print(s)
elif sys.argv[1] == "ventil3":
s = getrs232line(4)
print(s)
elif sys.argv[1] == "ventil4":
s = getrs232line(5)
print(s)
#Kanal aus oder an
elif sys.argv[1] == "aus":
b = getrs232line(0)
if b != "0":
ser.write(b)
print("0")
elif sys.argv[1] == "on1":
b = getrs232line(0)
if b != "1":
ser.write("1")
print("1")
elif sys.argv[1] == "on2":
b = getrs232line(0)
if b != "2":
ser.write("2")
print("2")
elif sys.argv[1] == "on3":
b = getrs232line(0)
if b != "3":
ser.write("3")
print("3")
elif sys.argv[1] == "on4":
b = getrs232line(0)
if b != "4":
ser.write("4")
print("4")