public class Cover extends AbstractComponent<Cover.ChannelConfiguration> {
public static final String COVER_CHANNEL_ID = "cover";
public static final String STATE_CHANNEL_ID = "state";
+ public static final String JSON_ATTRIBUTES_CHANNEL_ID = "json-attributes";
/**
* Configuration class for MQTT component
protected String stateOpening = "opening";
@SerializedName("state_stopped")
protected String stateStopped = "stopped";
+
+ @SerializedName("json_attributes_template")
+ protected @Nullable String jsonAttributesTemplate;
+ @SerializedName("json_attributes_topic")
+ protected @Nullable String jsonAttributesTopic;
}
@Nullable
}
return true;
}).withAutoUpdatePolicy(optimistic ? AutoUpdatePolicy.RECOMMEND : null).build();
+
+ if (channelConfiguration.jsonAttributesTopic != null) {
+ buildChannel(JSON_ATTRIBUTES_CHANNEL_ID, ComponentChannelType.STRING, new TextValue(), "JSON Attributes",
+ componentConfiguration.getUpdateListener())
+ .stateTopic(channelConfiguration.jsonAttributesTopic, channelConfiguration.jsonAttributesTemplate)
+ .withAutoUpdatePolicy(AutoUpdatePolicy.VETO).build();
+ }
finalizeChannels();
}
}