implemented #13 and fixed #36

This commit is contained in:
Manuel Kamper 2023-01-07 22:06:06 +00:00
parent 9d26fe5abe
commit f7ae27441c
1 changed files with 16 additions and 7 deletions

23
main.py
View File

@ -312,10 +312,15 @@ async def TCSBusReader():
val = 0
#measure voltage changes and time in between
dauer = microsSeitLetzterFlanke()
if (dauer > 10000) and (message): #handle recieved message, and reset message
if (dauer > 10000) and (message) and (len(message) >= 1): #handle recieved message, and reset message
message.pop(0) #remove first timing, because we do not need it
for i in range(len(message)): #encode message
message[i] = int(((round(message[i] / 1000.0) * 1000.0) / 2000) - 1)
for i in range(len(message)): #encode bus message (lazy, because the TCS:Bus is not as precise as we are ;) )
if (message[i] >= 1000 and message[i] <= 2999):
message[i] = 0
elif (message[i] >= 3000 and message[i] <= 4999):
message[i] = 1
elif (message[i] >= 5000 and message[i] <= 6999):
message[i] = 2
if (message == configs['light_trigger_message']):
if (configs['log_incoming_bus_messages']):
Logger.LogMessage("Incoming TCS:Bus message for triggering light: " + str(message))
@ -327,8 +332,7 @@ async def TCSBusReader():
elif (message == configs['door_ringing_message']):
if (configs['log_incoming_bus_messages']):
Logger.LogMessage("Incoming TCS:Bus message for door ringing: " + str(message))
print ("türklingel")
#todo trigger external api
await ExternalAPI("doorbell")
elif (message == configs['frontdoor_ringing_message']):
if (configs['log_incoming_bus_messages']):
Logger.LogMessage("Incoming TCS:Bus message for frontdoor ringing: " + str(message))
@ -338,8 +342,7 @@ async def TCSBusReader():
await TCSBusWriter(configs['door_trigger_message'])
asyncio.sleep(1)
await TCSBusWriter(configs['light_trigger_message'])
print ("haustürklingel")
#todo trigger external api
await ExternalAPI("frontdoorbell")
else:
if (configs['log_incoming_bus_messages']):
Logger.LogMessage("Unknown TCS:Bus message: " + str(message))
@ -377,6 +380,12 @@ async def TCSBusWriter(message):
triggerline.off()
writerActive = False
# Main method for external API (=FHEM)
async def ExternalAPI(action):
#todo implement the damn thing!
print(action)
pass
# Main method for daily housekeeping
async def Housekeeper():
Logger.LogMessage("Housekeeper started")