Class InboundDataSource
java.lang.Object
energy.eddie.aiida.models.datasource.DataSource
energy.eddie.aiida.models.datasource.mqtt.MqttDataSource
energy.eddie.aiida.models.datasource.mqtt.inbound.InboundDataSource
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected Permissionprotected Stringprotected static final StringFields inherited from class energy.eddie.aiida.models.datasource.mqtt.MqttDataSource
accessControlEntry, mqttConnection, TOPIC_PREFIXFields inherited from class energy.eddie.aiida.models.datasource.DataSource
asset, countryCode, enabled, icon, id, image, meterId, name, operatorId, permissions, type, userId -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInboundDataSource(InboundDataSourceDto dto, UUID userId, Permission permission) InboundDataSource(InboundDataSourceDto dto, UUID userId, Permission permission, String accessCode) -
Method Summary
Modifier and TypeMethodDescriptionvoidchangeInboundProvisioningType(InboundProvisioningType inboundProvisioningType) Changes the inbound provisioning type.protected voidThis method creates the Access Control Entry for a MQTT data source using the ID of the data source.protected voidestablishClientModeConnection(String host, String username, String password, String topic) Configures MQTT client-mode provisioning with externally supplied broker credentials and activates that mode.establishServerModeConnection(MqttConfiguration mqttConfig, org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder encoder, String plaintextPassword) Configures MQTT server-mode provisioning using the local broker configuration and activates that mode.Returns the currently configured method for provisioning inbound data.Returns the MQTT connection configured for inbound provisioning.Returns the MQTT topic configured for inbound provisioning.schemas()Methods inherited from class energy.eddie.aiida.models.datasource.mqtt.MqttDataSource
configure, internalHost, password, postPersist, topic, topicFormattedForUi, updatePassword, usernameMethods inherited from class energy.eddie.aiida.models.datasource.DataSource
asset, countryCode, createFromDto, enabled, icon, id, image, meterId, name, operatorId, permissions, setEnabled, setImage, type, update, userId
-
Field Details
-
TABLE_NAME
- See Also:
-
serverModeTopic
-
accessCode
-
permission
-
-
Constructor Details
-
InboundDataSource
protected InboundDataSource() -
InboundDataSource
-
InboundDataSource
public InboundDataSource(InboundDataSourceDto dto, UUID userId, Permission permission, String accessCode)
-
-
Method Details
-
establishServerModeConnection
public ProvisioningConnectionDto establishServerModeConnection(MqttConfiguration mqttConfig, org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder encoder, String plaintextPassword) Configures MQTT server-mode provisioning using the local broker configuration and activates that mode. A unique username is created and the supplied plaintext password is encoded before it is stored.- Parameters:
mqttConfig- Local MQTT broker configuration.encoder- Encoder used to protect the generated credential before storage.plaintextPassword- Plaintext password generated for the provisioning connection.- Returns:
- The connection details stored for server-mode provisioning.
-
accessCode
-
permission
-
schemas
-
acknowledgementTopic
-
inboundProvisioningType
Returns the currently configured method for provisioning inbound data.- Returns:
- The active inbound provisioning type.
-
provisioningConnection
Returns the MQTT connection configured for inbound provisioning.- Returns:
- The configured provisioning MQTT connection.
- Throws:
NullPointerException- If MQTT provisioning has not been configured.
-
provisioningTopicOrThrow
Returns the MQTT topic configured for inbound provisioning.- Returns:
- The configured provisioning topic.
- Throws:
NullPointerException- If an MQTT provisioning access-control entry has not been configured.
-
changeInboundProvisioningType
Changes the inbound provisioning type. Switching to a REST type also removes any stored MQTT provisioning connection and access-control entry.- Parameters:
inboundProvisioningType- Provisioning type to activate.
-
establishClientModeConnection
public ProvisioningConnectionDto establishClientModeConnection(String host, String username, String password, String topic) Configures MQTT client-mode provisioning with externally supplied broker credentials and activates that mode.- Parameters:
host- MQTT broker host exposed to the publisher.username- MQTT username used for publishing.password- MQTT password used for publishing.topic- Topic to which inbound records are published.- Returns:
- The connection details stored for client-mode provisioning.
-
createMqttUser
protected void createMqttUser()- Overrides:
createMqttUserin classMqttDataSource
-
createAccessControlEntry
protected void createAccessControlEntry()Description copied from class:MqttDataSourceThis method creates the Access Control Entry for a MQTT data source using the ID of the data source. This is the default behaviour of a MQTT data source.- Overrides:
createAccessControlEntryin classMqttDataSource
-