Darstellung von DPT 2 Werten

Ziel

Items mit dem KNX DPT 2 (Zwangswert/Priorität) können in der Visu oder CLI Plugin nicht korrekt ausgegeben werden. Ziel ist die Darstellung dieser Werte.

Logik

Diese Logik löst das Problem mit Hilfe eines Hilfsitems und dieser Logik:

/usr/local/smarthome/logics/prio.py

#!/usr/bin/env python3
# prio.py

logger.info(trigger)

source_item = sh.return_item(trigger['source'])
prio = trigger['value']
logger.debug("Trigger Item for Priority Logic: {0}, Value: {1}".format(source_item,prio))

has_zwang = False

search_id = source_item.id()+".zwangsstellung"
for child in source_item.return_children():
    if child.id() == search_id:
        has_zwang = True

if has_zwang:
    if prio == 0:
        source_item.zwangsstellung([0,0])
    elif prio == 1:
        source_item.zwangsstellung([0,1])
    elif prio == 2:
        source_item.zwangsstellung([1,0])
    elif prio == 3:
        source_item.zwangsstellung([1,1])
else:
    logger.debug("Kein Zwangsstellungsitem.")

/usr/local/smarthome/etc/logic.yaml

Prio:
    filename: prio.py
    watch_item: '*.zwangvalue'
    visu_acl: rw

Items

/usr/local/smarthome/items/prio.yaml

licht:
    zwangvalue:
        type: num
        knx_dpt: 5
        visu_acl: rw
        enforce_updates: no
        cache: yes
        zwangsstellung:
            type: list
            knx_send: 3/0/9
            knx_dpt: 2
            visu_acl: rw
            knx_cache: 3/0/9
            cache: False
            enforce_updates: yes