triggers.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:openhab2-jython 作者: steve-bate 项目源码 文件源码
def item_triggered(item_name, event_types=None, result_item_name=None):
    event_types = event_types or [ITEM_CHANGE]
    event_bus = scope.events
    if hasattr(event_types, '__iter__'):
        event_types = ",".join(event_types)
    def decorator(fn):
        nargs = len(inspect.getargspec(fn).args)
        def callback(module, inputs):
            fn_args = []
            event = inputs.get('event')
            if event and nargs == 1:
                fn_args.append(event)
            result_value = fn(*fn_args)
            if result_item_name:
                event_bus.postUpdate(result_item_name, unicode(result_value))
        rule = _FunctionRule(callback, [ItemEventTrigger(item_name, event_types)], extended=True)
        get_automation_manager().addRule(rule)
        return fn
    return decorator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号