Skip to content

Commit 4f63b72

Browse files
committed
Added device information properties
1 parent b7cca3b commit 4f63b72

5 files changed

Lines changed: 46 additions & 6 deletions

File tree

org.openhab.binding.simatic/src/main/java/org/openhab/binding/simatic/internal/handler/simaticBridgeHandler.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public SimaticBridgeHandler(Bridge bridge) {
8383
@SuppressWarnings("null")
8484
@Override
8585
public void initialize() {
86-
updateProperty(SimaticBindingConstants.PROPERTY_VERSION, SimaticBindingConstants.VERSION);
86+
updateProperty(SimaticBindingConstants.PROPERTY_BINDING_VERSION, SimaticBindingConstants.VERSION);
8787

8888
config = getConfigAs(SimaticBridgeConfiguration.class);
8989

@@ -167,6 +167,34 @@ public void initialize() {
167167
String.valueOf(connection.getReadAreas().size()));
168168
updateProperty(SimaticBindingConstants.PROPERTY_AREAS,
169169
(connection.getReadAreas().size() == 0) ? "none" : connection.getReadAreas().toString());
170+
if (connection.info.getPlcName() != null) {
171+
updateProperty(SimaticBindingConstants.PROPERTY_PLC_NAME, connection.info.getPlcName());
172+
}
173+
if (connection.info.getModuleName() != null) {
174+
updateProperty(SimaticBindingConstants.PROPERTY_MODULE_NAME, connection.info.getModuleName());
175+
}
176+
if (connection.info.getModuleTypeName() != null) {
177+
updateProperty(SimaticBindingConstants.PROPERTY_MODULE_NAME_TYPE,
178+
connection.info.getModuleTypeName());
179+
}
180+
if (connection.info.getCopyright() != null) {
181+
updateProperty(SimaticBindingConstants.PROPERTY_COPYRIGHT, connection.info.getCopyright());
182+
}
183+
if (connection.info.getSerialNumber() != null) {
184+
updateProperty(SimaticBindingConstants.PROPERTY_SERIAL, connection.info.getSerialNumber());
185+
}
186+
if (connection.info.getOrderNr() != null) {
187+
updateProperty(SimaticBindingConstants.PROPERTY_ORDER_NUMBER, connection.info.getOrderNr());
188+
}
189+
if (connection.info.getHwVersion() != null) {
190+
updateProperty(SimaticBindingConstants.PROPERTY_HW_VERSION, connection.info.getHwVersion());
191+
}
192+
if (connection.info.getFwVersion() != null) {
193+
updateProperty(SimaticBindingConstants.PROPERTY_FW_VERSION, connection.info.getFwVersion());
194+
}
195+
if (connection.info.getMemorySize() != null) {
196+
updateProperty(SimaticBindingConstants.PROPERTY_MEMORY_SIZE, connection.info.getMemorySize());
197+
}
170198

171199
updateStatus(ThingStatus.ONLINE);
172200
} else {

org.openhab.binding.simatic/src/main/java/org/openhab/binding/simatic/internal/simatic/SimaticGenericDevice.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public class SimaticGenericDevice implements SimaticIDevice {
6767
protected final AtomicBoolean tryReconnect = new AtomicBoolean(false);
6868
/** PDU size **/
6969
protected int pduSize = 0;
70+
public final SimaticDeviceInfo info = new SimaticDeviceInfo();
7071
protected final Charset charset;
7172
protected final SimaticUpdateMode updateMode;
7273

org.openhab.binding.simatic/src/main/java/org/openhab/binding/simatic/internal/simatic/SimaticTCP.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ public Boolean open() {
138138
portState.setState(PortStates.LISTENING);
139139
// prepare data after PDU is negotiated
140140
prepareData();
141+
// request device info
142+
info.getInfo(dc);
141143
setConnected(true);
142144
} else {
143145
logger.error("{} - cannot connect to PLC", this.toString());

org.openhab.binding.simatic/src/main/java/org/openhab/binding/simatic/internal/simaticBindingConstants.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,19 @@ public class SimaticBindingConstants {
3939
public static final String CHANNEL_BYTES = "chBytesTypeID";
4040

4141
// List of all Property IDs
42-
public static final String PROPERTY_VERSION = "version";
42+
public static final String PROPERTY_BINDING_VERSION = "bindingVersion";
4343
public static final String PROPERTY_PDU = "pdu";
4444
public static final String PROPERTY_AREAS_COUNT = "areasCount";
4545
public static final String PROPERTY_AREAS = "areas";
46+
public static final String PROPERTY_PLC_NAME = "plcName";
47+
public static final String PROPERTY_MODULE_NAME = "moduleName";
48+
public static final String PROPERTY_MODULE_NAME_TYPE = "moduleNameType";
49+
public static final String PROPERTY_COPYRIGHT = "copyright";
50+
public static final String PROPERTY_SERIAL = "serialNumber";
51+
public static final String PROPERTY_ORDER_NUMBER = "orderNumber";
52+
public static final String PROPERTY_HW_VERSION = "hardwareVersion";
53+
public static final String PROPERTY_FW_VERSION = "firmwareVersion";
54+
public static final String PROPERTY_MEMORY_SIZE = "workingMemorySize";
4655

4756
// List of all Channel Type UIDs
4857
public static final ChannelTypeUID CHANNEL_TYPE_TAG_COUNT = new ChannelTypeUID(BINDING_ID, CHANNEL_TAG_COUNT);

org.openhab.binding.simatic/src/main/resources/OH-INF/thing/thing-types.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
<channel id="Bytes" typeId="chBytesTypeID"/>
1414
</channels>
1515
<properties>
16-
<property name="version">4.0</property>
16+
<property name="bindingVersion">-</property>
1717
<property name="vendor">Siemens</property>
18-
<property name="pdu">Unknown</property>
19-
<property name="areasCount">Unknown</property>
20-
<property name="areas">Unknown</property>
18+
<property name="pdu">-</property>
19+
<property name="areasCount">-</property>
20+
<property name="areas">-</property>
2121
</properties>
2222
<config-description>
2323
<parameter name="address" type="text" required="true">

0 commit comments

Comments
 (0)