def test_group_update(self): item1 = SwitchItem.get_item(self.item1.name) item2 = SwitchItem.get_item(self.item2.name) group = GroupItem.get_item(self.group.name) with ItemWaiter(group) as waiter: waiter.wait_for_state(None) item1.oh_post_update('ON') waiter.wait_for_state('ON') item1.oh_post_update('OFF') waiter.wait_for_state('OFF') item2.oh_post_update('ON') waiter.wait_for_state('ON')
def item_state_change(self, event): assert isinstance(event, ValueChangeEvent) print( f'{event}') # interaction is available through self.openhab or self.oh self.openhab.send_command('TestItemCommand', 'ON') # example for interaction with openhab item type switch_item = SwitchItem.get_item('TestSwitch') if switch_item.is_on(): switch_item.off()
def __init__(self): super().__init__() # get items test_contact = ContactItem.get_item('TestContact') test_date_time = DatetimeItem.get_item('TestDateTime') test_switch = SwitchItem.get_item('TestSwitch') # Trigger on item updates test_contact.listen_event(self.item_state_update, ItemStateEvent) test_date_time.listen_event(self.item_state_update, ValueUpdateEvent) # Trigger on item changes test_contact.listen_event(self.item_state_change, ItemStateChangedEvent) test_date_time.listen_event(self.item_state_change, ValueChangeEvent) # Trigger on item commands test_switch.listen_event(self.item_command, ItemCommandEvent)