[APP][Pro] Embedded Data System - Converts the special XML-format from Embeddeds Data Systems OW Server v2 Enet

It will not work

But if i get a copy of your details.xml I maybe can make a version that works with that too

That would be excellent!

Please see my XML below.

I am using the D2Photo from Embedded - identified as DS2406.

To clear up - these are 2 different sensors, but both identify as DS2406. One is D2Photo, and the other is D2PC D2

Bought these for my smart home 11 years ago :smiley: Fun to be able to utilise these again in Homey.

Can you copy it as text?
use the preformated text here in the forum
image

And what value is it you want?
Input_level_A and InputLevel_B?
or FlipFlop_A and FlipFlop_B ?

Thanks for the tip.

I believe it is input level - not flip flop. See screenshot below. Numbers change pending if it detects light or not.

<owd_DS2406 Description="Dual addressable switch plus memory">
<Name>DS2406</Name>
<Family>12</Family>
<ROMId>DF00000020ADC212</ROMId>
<Health>7</Health>
<RawData>73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>A=0, B=0</PrimaryValue>
<InputLevel_A>0</InputLevel_A>
<InputLevel_B>0</InputLevel_B>
<FlipFlop_A Writable="True">1</FlipFlop_A>
<FlipFlop_B Writable="True">1</FlipFlop_B>
<ActivityLatch_A>1</ActivityLatch_A>
<ActivityLatch_B>1</ActivityLatch_B>
<NumberOfChannels>2</NumberOfChannels>
<PowerSource>0</PowerSource>
<ActivityLatchReset Writable="True">-</ActivityLatchReset>
</owd_DS2406>
<owd_DS2406 Description="Dual addressable switch plus memory">
<Name>DS2406</Name>
<Family>12</Family>
<ROMId>700000007D189112</ROMId>
<Health>7</Health>
<RawData>CF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>A=1, B=1</PrimaryValue>
<InputLevel_A>1</InputLevel_A>
<InputLevel_B>1</InputLevel_B>
<FlipFlop_A Writable="True">1</FlipFlop_A>
<FlipFlop_B Writable="True">1</FlipFlop_B>
<ActivityLatch_A>0</ActivityLatch_A>
<ActivityLatch_B>0</ActivityLatch_B>
<NumberOfChannels>2</NumberOfChannels>
<PowerSource>1</PowerSource>
<ActivityLatchReset Writable="True">-</ActivityLatchReset>
</owd_DS2406>

I need the whole file, like my example in the top

/Rikard

Something like this?

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Devices-Detail-Response xmlns="http://www.embeddeddatasystems.com/schema/owserver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PollCount>983</PollCount>
<DevicesConnected>15</DevicesConnected>
<LoopTime>13.124</LoopTime>
<DataErrors>0</DataErrors>
<DeviceName>OW_SERVER-WiFi</DeviceName>
<HostName>EDSOWSERVER</HostName>
<MACAddress>00:1E:C0:00:BF:43</MACAddress>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>CC000003CCD4A028</ROMId>
<Health>7</Health>
<RawData>67014B467FFF09103BFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>22.4375 Deg C</PrimaryValue>
<Temperature Units="Centigrade">22.4375</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>DF00000410FB9028</ROMId>
<Health>7</Health>
<RawData>6B014B467FFF051049FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>22.6875 Deg C</PrimaryValue>
<Temperature Units="Centigrade">22.6875</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>10000003F8047028</ROMId>
<Health>7</Health>
<RawData>24014B467FFF0C1048FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.2500 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.2500</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>7E000003F81F1828</ROMId>
<Health>7</Health>
<RawData>85014B467FFF0B105FFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>24.3125 Deg C</PrimaryValue>
<Temperature Units="Centigrade">24.3125</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>520000041100D828</ROMId>
<Health>7</Health>
<RawData>2B014B467FFF051000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.6875 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.6875</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>98000003CC839C28</ROMId>
<Health>7</Health>
<RawData>2A014B467FFF061016FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.6250 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.6250</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>3F000003CC27E228</ROMId>
<Health>7</Health>
<RawData>55004B467FFF0B10EDFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>5.3125 Deg C</PrimaryValue>
<Temperature Units="Centigrade">5.3125</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>C2000003CCAFAE28</ROMId>
<Health>7</Health>
<RawData>90004B467FFF1010AFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>9.0000 Deg C</PrimaryValue>
<Temperature Units="Centigrade">9.0000</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>C5000003CC8C3E28</ROMId>
<Health>7</Health>
<RawData>52014B467FFF0E10FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>21.1250 Deg C</PrimaryValue>
<Temperature Units="Centigrade">21.1250</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>B8000003CC58E528</ROMId>
<Health>7</Health>
<RawData>78014B467FFF081051FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>23.5000 Deg C</PrimaryValue>
<Temperature Units="Centigrade">23.5000</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>9F000003CCE10328</ROMId>
<Health>7</Health>
<RawData>68014B467FFF081005FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>22.5000 Deg C</PrimaryValue>
<Temperature Units="Centigrade">22.5000</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>6A000003F80B4B28</ROMId>
<Health>7</Health>
<RawData>68014B467FFF081005FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>22.5000 Deg C</PrimaryValue>
<Temperature Units="Centigrade">22.5000</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>CB000003CCDB9728</ROMId>
<Health>7</Health>
<RawData>2F014B467FFF01102EFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.9375 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.9375</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS2406 Description="Dual addressable switch plus memory">
<Name>DS2406</Name>
<Family>12</Family>
<ROMId>DF00000020ADC212</ROMId>
<Health>7</Health>
<RawData>73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>A=0, B=0</PrimaryValue>
<InputLevel_A>0</InputLevel_A>
<InputLevel_B>0</InputLevel_B>
<FlipFlop_A Writable="True">1</FlipFlop_A>
<FlipFlop_B Writable="True">1</FlipFlop_B>
<ActivityLatch_A>1</ActivityLatch_A>
<ActivityLatch_B>1</ActivityLatch_B>
<NumberOfChannels>2</NumberOfChannels>
<PowerSource>0</PowerSource>
<ActivityLatchReset Writable="True">-</ActivityLatchReset>
</owd_DS2406>
<owd_DS2406 Description="Dual addressable switch plus memory">
<Name>DS2406</Name>
<Family>12</Family>
<ROMId>700000007D189112</ROMId>
<Health>7</Health>
<RawData>CF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>A=1, B=1</PrimaryValue>
<InputLevel_A>1</InputLevel_A>
<InputLevel_B>1</InputLevel_B>
<FlipFlop_A Writable="True">1</FlipFlop_A>
<FlipFlop_B Writable="True">1</FlipFlop_B>
<ActivityLatch_A>0</ActivityLatch_A>
<ActivityLatch_B>0</ActivityLatch_B>
<NumberOfChannels>2</NumberOfChannels>
<PowerSource>1</PowerSource>
<ActivityLatchReset Writable="True">-</ActivityLatchReset>
</owd_DS2406>
</Devices-Detail-Response>

So, I have published a test version
Install from the link
https://homey.app/en-se/app/com.embeddeddatasystems.convertxml/Embedded-Data-Systems/test/
the json-path for the new stuff is like DS2406['DF00000020ADC212_A']

Good work - it is definitely working! Thanks!!

Hi,
For some reason - the flow stopped working, with the error message below. I do not think this is related to your app, but I can not figure out why this is not working anymore.

Any thoughts on why this would stop working? I can connect to the local address no problem, so the OW Server is reachable on the network.

And today it started working - never mind - all good.

Didnt see this until now.

But thats not related to my app, thats the homeys logic.

But it could also relate to your ow-server or your network

Hi,
I have a few more devices connected to my two EDS OW2 servers, EDS0068 (humidity, temperature, light and barometric pressure), DS2423 (counters with two counters A and B). Is it possible to add these to your excellent conversion utility?

Here is a copy of the output from one of the OW2 servers:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Devices-Detail-Response xmlns="http://www.embeddeddatasystems.com/schema/owserver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PollCount>3783090</PollCount>
<DevicesConnected>15</DevicesConnected>
<LoopTime>11.937</LoopTime>
<DevicesConnectedChannel1>9</DevicesConnectedChannel1>
<DevicesConnectedChannel2>0</DevicesConnectedChannel2>
<DevicesConnectedChannel3>6</DevicesConnectedChannel3>
<DataErrorsChannel1>359</DataErrorsChannel1>
<DataErrorsChannel2>0</DataErrorsChannel2>
<DataErrorsChannel3>132</DataErrorsChannel3>
<VoltageChannel1>4.02</VoltageChannel1>
<VoltageChannel2>4.04</VoltageChannel2>
<VoltageChannel3>4.03</VoltageChannel3>
<VoltagePower>4.22</VoltagePower>
<DeviceName>OWServer_v2-Enet_1</DeviceName>
<HostName>NDATA-1WIRE-1</HostName>
<MACAddress>00:04:A3:C1:50:2E</MACAddress>
<DateTime>2024-12-08 13:07:01</DateTime>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>2F0000041C28C428</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>3F004B467FFF011047FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>3.9375 Deg C</PrimaryValue>
<Temperature Units="Centigrade">3.9375</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>750000041C2D2C28</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>F6004B467FFF0A10D6FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>15.3750 Deg C</PrimaryValue>
<Temperature Units="Centigrade">15.3750</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>3C0000041C195128</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>03014B467FFF0D10F4FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>16.1875 Deg C</PrimaryValue>
<Temperature Units="Centigrade">16.1875</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>C90000041C2D5328</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>3D014B467FFF03106DFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>19.8125 Deg C</PrimaryValue>
<Temperature Units="Centigrade">19.8125</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>DC0000041C143B28</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>09014B467FFF0710BFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>16.5625 Deg C</PrimaryValue>
<Temperature Units="Centigrade">16.5625</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>1D0000041C554728</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>D3004B467FFF0D1046FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>13.1875 Deg C</PrimaryValue>
<Temperature Units="Centigrade">13.1875</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>C30000041C5AD728</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>8E004B467FFF02103FFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>8.8750 Deg C</PrimaryValue>
<Temperature Units="Centigrade">8.8750</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>C40000041BE5DF28</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>04014B467FFF0C10E0FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>16.2500 Deg C</PrimaryValue>
<Temperature Units="Centigrade">16.2500</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>7F0000041C0F4A28</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>2A014B467FFF061016FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.6250 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.6250</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>FC0000041C0A0528</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>3C014B467FFF041040FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>19.7500 Deg C</PrimaryValue>
<Temperature Units="Centigrade">19.7500</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>BB0000041C1B7728</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>3E014B467FFF02106CFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>19.8750 Deg C</PrimaryValue>
<Temperature Units="Centigrade">19.8750</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS18B20 Description="Programmable resolution thermometer">
<Name>DS18B20</Name>
<Family>28</Family>
<ROMId>720000041C528F28</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>2C014B467FFF041014FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>18.7500 Deg C</PrimaryValue>
<Temperature Units="Centigrade">18.7500</Temperature>
<UserByte1 Writable="True">75</UserByte1>
<UserByte2 Writable="True">70</UserByte2>
<Resolution>12</Resolution>
<PowerSource>255</PowerSource>
</owd_DS18B20>
<owd_DS2423 Description="RAM with counters">
<Name>DS2423</Name>
<Family>1D</Family>
<ROMId>7E0000000F95411D</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>F853770100000000F85BAF8F560100000000ED8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>24597496, 22450095</PrimaryValue>
<Counter_A>24597496</Counter_A>
<Counter_B>22450095</Counter_B>
</owd_DS2423>
<owd_DS2423 Description="RAM with counters">
<Name>DS2423</Name>
<Family>1D</Family>
<ROMId>E60000000F95311D</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>F15955000000000062B5EA9D40000000000024BC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>
<PrimaryValue>5593585, 4234730</PrimaryValue>
<Counter_A>5593585</Counter_A>
<Counter_B>4234730</Counter_B>
</owd_DS2423>
<owd_EDS0068 Description="Temperature, Humidity, Barometric Pressure and Light Sensor">
<Name>EDS0068</Name>
<Family>7E</Family>
<ROMId>BA0010000026457E</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>6800D000D3035B00D000D000E1F81FB3F100000000000400D495F000B474920204001E0546007DD87DD87DD800803E000000002003000000A086010000000B000000000000000000</RawData>
<PrimaryValue>61.1875 %RH</PrimaryValue>
<Temperature Units="Centigrade">13.0000</Temperature>
<Humidity Units="PercentRelativeHumidity">61.1875</Humidity>
<DewPoint Units="Centigrade">5.6875</DewPoint>
<Humidex>13.0000</Humidex>
<HeatIndex Units="Centigrade">13.0000</HeatIndex>
<BarometricPressureMb Units="Millibars">1023.110</BarometricPressureMb>
<BarometricPressureHg Units="InchesOfMercury">30.212</BarometricPressureHg>
<Light Units="Lux">0</Light>
<LED>0</LED>
<Relay>0</Relay>
<Counter1>43152564</Counter1>
<Counter2>15766996</Counter2>
<TemperatureHighAlarmState>0</TemperatureHighAlarmState>
<TemperatureLowAlarmState>0</TemperatureLowAlarmState>
<HumidityHighAlarmState>1</HumidityHighAlarmState>
<HumidityLowAlarmState>0</HumidityLowAlarmState>
<DewPointHighAlarmState>0</DewPointHighAlarmState>
<DewPointLowAlarmState>0</DewPointLowAlarmState>
<HumidexHighAlarmState>0</HumidexHighAlarmState>
<HumidexLowAlarmState>0</HumidexLowAlarmState>
<HeatIndexHighAlarmState>0</HeatIndexHighAlarmState>
<HeatIndexLowAlarmState>0</HeatIndexLowAlarmState>
<BarometricPressureMbHighAlarmState>0</BarometricPressureMbHighAlarmState>
<BarometricPressureMbLowAlarmState>0</BarometricPressureMbLowAlarmState>
<BarometricPressureHgHighAlarmState>0</BarometricPressureHgHighAlarmState>
<BarometricPressureHgLowAlarmState>0</BarometricPressureHgLowAlarmState>
<LightHighAlarmState>0</LightHighAlarmState>
<LightLowAlarmState>0</LightLowAlarmState>
<ClearAlarms Writable="True">-</ClearAlarms>
<TemperatureHighConditionalSearchState Writable="True">0</TemperatureHighConditionalSearchState>
<TemperatureLowConditionalSearchState Writable="True">0</TemperatureLowConditionalSearchState>
<HumidityHighConditionalSearchState Writable="True">1</HumidityHighConditionalSearchState>
<HumidityLowConditionalSearchState Writable="True">0</HumidityLowConditionalSearchState>
<DewPointHighConditionalSearchState Writable="True">0</DewPointHighConditionalSearchState>
<DewPointLowConditionalSearchState Writable="True">0</DewPointLowConditionalSearchState>
<HumidexHighConditionalSearchState Writable="True">0</HumidexHighConditionalSearchState>
<HumidexLowConditionalSearchState Writable="True">0</HumidexLowConditionalSearchState>
<HeatIndexHighConditionalSearchState Writable="True">0</HeatIndexHighConditionalSearchState>
<HeatIndexLowConditionalSearchState Writable="True">0</HeatIndexLowConditionalSearchState>
<BarometricPressureMbHighConditionalSearchState Writable="True">0</BarometricPressureMbHighConditionalSearchState>
<BarometricPressureMbLowConditionalSearchState Writable="True">0</BarometricPressureMbLowConditionalSearchState>
<BarometricPressureHgHighConditionalSearchState Writable="True">0</BarometricPressureHgHighConditionalSearchState>
<BarometricPressureHgLowConditionalSearchState Writable="True">0</BarometricPressureHgLowConditionalSearchState>
<LightHighConditionalSearchState Writable="True">0</LightHighConditionalSearchState>
<LightLowConditionalSearchState Writable="True">0</LightLowConditionalSearchState>
<TemperatureHighAlarmValue Writable="True" Units="Centigrade">30</TemperatureHighAlarmValue>
<TemperatureLowAlarmValue Writable="True" Units="Centigrade">5</TemperatureLowAlarmValue>
<HumidityHighAlarmValue Writable="True" Units="PercentRelativeHumidity">70</HumidityHighAlarmValue>
<HumidityLowAlarmValue Writable="True" Units="PercentRelativeHumidity">0</HumidityLowAlarmValue>
<DewPointHighAlarmValue Writable="True" Units="Centigrade">125</DewPointHighAlarmValue>
<DewPointLowAlarmValue Writable="True" Units="Centigrade">-40</DewPointLowAlarmValue>
<HumidexHighAlarmValue Writable="True">125</HumidexHighAlarmValue>
<HumidexLowAlarmValue Writable="True">-40</HumidexLowAlarmValue>
<HeatIndexHighAlarmValue Writable="True" Units="Centigrade">125</HeatIndexHighAlarmValue>
<HeatIndexLowAlarmValue Writable="True" Units="Centigrade">-40</HeatIndexLowAlarmValue>
<BarometricPressureMbHighAlarmValue Writable="True" Units="Millibars">2000.000</BarometricPressureMbHighAlarmValue>
<BarometricPressureMbLowAlarmValue Writable="True" Units="Millibars">0.000</BarometricPressureMbLowAlarmValue>
<BarometricPressureHgHighAlarmValue Writable="True" Units="InchesOfMercury">100.000</BarometricPressureHgHighAlarmValue>
<BarometricPressureHgLowAlarmValue Writable="True" Units="InchesOfMercury">0.000</BarometricPressureHgLowAlarmValue>
<LightHighAlarmValue Writable="True" Units="Lux">100000</LightHighAlarmValue>
<LightLowAlarmValue Writable="True" Units="Lux">0</LightLowAlarmValue>
<LEDFunction Writable="True">2</LEDFunction>
<RelayFunction Writable="True">3</RelayFunction>
<LEDState Writable="True">0</LEDState>
<RelayState Writable="True">0</RelayState>
<Version>1.03</Version>
</owd_EDS0068>
</Devices-Detail-Response>

Hi
I could probably do that.
Can you take a screendump of the xml-file and mark which values you need.

/Rikard

Hi,
I would need the values from the counters (DS2423):

<owd_DS2423 Description="RAM with counters">
<Name>DS2423</Name>
<Family>1D</Family>
<ROMId>7E0000000F95411D</ROMId>
<Health>7</Health>
<Channel>3</Channel>
<RawData>F853770100000000...</RawData>
<PrimaryValue>24597496, 22450095</PrimaryValue>
***<Counter_A>24597496</Counter_A>***
***<Counter_B>22450095</Counter_B>***
</owd_DS2423>

… and the weather data from EDS0068:

<owd_EDS0068 Description="Temperature, Humidity, Barometric Pressure and Light Sensor">
<Name>EDS0068</Name>
<Family>7E</Family>
<ROMId>BA0010000026457E</ROMId>
<Health>7</Health>
<Channel>1</Channel>
<RawData>6800D000D3035B00D000D000E1F81FB3F100000000000400D495F000B474920204001E0546007DD87DD87DD800803E000000002003000000A086010000000B000000000000000000</RawData>
<PrimaryValue>61.1875 %RH</PrimaryValue>
**<Temperature Units="Centigrade">13.0000</Temperature>**
**<Humidity Units="PercentRelativeHumidity">61.1875</Humidity>**
**<DewPoint Units="Centigrade">5.6875</DewPoint>**
**<Humidex>13.0000</Humidex>**
**<HeatIndex Units="Centigrade">13.0000</HeatIndex>**
**<BarometricPressureMb Units="Millibars">1023.110</BarometricPressureMb>**
**<BarometricPressureHg Units="InchesOfMercury">30.212</BarometricPressureHg>**
**<Light Units="Lux">0</Light>**
<LED>0</LED>
<Relay>0</Relay>

Hi Rikard!
I gave it a go and modified your code slightly to accomodate for the two new devices, DS2423 and EDS0068. Here is the modified code from the app.js:

'use strict';

const Homey = require('homey');

module.exports = class MyApp extends Homey.App {

  /**
   * onInit is called when the app is initialized.
   */
  async onInit() {
    //this.log('MyApp has been initialized');
	
    const card = this.homey.flow.getActionCard('convert-xml-to-json');

    card.registerRunListener(async (args) => {
      let linenumber = 1;

      let ROMId = null;
      let temperature = null;
      let humidityEDS = null;
      let dewpointEDS = null;
      let barometricpreassureMbEDS = null;
      let lightEDS = null;
      let output_A = null;
      let output_B = null;
      let counter_A = null;
      let counter_B = null;
      let tempstring = null;
      let DS18B20array = [];
      let DS2406array = [];
      let DS2423array = [];
      let EDS0068array = [];
	    let jsonstring = "";

      const { XMLinput } = args;

      args.XMLinput.split(/\r?\n/).forEach(line => {
          
        if (line.includes('<ROMId>')) {

          line = line.replace('<ROMId>', '');
          line = line.replace('</ROMId>', '');
          ROMId = line;
        }
        if (line.includes('<Temperature Units="Centigrade">')) {

          line = line.replace('<Temperature Units="Centigrade">', '');
          line = line.replace('</Temperature>', '');
          temperature = line;
        }

        if (line.includes('<InputLevel_A>')) {

          line = line.replace('<InputLevel_A>', '');
          line = line.replace('</InputLevel_A>', '');
          output_A = line;
        }
        if (line.includes('<InputLevel_B>')) {

          line = line.replace('<InputLevel_B>', '');
          line = line.replace('</InputLevel_B>', '');    
          output_B = line;
        }

		// New device added DS2423 (A and B counter)
        if (line.includes('<Counter_A>')) {

          line = line.replace('<Counter_A>', '');
          line = line.replace('</Counter_A>', '');
          counter_A = line;        }
        if (line.includes('<Counter_B>')) {

          line = line.replace('<Counter_B>', '');
          line = line.replace('</Counter_B>', '');    
          counter_B = line;
        }
		// New device added EDS0068 (...)
    if (line.includes('<Humidity Units="PercentRelativeHumidity">')) {

      line = line.replace('<Humidity Units="PercentRelativeHumidity">', '');
      line = line.replace('</Humidity>', '');    
      humidityEDS = line;
    }

    if (line.includes('<DewPoint Units="Centigrade">')) {

      line = line.replace('<DewPoint Units="Centigrade">', '');
      line = line.replace('</DewPoint>', '');    
      dewpointEDS = line;
    }

    if (line.includes('<BarometricPressureMb Units="Millibars">')) {

      line = line.replace('<BarometricPressureMb Units="Millibars">', '');
      line = line.replace('</BarometricPressureMb>', '');    
      barometricpreassureMbEDS = line;
    }

    if (line.includes('<Light Units="Lux">')) {

      line = line.replace('<Light Units="Lux">', '');
      line = line.replace('</Light>', '');    
      lightEDS = line;
    }
    // End new device 
		
        if (ROMId != null && temperature != null) {

          tempstring = "\"";
          tempstring += ROMId;
          tempstring += "\"\: ";
          tempstring += temperature;
          //ROMId = null; // Keep the ROMId for the EDS0068 device
          temperature = null;

          DS18B20array.push(tempstring);
        }

        if (ROMId != null && output_A != null && output_B != null) {

          tempstring = "\"";
          tempstring += ROMId;
          tempstring += "_A\"\: ";
          tempstring += output_A;
          DS2406array.push(tempstring);

          tempstring = "\"";
          tempstring += ROMId;
          tempstring += "_B\"\: ";
          tempstring += output_B;
          ROMId = null;
          output_A = null;
          output_B = null;
          DS2406array.push(tempstring);
        }

       // New device added DS2423 (A and B counter)
	      if (ROMId != null && counter_A != null && counter_B != null) {

          tempstring = "\"";
          tempstring += ROMId;
          tempstring += "_A\"\: ";
          tempstring += counter_A;
          DS2423array.push(tempstring);

          tempstring = "\"";
          tempstring += ROMId;
          tempstring += "_B\"\: ";
          tempstring += counter_B;
          ROMId = null;
          counter_A = null;
          counter_B = null;
          DS2423array.push(tempstring);
        }

       // New device added EDS0068 (...)
       if (ROMId != null && humidityEDS != null && dewpointEDS != null && barometricpreassureMbEDS != null && lightEDS != null) {

        tempstring = "\"";
        tempstring += ROMId;
        tempstring += "_Humidity\"\: ";
        tempstring += humidityEDS;
        EDS0068array.push(tempstring);

        tempstring = "\"";
        tempstring += ROMId;
        tempstring += "_Dewpoint\"\: ";
        tempstring += dewpointEDS;
        EDS0068array.push(tempstring);
        
        tempstring = "\"";
        tempstring += ROMId;
        tempstring += "_PreassureMb\"\: ";
        tempstring += barometricpreassureMbEDS;
        EDS0068array.push(tempstring);
        
        tempstring = "\"";
        tempstring += ROMId;
        tempstring += "_Light\"\: ";
        tempstring += lightEDS;
        EDS0068array.push(tempstring);
        
        ROMId = null;
        humidityEDS = null;
        dewpointEDS = null;
        barometricpreassureMbEDS = null;
        lightEDS = null;
      }
      // End New devices


        linenumber++;
      });

      if (DS18B20array.length > 0)
      {
        jsonstring = "\{\r\n\t\"Temperature\": \{\r\n\t\t\t";
      for (let i = 0; i < DS18B20array.length; i++) {
        jsonstring += DS18B20array[i];
        if (i < (DS18B20array.length - 1))
          jsonstring += "\,";
        jsonstring += "\r\n\t\t\t";


      }
    } 
    if (jsonstring !== "" && DS2406array.length >0)

    {
      jsonstring += "\r\n\t\t},\r\n\r\n\"DS2406\":\t\t{";
    }
    else if (DS2406array.length >0){
      jsonstring = "\{\r\n\t\"DS2406\": \{\r\n\t\t\t";
    }


    if (DS2406array.length >0){
      for (let i = 0; i < DS2406array.length; i++) {
        jsonstring += DS2406array[i];
        if (i < (DS2406array.length - 1))
          jsonstring += "\,";
        jsonstring += "\r\n\t\t\t";
      }

      }

      // New device added DS2423 (A and B counter)
      if (jsonstring !== "" && DS2423array.length >0)

        {
          jsonstring += "\r\n\t\t},\r\n\r\n\"DS2423\":\t\t{";
        }
        else if (DS2423array.length >0){
          jsonstring = "\{\r\n\t\"DS2423\": \{\r\n\t\t\t";
        }
    
    
        if (DS2423array.length >0){
          for (let i = 0; i < DS2423array.length; i++) {
            jsonstring += DS2423array[i];
            if (i < (DS2423array.length - 1))
              jsonstring += "\,";
            jsonstring += "\r\n\t\t\t";
          }
    
          }      

      // New device added EDS0068 (...)
      if (jsonstring !== "" && EDS0068array.length >0)

          {
            jsonstring += "\r\n\t\t},\r\n\r\n\"EDS0068\":\t\t{";
          }
          else if (EDS0068array.length >0){
            jsonstring = "\{\r\n\t\"EDS0068\": \{\r\n\t\t\t";
          }
      
      
          if (EDS0068array.length >0){
            for (let i = 0; i < EDS0068array.length; i++) {
              jsonstring += EDS0068array[i];
              if (i < (EDS0068array.length - 1))
                jsonstring += "\,";
              jsonstring += "\r\n\t\t\t";
            }
      
          }      
      // End New devices

      DS2406array  = [];
      DS18B20array = [];
      DS2423array = [];
      EDS0068array = [];

      jsonstring += "\}\r\n\t\t\r\n\t\}";
      this.log(jsonstring);
      return {
        json_output: jsonstring
      };
      
    })	
  }

};

Hi Johan

Ive added your code, i published in test

It works with my devices.

Test it and let me know

/Rikard

Hi Rikard,

It works like a charm.
Thank you for adding this in to your code.

/Johan

Good to hear.
You did the biggest part your self even if there where some problems probably becaues i upgraded homey development environment.

@EvenT can you test the testversion so that we se that it still works with your device before I move beyond test?

/Rikard

Hi Rikard,

Just ran the tests again and it works.
Perfect!

/Johan