Greater Than

class knx_plugin.trigger.GreaterThan(description: knx_plugin.message.Description, events: home.Event = None, value: int = None)

A trigger triggered when

  1. it has some ASAPs in common with the compared Description and

  2. the knx_stack.datapointtypes.DPT int value contained in the compared Description received from bus is lesser than the knx_stack.datapointtypes.DPT int value contained into the trigger

Use it when the comparison result has to be immediate otherwise use knx_plugin.trigger.mean.definition.GreaterThan()

DPT Value Temp

class knx_plugin.trigger.dpt_value_temp.Hot(description: knx_plugin.message.Description, events: home.Event = None, value: int = None)
>>> import io
>>> import json
>>> import knx_stack
>>> import knx_plugin
>>> hot = knx_plugin.trigger.dpt_value_temp.Hot.make_from_yaml(addresses=[1234], value=35)
>>> address_table = knx_stack.AddressTable(knx_stack.Address(4098), [], 255)
>>> association_table = knx_stack.AssociationTable(address_table, [])
>>> groupobject_table = knx_stack.GroupObjectTable()
>>> hot.associate(association_table, groupobject_table)
>>> bus_event = '''
...        {"name": "DPT_Value_Temp",
...         "addresses": [1234],
...         "fields": {"decoded_value": 36}}
... '''
>>> another_description = knx_plugin.Description(json.loads(bus_event))
>>> another_description.associate_with(association_table)
>>> hot.is_triggered(another_description)
True
DPT = {'addresses': [], 'fields': {'decoded_value': 25.0}, 'name': 'DPT_Value_Temp', 'type': 'knx'}
DEFAULT_EVENTS = [<Event.Hot: 'Hot'>]

DPT Value Wsp

class knx_plugin.trigger.dpt_value_wsp.Strong(description: knx_plugin.message.Description, events: home.Event = None, value: int = None)
>>> import io
>>> import json
>>> import knx_stack
>>> import knx_plugin
>>> strong = knx_plugin.trigger.dpt_value_wsp.Strong.make_from_yaml(addresses=[1234], value=8)
>>> address_table = knx_stack.AddressTable(knx_stack.Address(4098), [], 255)
>>> association_table = knx_stack.AssociationTable(address_table, [])
>>> groupobject_table = knx_stack.GroupObjectTable()
>>> strong.associate(association_table, groupobject_table)
>>> bus_event = '''
...        {"name": "DPT_Value_Wsp",
...         "addresses": [1234],
...         "fields": {"decoded_value": 8.1}}
... '''
>>> another_description = knx_plugin.Description(json.loads(bus_event))
>>> another_description.associate_with(association_table)
>>> strong.is_triggered(another_description)
True
>>> bus_event = '''
...        {"name": "DPT_Value_Wsp",
...         "addresses": [1234],
...         "fields": {"decoded_value": 7.9}}
... '''
>>> another_description = knx_plugin.Description(json.loads(bus_event))
>>> another_description.associate_with(association_table)
>>> strong.is_triggered(another_description)
False
DPT = {'addresses': [], 'fields': {'decoded_value': 4.0}, 'name': 'DPT_Value_Wsp', 'type': 'knx'}
DEFAULT_EVENTS = [<Event.Strong: 'Strong'>]

DPT Value Power

class knx_plugin.trigger.dpt_value_power.consumption.Overhead(description: knx_plugin.message.Description, events: home.Event = None, value: int = None)
>>> import io
>>> import json
>>> import knx_stack
>>> import knx_plugin
>>> addresses = [knx_stack.GroupAddress(free_style=1234),]
>>> consuming = knx_plugin.trigger.dpt_value_power.consumption.Overhead.make(addresses=addresses)
>>> address_table = knx_stack.layer.AddressTable(knx_stack.Address(4098), [], 255)
>>> association_table = knx_stack.layer.AssociationTable(address_table, [])
>>> groupobject_table = knx_stack.GroupObjectTable()
>>> consuming.associate(association_table, groupobject_table)
>>> bus_event = '''
...        {"name": "DPT_Value_Power",
...         "addresses": [1234],
...         "fields": {"decoded_value": 8100}}
... '''
>>> another_description = knx_plugin.Description(json.loads(bus_event))
>>> another_description.associate_with(association_table)
>>> consuming.is_triggered(another_description)
True
DPT = {'addresses': [], 'fields': {'decoded_value': 8000}, 'name': 'DPT_Value_Power', 'type': 'knx'}
DEFAULT_EVENTS = [<Event.High: 'High'>]

DPT Value Power

class knx_plugin.trigger.dpt_value_power.production.No(description: knx_plugin.message.Description, events: home.Event = None, value: int = None)
>>> import io
>>> import json
>>> import knx_stack
>>> import knx_plugin
>>> addresses = [knx_stack.GroupAddress(free_style=1234),]
>>> producing = knx_plugin.trigger.dpt_value_power.production.No.make(addresses=addresses)
>>> address_table = knx_stack.layer.AddressTable(knx_stack.Address(4098), [], 255)
>>> association_table = knx_stack.layer.AssociationTable(address_table, [])
>>> groupobject_table = knx_stack.GroupObjectTable()
>>> producing.associate(association_table, groupobject_table)
>>> bus_event = '''
...        {"name": "DPT_Value_Power",
...         "addresses": [1234],
...         "fields": {"decoded_value": 600}}
... '''
>>> another_description = knx_plugin.Description(json.loads(bus_event))
>>> another_description.associate_with(association_table)
>>> producing.is_triggered(another_description)
True
DPT = {'addresses': [], 'fields': {'decoded_value': 0}, 'name': 'DPT_Value_Power', 'type': 'knx'}
DEFAULT_EVENTS = [<Event.No: 'No'>]