You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.7 KiB
Python

"""
Sample script to hold all known doors open for a few seconds.
Also shows how to use the logger function.
"""
import time
from Net2Scripting import init_logging
from Net2Scripting.net2xs import Net2XS
from Net2Scripting.pylog4net import Log4Net
# Operator id 0 is System Engineer
OPERATOR_ID = 0
# Default Net2 password
OPERATOR_PWD = "net2"
# When running on the machine where Net2 is installed
NET2_SERVER = "localhost"
def get_doors(net2):
"""Obtain a list of all known doors
"""
res = []
dataset = net2.get_doors()
if dataset and dataset.Tables.Count > 0:
for row in dataset.Tables[0].Rows:
res.append(row.Address)
return res
if __name__ == "__main__":
# Init log4net
init_logging()
# Create logger object
logger = Log4Net.get_logger('open_all_doors')
with Net2XS(NET2_SERVER) as net2:
# Authenticate
net2.authenticate(OPERATOR_ID, OPERATOR_PWD)
# Get list off door addresses
doors = get_doors(net2)
# Open each door
for door in doors:
if not net2.hold_door_open(door):
logger.Error(
"Failed to hold door %d open: %s." %
(door, net2.last_error_message))
else:
logger.Info("Set door %d open." % (door))
logger.Info("Now all doors are open...")
time.sleep(3)
# Close each door
for door in doors:
if not net2.close_door(door):
logger.Error(
"Failed to close door %d: %s." %
(door, net2.last_error_message))
else:
logger.Info("Set door %d closed." % (door))
logger.Info("Now all doors are closed again")