Class KNXProtocol

All Implemented Interfaces:
org.openremote.model.asset.agent.Protocol<KNXAgent>, org.openremote.model.protocol.ProtocolAssetImport

public class KNXProtocol extends AbstractProtocol<KNXAgent,KNXAgentLink> implements org.openremote.model.protocol.ProtocolAssetImport
This protocol is used to connect to a KNX bus via an IP interface.
  • Field Details

    • PROTOCOL_DISPLAY_NAME

      public static final String PROTOCOL_DISPLAY_NAME
      See Also:
    • connection

      protected KNXConnection connection
    • attributeActionMap

      protected final Map<org.openremote.model.attribute.AttributeRef,tuwien.auto.calimero.datapoint.Datapoint> attributeActionMap
    • attributeStatusMap

      protected final Map<org.openremote.model.attribute.AttributeRef,tuwien.auto.calimero.datapoint.StateDP> attributeStatusMap
  • Constructor Details

    • KNXProtocol

      public KNXProtocol(KNXAgent agent)
  • Method Details

    • getProtocolName

      public String getProtocolName()
      Description copied from interface: org.openremote.model.asset.agent.Protocol
      Get the name for this protocol
      Specified by:
      getProtocolName in interface org.openremote.model.asset.agent.Protocol<KNXAgent>
    • doStart

      protected void doStart(org.openremote.model.Container container) throws Exception
      Description copied from class: AbstractProtocol
      Start this protocol instance
      Specified by:
      doStart in class AbstractProtocol<KNXAgent,KNXAgentLink>
      Throws:
      Exception
    • doStop

      protected void doStop(org.openremote.model.Container container) throws Exception
      Description copied from class: AbstractProtocol
      Stop this protocol instance
      Specified by:
      doStop in class AbstractProtocol<KNXAgent,KNXAgentLink>
      Throws:
      Exception
    • doLinkAttribute

      protected void doLinkAttribute(String assetId, org.openremote.model.attribute.Attribute<?> attribute, KNXAgentLink agentLink) throws RuntimeException
      Description copied from class: AbstractProtocol
      Link an Attribute to its linked Agent.
      Specified by:
      doLinkAttribute in class AbstractProtocol<KNXAgent,KNXAgentLink>
      Throws:
      RuntimeException
    • doUnlinkAttribute

      protected void doUnlinkAttribute(String assetId, org.openremote.model.attribute.Attribute<?> attribute, KNXAgentLink agentLink)
      Description copied from class: AbstractProtocol
      Unlink an Attribute from its linked Agent.
      Specified by:
      doUnlinkAttribute in class AbstractProtocol<KNXAgent,KNXAgentLink>
    • doLinkedAttributeWrite

      protected void doLinkedAttributeWrite(KNXAgentLink agentLink, org.openremote.model.attribute.AttributeEvent event, Object processedValue)
      Description copied from class: AbstractProtocol
      An Attribute event (write) has been requested for an attribute linked to this protocol. The processedValue is the resulting value after applying standard outbound value processing (see ProtocolUtil.doOutboundValueProcessing(org.openremote.model.attribute.AttributeRef, org.openremote.model.asset.agent.AgentLink<?>, java.lang.Object, boolean, java.time.Instant)). Protocol implementations should generally use the processedValue but may also choose to use the original value for some purpose if required.
      Specified by:
      doLinkedAttributeWrite in class AbstractProtocol<KNXAgent,KNXAgentLink>
    • addActionDatapoint

      protected void addActionDatapoint(org.openremote.model.attribute.AttributeRef attributeRef, String groupAddress, String dpt) throws tuwien.auto.calimero.KNXFormatException
      Throws:
      tuwien.auto.calimero.KNXFormatException
    • removeActionDatapoint

      protected void removeActionDatapoint(org.openremote.model.attribute.AttributeRef attributeRef)
    • addStatusDatapoint

      protected void addStatusDatapoint(org.openremote.model.attribute.AttributeRef attributeRef, String groupAddress, String dpt) throws tuwien.auto.calimero.KNXFormatException
      Throws:
      tuwien.auto.calimero.KNXFormatException
    • handleKNXValueChange

      protected void handleKNXValueChange(org.openremote.model.attribute.AttributeRef attributeRef, Object value)
    • removeStatusDatapoint

      protected void removeStatusDatapoint(org.openremote.model.attribute.AttributeRef attributeRef)
    • getProtocolInstanceUri

      public String getProtocolInstanceUri()
      Description copied from interface: org.openremote.model.asset.agent.Protocol
      Get a URI that describes this specific protocol instance
      Specified by:
      getProtocolInstanceUri in interface org.openremote.model.asset.agent.Protocol<KNXAgent>
    • startAssetImport

      public Future<Void> startAssetImport(byte[] fileData, Consumer<org.openremote.model.asset.AssetTreeNode[]> assetConsumer)
      Description copied from interface: org.openremote.model.protocol.ProtocolAssetImport
      Start the process asynchronously; the implementation can make as many calls as it desires to the assetConsumer with the found assets; when the implementation has finished then the returned future will become Future.isDone(). The callee can also cancel the future at any time. If for some reason the process cannot be started or encounters an error then this method should log more details before completing the future.
      Specified by:
      startAssetImport in interface org.openremote.model.protocol.ProtocolAssetImport
    • createAsset

      protected void createAsset(tuwien.auto.calimero.datapoint.StateDP datapoint, boolean isStatusGA, Map<String,org.openremote.model.asset.Asset<?>> createdAssets)