Jump to content

Error in log which looks like mac address?


Recommended Posts

What do you get if you load that URL listed in the log snippet above into your browser?  Can you post or PM me the results?  Also, it would help to see the full log, including the node server startup so restart the node server, download the log and PM it to me.

Link to comment

I get the following (coordinates and address overwritten)

[{"macAddress":"XX:XX:XX:XX:XX:XX","lastData":{"dateutc":1685666220000,"tempinf":76.8,"battin":1,"humidityin":55,"baromrelin":29.87,"baromabsin":29.218,"tempf":85.8,"battout":1,"humidity":52,"winddir":270,"winddir_avg10m":263,"windspeedmph":0,"windspdmph_avg10m":0,"windgustmph":0,"maxdailygust":7.6,"hourlyrainin":0,"eventrainin":0,"dailyrainin":0,"weeklyrainin":0.043,"monthlyrainin":0,"yearlyrainin":8.835,"lightning_day":0,"lightning_time":1675866562000,"lightning_distance":24.85,"batt_lightning":0,"solarradiation":12.23,"uv":0,"soilhum1":18,"soilhum2":8,"soilhum3":21,"soilhum4":6,"soilhum5":24,"battsm1":1,"battsm2":1,"battsm3":1,"battsm4":1,"battsm5":"1","temp1f":86,"humidity1":50,"temp2f":93.7,"humidity2":33,"temp4f":82.9,"batt1":1,"batt2":1,"batt3":1,"batt4":1,"pm25":16,"pm25_24h":11.1,"aqi_pm25":59,"aqi_pm25_24h":46,"batt_25":0,"pm25_in":7,"pm25_in_24h":3.4,"aqi_pm25_in":29,"aqi_pm25_in_24h":14,"batt_25in":1,"batt_co2":1,"feelsLike":88.16,"dewPoint":66.11,"feelsLike1":87.9,"dewPoint1":65.2,"feelsLike2":93.6,"dewPoint2":60.2,"feelsLikein":76.8,"dewPointin":59.4,"lastRain":"2023-05-28T22:10:00.000Z","lightning_hour":0,"tz":"America/Chicago","date":"2023-06-02T00:37:00.000Z"},"info":{"name":"Magnolia Manor Weather Station","coords":{"coords":{"lon":-NN.NNNNNNN,"lat":NN.NNNNNNN},"address":"NNNN Street Ln, Flower Mound, TX 75028, USA","location":"Flower Mound","elevation":177.010009765625,"geo":{"type":"Point","coordinates":[-NN.NNNNNN,NN.NNNNNNN]}}}}]

Now I get populated information for about 8 nodes on Polyglot but the devices in Isy show only "low" for one field:

image.thumb.png.93c236cdbadc24dce12ba95d44e5e703.png

 

image.thumb.png.72c71eb62050d427f762dfad9ffc49fe.png

Link to comment

Have you restarted the admin console since installing the node server?  

Every time you install a new node server, you have to restart the admin console so that it read the information from the node server that describes how to display the nodes. Otherwise you end up with random/incorrect info displayed for the nodes.

Link to comment

If it's working with UDMobile but not the Admin console, then it's probably not the node server.  It still seems like the Admin console hasn't read the node definitions and thus, doesn't know how to represent the nodes.

You could enable the Java console and see if the admin console is throwing any errors when it loads.

Based on my understanding, UDMobile uses formatted values from the IoX so to get those, the IoX needs access to the node definitions.  That means that IoX has the proper definitions and for some reason the admin console is not able to get them from the IoX. 

It appears that the node server is working correctly.  So if the Java console doesn't provide any info, you'll have to open a support ticket.

Link to comment

Probably not, since UD Mobile is able to display them, they are installed correctly on the IoX.  It's just the console that isn't displaying them correctly.

Everything is stored in the IoX and then both UD Mobile and the console pull the information from there. 

It's possible there's an error in the node definition files and when the console reads them it fails to parse something and aborts.  That info would be shown on the Java console and know where else.   Since the node definitions files are dynamically created based on your station configuration, it's not something would be able to replicate easily.

The console is less tolerant of error in the definitions than other other components on the system.

Link to comment

Yep, I see a addnodedefs invalid entry:

 

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_1" NLS="sensor">
    <sts>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="CLIHUM" EDITOR="I_HUMIDITY"/>
        <st ID="WINDDIR" EDITOR="I_DEGREES"/>
        <st ID="GV6" EDITOR="I_DEGREES"/>
        <st ID="SPEED" EDITOR="I_SPEED"/>
        <st ID="GV7" EDITOR="I_SPEED"/>
        <st ID="GUST" EDITOR="I_SPEED"/>
        <st ID="GV5" EDITOR="I_SPEED"/>
        <st ID="RAINRT" EDITOR="I_RATE"/>
        <st ID="GV1" EDITOR="I_RAIN"/>
        <st ID="GV2" EDITOR="I_RAIN"/>
        <st ID="GV3" EDITOR="I_RAIN"/>
        <st ID="GV4" EDITOR="I_RAIN"/>
        <st ID="DISTANC" EDITOR="I_DISTANCE"/>
        <st ID="GV11" EDITOR="I_BATTERY"/>
        <st ID="SOLRAD" EDITOR="I_RADIATION"/>
        <st ID="UV" EDITOR="I_UV"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="GV8" EDITOR="I_BATTERY"/>
        <st ID="GV9" EDITOR="I_BATTERY"/>
        <st ID="CLITEMP" EDITOR="I_TEMP"/>
        <st ID="DEWPT" EDITOR="I_TEMP"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>
 

that sure looks like the weather info :-)

Here is the whole log:

 

Java Web Start 11.371.2.11
Using JRE version 1.8.0_371-b11 Java HotSpot(TM) Client VM
JRE expiration date: 8/18/23 12:00 AM
console.user.home = C:\Users\mitch
----------------------------------------------------
😄   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
Trace level set to 5: all ... completed.network: Cache entry not found [url: https://eisy.local:8443/admin.jnlp, version: null]
network: Connecting https://eisy.local:8443/admin.jnlp with proxy=DIRECT
network: Connecting socket://eisy.local:8443 with proxy=DIRECT
https://eisy.local:8443/WEB/iox.jar
https://eisy.local:8443/WEB/ce.jar
https://eisy.local:8443/WEB/chart.jar
network: Cache entry found [url: https://eisy.local:8443/WEB/iox.jar, version: null]
cache: Adding MemoryCache entry: https://eisy.local:8443/WEB/iox.jar
cache: Resource https://eisy.local:8443/WEB/iox.jar has future expires: Sat Jun 03 13:10:06 CDT 2023 update check skipped.
cache: registerReference: com.sun.deploy.cache.MemoryCache$CachedResourceReference@26b5cd34: 1

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_1" NLS="sensor">
    <sts>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="CLIHUM" EDITOR="I_HUMIDITY"/>
        <st ID="WINDDIR" EDITOR="I_DEGREES"/>
        <st ID="GV6" EDITOR="I_DEGREES"/>
        <st ID="SPEED" EDITOR="I_SPEED"/>
        <st ID="GV7" EDITOR="I_SPEED"/>
        <st ID="GUST" EDITOR="I_SPEED"/>
        <st ID="GV5" EDITOR="I_SPEED"/>
        <st ID="RAINRT" EDITOR="I_RATE"/>
        <st ID="GV1" EDITOR="I_RAIN"/>
        <st ID="GV2" EDITOR="I_RAIN"/>
        <st ID="GV3" EDITOR="I_RAIN"/>
        <st ID="GV4" EDITOR="I_RAIN"/>
        <st ID="DISTANC" EDITOR="I_DISTANCE"/>
        <st ID="GV11" EDITOR="I_BATTERY"/>
        <st ID="SOLRAD" EDITOR="I_RADIATION"/>
        <st ID="UV" EDITOR="I_UV"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="GV8" EDITOR="I_BATTERY"/>
        <st ID="GV9" EDITOR="I_BATTERY"/>
        <st ID="CLITEMP" EDITOR="I_TEMP"/>
        <st ID="DEWPT" EDITOR="I_TEMP"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [PM25]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_2" NLS="sensor">
    <sts>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="CLIHUM" EDITOR="I_HUMIDITY"/>
        <st ID="BARPRES" EDITOR="I_PRESSURE"/>
        <st ID="ATMPRES" EDITOR="I_PRESSURE"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="PM25" EDITOR="I_PM25"/>
        <st ID="GV10" EDITOR="I_PM25"/>
        <st ID="GV8" EDITOR="I_BATTERY"/>
        <st ID="CLITEMP" EDITOR="I_TEMP"/>
        <st ID="DEWPT" EDITOR="I_TEMP"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [PM25]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_3" NLS="sensor">
    <sts>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="CLIHUM" EDITOR="I_HUMIDITY"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="CLITEMP" EDITOR="I_TEMP"/>
        <st ID="DEWPT" EDITOR="I_TEMP"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [BATLVL]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_4" NLS="sensor">
    <sts>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="CLIHUM" EDITOR="I_HUMIDITY"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="CLITEMP" EDITOR="I_TEMP"/>
        <st ID="DEWPT" EDITOR="I_TEMP"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [BATLVL]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_5" NLS="sensor">
    <sts>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [BATLVL]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)

addNodeDefs invalid entry
----<nodeDef NODETYPE="139" ID="e8db84e3ca4a_6" NLS="sensor">
    <sts>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
        <st ID="TEMPOUT" EDITOR="I_TEMP"/>
        <st ID="BATLVL" EDITOR="I_BATTERY"/>
    </sts>
    <cmds>
        <sends/>
        <accepts/>
    </cmds>
</nodeDef>

----
java.lang.IllegalArgumentException: U7DriverControl dup param [BATLVL]
    at com.universaldevices.u7.U7DriverControl.fail(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.<init>(Unknown Source)
    at com.universaldevices.u7.U7DriverControl.newStatus(Unknown Source)
    at com.universaldevices.u7.U7NodeDef.<init>(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.u7.U7NodeDefs.addNodeDefs(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.registerProfile(Unknown Source)
    at com.universaldevices.uxt.UXTProfileDownloader.loadAllProfiles(Unknown Source)
    at com.universaldevices.uxt.UXTNodeServerMgr.loadProfiles(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.prepareAuthenticatedSession(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.authenticate(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.onDeviceOnLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.onLine(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.updateDeviceInfo(Unknown Source)
    at com.universaldevices.upnp.UDControlPoint.addDevices(Unknown Source)
    at com.universaldevices.ui.UPnPClientApplet.start(Unknown Source)
    at com.universaldevices.ui.UDIDefaultLauncher$2.run(Unknown Source)
Z-Wave event: control=[_25] action=[1.3]

 -- Extended Info --

<eventInfo>
    <zwave CBP="false" CONNECTED="false" RELAXDELAY="0" INTERVIEWTIMEOUT="0" SECUREINC="2" HOMEID="0" NODEID="0" RELAXDELAYDEFAULT="15"/>
</eventInfo>


 --

Z-Wave event: control=[_25] action=[7.1]

 -- Extended Info --

<eventInfo>
    <options>
        <files ZMATTER="true"/>
        <dongle ZMATTER="false" ZWAVEOTHER="false"/>
    </options>
</eventInfo>


 --

Z-Wave Backup Options:
 - zmatterFile=  true
 - 500SeriesFile=false
 - zmatter connected=false
 - other connected=false
network: Cache entry found [url: https://www.universal-devices.com/auto_update/updates_config, version: null]
cache: Adding MemoryCache entry: https://www.universal-devices.com/auto_update/updates_config
cache: Resource https://www.universal-devices.com/auto_update/updates_config has expired.
network: Connecting https://www.universal-devices.com/auto_update/updates_config with proxy=DIRECT
network: Connecting socket://www.universal-devices.com:443 with proxy=DIRECT
network: ResponseCode for https://www.universal-devices.com/auto_update/updates_config : 304
network: Encoding for https://www.universal-devices.com/auto_update/updates_config : null
network: Disconnect connection to https://www.universal-devices.com/auto_update/updates_config
cache: registerReference: com.sun.deploy.cache.MemoryCache$CachedResourceReference@562a3ad4: 1
network: Cache entry found [url: https://www.universal-devices.com/auto_update/prod-updates.xml, version: null]
cache: Adding MemoryCache entry: https://www.universal-devices.com/auto_update/prod-updates.xml
cache: Resource https://www.universal-devices.com/auto_update/prod-updates.xml has expired.
network: Connecting https://www.universal-devices.com/auto_update/prod-updates.xml with proxy=DIRECT
network: ResponseCode for https://www.universal-devices.com/auto_update/prod-updates.xml : 304
network: Encoding for https://www.universal-devices.com/auto_update/prod-updates.xml : null
network: Disconnect connection to https://www.universal-devices.com/auto_update/prod-updates.xml
cache: registerReference: com.sun.deploy.cache.MemoryCache$CachedResourceReference@9ef316ba: 1
network: Cache entry not found [url: https://www.universal-devices.com/sales/modules/status?uuid=uuid:00:21:b9:02:64:1c, version: null]
network: Connecting https://www.universal-devices.com/sales/modules/status?uuid=uuid:00:21:b9:02:64:1c with proxy=DIRECT
cache: https://www.universal-devices.com/sales/modules/status?uuid=uuid:00:21:b9:02:64:1c is not cacheable.
cache: MemoryCache: removed entry https://isy.universal-devices.com/launcher/udlogo.png
cache: MemoryCache: removed entry https://isy.universal-devices.com/launcher/isy.jnlp
 

 

Link to comment

The data the node server is getting from the station looks to be something the node server can't handle.

The node server parses the incoming data and creates the nodes to display that data.  It does this because there's not a lot of consistency between the sensors and data each station reports.   There's no really way to know ahead of time what data any specific station will be sending.

Your station however, is sending data that causes the node server to generate bad node definitions.  I've not any station do this before.

Looking through the errors:

e8db84e3ca4a_1 looks like it has two PM25 values and two of some other air quality values.  For a node, there can only be one of each

e8db84e3ca4a_2 same as above.

e8db84e3ca4a_3 has two battery levels.  How is that even possible?

e8db84e3ca4a_4 again two battery levels

e8db84e3ca4a_5 has two battery levels and nothing else, what kind of sensor is that?

e8db84e3ca4a_6 a temperature sensor and two battery levels, why does a temperature sensor need two batteries?

Since I know nothing about the equipment you have, I don't know what to tell you other than the node server is not designed to handle the data being returned for the sensors.

Link to comment

Bob if you look at the JSON returned from the API I think the sensors will be clearer -- fyi there is an indoor and outdoor PM25 sensor so there are two (with different names) but I don't see the multiple battery issues in the data returned from ambientweather.net. 

[
  {
    "macAddress": "E8:DB:84:E3:CA:4A",
    "lastData": {
      "dateutc": 1685851680000,
      "tempinf": 76.8,
      "battin": 1,
      "humidityin": 54,
      "baromrelin": 29.888,
      "baromabsin": 29.235,
      "tempf": 71.8,
      "battout": 1,
      "humidity": 77,
      "winddir": 180,
      "winddir_avg10m": 99,
      "windspeedmph": 0,
      "windspdmph_avg10m": 0,
      "windgustmph": 1.1,
      "maxdailygust": 12.5,
      "hourlyrainin": 0,
      "eventrainin": 0,
      "dailyrainin": 0.024,
      "weeklyrainin": 0.067,
      "monthlyrainin": 0.024,
      "yearlyrainin": 8.858,
      "lightning_day": 0,
      "lightning_time": 1675866562000,
      "lightning_distance": 24.85,
      "batt_lightning": 0,
      "solarradiation": 0,
      "uv": 0,
      "soilhum1": 13,
      "soilhum2": 4,
      "soilhum3": 11,
      "soilhum4": 3,
      "soilhum5": 11,
      "battsm1": 1,
      "battsm2": 1,
      "battsm3": 1,
      "battsm4": 1,
      "battsm5": "1",
      "temp1f": 84.9,
      "humidity1": 48,
      "temp2f": 77.7,
      "humidity2": 40,
      "temp4f": 84.4,
      "batt1": 1,
      "batt2": 1,
      "batt3": 1,
      "batt4": 1,
      "pm25": 6,
      "pm25_24h": 9.8,
      "aqi_pm25": 25,
      "aqi_pm25_24h": 41,
      "batt_25": 0,
      "pm25_in": 2,
      "pm25_in_24h": 2.5,
      "aqi_pm25_in": 8,
      "aqi_pm25_in_24h": 10,
      "batt_25in": 1,
      "batt_co2": 1,
      "feelsLike": 72.3,
      "dewPoint": 64.19,
      "feelsLike1": 85.8,
      "dewPoint1": 63,
      "feelsLike2": 77,
      "dewPoint2": 51.4,
      "feelsLikein": 76.7,
      "dewPointin": 58.9,
      "lastRain": "2023-06-03T23:43:00.000Z",
      "lightning_hour": 0,
      "tz": "America/Chicago",
      "date": "2023-06-04T04:08:00.000Z"
    },
    "info": {
      "name": "Magnolia Manor Weather Station",
      "coords": {
        "coords": {
          "lon": -97.052743,
          "lat": 33.0110917
        },
        "address": "1616 Shadywood Ln, Flower Mound, TX 75028, USA",
        "location": "Flower Mound",
        "elevation": 177.010009765625,
        "geo": {
          "type": "Point",
          "coordinates": [
            -97.052743,
            33.0110917
          ]
        }

Link to comment

I can see the problems.  

Ambient does a very poor job of using consistent rules for naming data fields.  That and the fact that every station/set of sensors presents different data makes it difficult to have a node server that handles everything.  It's not practical to write individual node servers for each person's individual configuration.  So the node server has rules it uses to parse the data out of that structure.

If you look at the soil sensors you see soilhum1 - soilhum5 along with battsm1 - battsm5.  So there are 6 sensors represented (one with no suffix and sensors 1, 2, 3, 4, 5.)  Then start looking at what other fields have each suffix;

humidity1, batt1, feelsLike1, dewPoint1 and just to be slightly different, temp1f

That's probably not one piece of hardware, but based on the naming of the fields I have no way to know that. Notice two battery fields, battsm1 and batt1.

For air quality it's even worse.  You have;

pm25, pm25_24h, aqi_pm25, aqi_pm25_in_24h, batt_25in, batt_co2

The node server knows the difference between the current value and 24hr value but again, I suspect that pm25 and aqi_pm25 are different sensors since you say you have indoor and outdoor units, but there's no way to tell that from the data.  Why aren't these suffixed to indicate they are different sensors? Right now, these all get lumped under sensor Main.  

It looks like there are 13 different battery state fields in there.  The node server can detect some of those as unique batteries, but given the number of duplicates, not all of them.

This is most certainly the most convoluted data set I've seen from them yet.

I can probably modify the node server to handle this, but I'll need a debug log from the node server.  Please set the log level to debug and restart the node server, give it a couple of minutes and then download the log and PM it to me.  I can add it to my list of node servers that need work.  But I can't commit to a ETA at this time.

Link to comment
Quote

No problem, I can send you the debug logs later today. Pm25 and Aqi_pm25 are from one sensor, but different representations of the air quality information, I’m not too clear about how AQI numbers work.  I’m going to get a list of the sensors we put on the unit from my invoices and I’ll include that information when I send the debug logs.

we have the main kits plus 5 soil sensors, a few extra temp/hum sensors, and a ground temp sensor.  I’ll get the list and see if I can tie it to the data as well.

Link to comment

Here are all the field names possible in the data:

https://github.com/ambient-weather/api-docs/wiki/Device-Data-Specs

This lists all the parameters that a device might send. Note: Not all devices send all the parameters.

  • winddir - instantaneous wind direction, 0-360º

  • windspeedmph - instantaneous wind speed, mph

  • windgustmph - max wind speed in the last 10 minutes, mph

  • maxdailygust - Maximum wind speed in last day, mph

  • windgustdir - Wind direction at which the wind gust occurred, 0-360º

  • windspdmph_avg2m - Average wind speed, 2 minute average, mph

  • winddir_avg2m - Average wind direction, 2 minute average, mph

  • windspdmph_avg10m - Average wind speed, 10 minute average, mph

  • winddir_avg10m - Average wind direction, 10 minute average, 0-360º

  • humidity - Outdoor Humidity, 0-100%

  • humidity1...humidity10 - humidity 1...10, 0-100%

  • humidityin - Indoor Humidity, 0-100%

  • tempf - Outdoor Temperature, ºF

  • temp1f...temp10f - Temperature 1...10, ºF

  • soiltemp1f...soiltemp10f - Temperature 1...10, ºF

  • soilhum1...soilhum10 - Temperature 1...10, %

  • leafwetness1...leafwetness8 - Leaf Wetness 1...8, Int, %

  • soiltens1...soiltens4 - Soil Tension 1...4, Float, cb

  • gdd - Growing Degree Days, Int, days

  • etos - Evapotranspiration short, Float, in/day

  • etrs - Evapotranspiration, tall, Float, in/day

  • tempinf - Indoor Temperature, ºF

  • leak1...leak4 - Leak Detection 1...4, 0=OK, 1=LEAK, 2=OFFLINEle

  • battout - Outdoor Battery - OK/Low indication, Int, 1=OK, 0=Low (Meteobridge Users 1=Low, 0=OK)

  • battin - Indoor Battery - OK/Low indication, Int, 1=OK, 0=Low (Meteobridge Users 1=Low, 0=OK)

  • batt1...batt10 - OK/Low indication, Int, 1=OK, 0=Low (Meteobridge Users 1=Low, 0=OK)

  • batt_25 - PM2.5 Air Quality Sensor Battery indication, OK/Low indication, Int, 1=OK, 0=Low (Meteobridge Users 1=Low, 0=OK)

  • batt_lightning - Lightning Detector Battery - 1=Low 0=OK

  • batleak1...batleak4 - Leak Detector Battery - 1=Low 0=OK

  • battsm1...battsm4 - Soil Moisture Battery - 1=OK, 0=Low

  • batt_co2 - CO2 battery - 1=OK, 0=Low

  • batt_cellgateway - Cellular Gateway - 1=OK, 0=Low

  • hourlyrainin - Hourly Rain Rate, in/hr

  • dailyrainin - Daily Rain, in

  • 24hourrainin - 24 Hour Rain, in

  • weeklyrainin - Weekly Rain, in

  • monthlyrainin - Monthly Rain, in

  • yearlyrainin - Yearly Rain, in

  • eventrainin - Event Rain, in

  • totalrainin - Total Rain, in (since last factory reset)

  • baromrelin - Relative Pressure, inHg

  • baromabsin - Absolute Pressure, inHg

  • uv - Ultra-Violet Radiation Index, integer on all devices EXCEPT WS-8478.

  • solarradiation - Solar Radiation, W/m^2

  • co2 - CO2 Meter, ppm

  • relay1...relay10 - Relay 1...10, 0 or 1

  • pm25 - PM2.5 Air Quality, Float, µg/m^3

  • pm25_24h - PM2.5 Air Quality 24 hour average, Float, µg/m^3

  • pm25_in - PM2.5 Air Quality, Indoor, Float, µg/m^3

  • pm25_in_24h - PM2.5 Air Quality 24 hour average, Indoor, Float, µg/m^3

  • pm25_in_aqin - PM2.5 Air Quality Sensor indoor, AQIN sensor, Float, µg/m^3

  • pm25_in_24h_aqin - PM2.5 Air Quality Sensor indoor, 24 hour running average, AQIN sensor, Float, µg/m^3

  • pm10_in_aqin - PM10 Air Quality Sensor, Float, µg/m^3

  • pm10_in_24h_aqin - PM10 Air Quality Sensor, 24 hour running average, Float, µg/m^3

  • co2_in_aqin - Indoor CO2 from AQIN, Int, ppm

  • co2_in_24h_aqin - Indoor CO2 from AQIN, 24 hour running average, Int, ppm

  • pm_in_temp_aqin - Indoor PM sensor temperature, Float, ºF

  • pm_in_humidity_aqin - Indoor PM sensor humidity, Int, %

  • aqi_pm25_aqin - AQI derived from PM25, AQIN sensor, Int

  • aqi_pm25_24h_aqin - AQI derived from PM25 Indoor, 24 hour running average, AQIN sensor, Int

  • aqi_pm10_aqin - AQI derived from PM10 Indoor, AQIN sensor, Int

  • aqi_pm10_24h_aqin - AQI derived from PM10 Indoor, 24 hour running average, AQIN sensor, Int

  • aqi_pm25 - AQI derived from PM25, Int

  • aqi_pm25_24h - AQI derived from PM25, 24 hour running average, Int

  • aqi_pm25_in - AQI derived from PM25 IN, Int

  • aqi_pm25_in_24h - AQI derived from PM25 IN, 24 hour running average, Int

  • lightning_day - Lightning strikes per day, int

  • lightning_hour - Lightning strikes per hour, int

  • lightning_time - Last strike time, Datetime

  • lightning_distance - Distance of last lightning strike, Float, miles

  • tz - IANA Time Zone, String

  • dateutc - Datetime, int (milliseconds from 01-01-1970, rounded down to nearest minute on server)

  • Server calculated fields:

    • lastRain - Last time hourlyrainin > 0, date (calculated on server)
    • dewPoint - Dew Point, ºF (calculated on server)
    • feelsLike - if < 50ºF => Wind Chill, if > 68ºF => Heat Index (calculated on server)
    • date - Human Readable Date, string (converted on server from dateutc)
    • feelsLike1...feelsLike10 - feelsLike for sensors
    • dewPoint1...dewPoint10 - dewPoint for sensors
    • feelsLikein - Indoor Feels Like
    • dewPointin = Indoor dew Point
Link to comment

Here is a more up to date list from the homeassistant sources:

https://github.com/home-assistant/core/blob/dev/homeassistant/components/ambient_station/sensor.py

TYPE_24HOURRAININ = "24hourrainin"
TYPE_AQI_PM25 = "aqi_pm25"
TYPE_AQI_PM25_24H = "aqi_pm25_24h"
TYPE_AQI_PM25_IN = "aqi_pm25_in"
TYPE_AQI_PM25_IN_24H = "aqi_pm25_in_24h"
TYPE_BAROMABSIN = "baromabsin"
TYPE_BAROMRELIN = "baromrelin"
TYPE_CO2 = "co2"
TYPE_DAILYRAININ = "dailyrainin"
TYPE_DEWPOINT = "dewPoint"
TYPE_EVENTRAININ = "eventrainin"
TYPE_FEELSLIKE = "feelsLike"
TYPE_HOURLYRAININ = "hourlyrainin"
TYPE_HUMIDITY = "humidity"
TYPE_HUMIDITY1 = "humidity1"
TYPE_HUMIDITY10 = "humidity10"
TYPE_HUMIDITY2 = "humidity2"
TYPE_HUMIDITY3 = "humidity3"
TYPE_HUMIDITY4 = "humidity4"
TYPE_HUMIDITY5 = "humidity5"
TYPE_HUMIDITY6 = "humidity6"
TYPE_HUMIDITY7 = "humidity7"
TYPE_HUMIDITY8 = "humidity8"
TYPE_HUMIDITY9 = "humidity9"
TYPE_HUMIDITYIN = "humidityin"
TYPE_LASTRAIN = "lastRain"
TYPE_LIGHTNING_PER_DAY = "lightning_day"
TYPE_LIGHTNING_PER_HOUR = "lightning_hour"
TYPE_MAXDAILYGUST = "maxdailygust"
TYPE_MONTHLYRAININ = "monthlyrainin"
TYPE_PM25 = "pm25"
TYPE_PM25_24H = "pm25_24h"
TYPE_PM25_IN = "pm25_in"
TYPE_PM25_IN_24H = "pm25_in_24h"
TYPE_SOILHUM1 = "soilhum1"
TYPE_SOILHUM10 = "soilhum10"
TYPE_SOILHUM2 = "soilhum2"
TYPE_SOILHUM3 = "soilhum3"
TYPE_SOILHUM4 = "soilhum4"
TYPE_SOILHUM5 = "soilhum5"
TYPE_SOILHUM6 = "soilhum6"
TYPE_SOILHUM7 = "soilhum7"
TYPE_SOILHUM8 = "soilhum8"
TYPE_SOILHUM9 = "soilhum9"
TYPE_SOILTEMP1F = "soiltemp1f"
TYPE_SOILTEMP10F = "soiltemp10f"
TYPE_SOILTEMP2F = "soiltemp2f"
TYPE_SOILTEMP3F = "soiltemp3f"
TYPE_SOILTEMP4F = "soiltemp4f"
TYPE_SOILTEMP5F = "soiltemp5f"
TYPE_SOILTEMP6F = "soiltemp6f"
TYPE_SOILTEMP7F = "soiltemp7f"
TYPE_SOILTEMP8F = "soiltemp8f"
TYPE_SOILTEMP9F = "soiltemp9f"
TYPE_TEMP10F = "temp10f"
TYPE_TEMP1F = "temp1f"
TYPE_TEMP2F = "temp2f"
TYPE_TEMP3F = "temp3f"
TYPE_TEMP4F = "temp4f"
TYPE_TEMP5F = "temp5f"
TYPE_TEMP6F = "temp6f"
TYPE_TEMP7F = "temp7f"
TYPE_TEMP8F = "temp8f"
TYPE_TEMP9F = "temp9f"
TYPE_TEMPF = "tempf"
TYPE_TEMPINF = "tempinf"
TYPE_TOTALRAININ = "totalrainin"
TYPE_UV = "uv"
TYPE_WEEKLYRAININ = "weeklyrainin"
TYPE_WINDDIR = "winddir"
TYPE_WINDDIR_AVG10M = "winddir_avg10m"
TYPE_WINDDIR_AVG2M = "winddir_avg2m"
TYPE_WINDGUSTDIR = "windgustdir"
TYPE_WINDGUSTMPH = "windgustmph"
TYPE_WINDSPDMPH_AVG10M = "windspdmph_avg10m"
TYPE_WINDSPDMPH_AVG2M = "windspdmph_avg2m"
TYPE_WINDSPEEDMPH = "windspeedmph"
TYPE_YEARLYRAININ = "yearlyrainin"

Edited by mitchmitchell
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...