mitchmitchell Posted June 1, 2023 Posted June 1, 2023 I have a new Eisy/PG3X installation and when I added the AmbientWeather node server, configured it with the API Key, I get the following parse error in the log and no devices populated in the IoX:
bpwwer Posted June 1, 2023 Posted June 1, 2023 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.
mitchmitchell Posted June 2, 2023 Author Posted June 2, 2023 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:
bpwwer Posted June 2, 2023 Posted June 2, 2023 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.
mitchmitchell Posted June 2, 2023 Author Posted June 2, 2023 Yes, I have. Did you see anything in the PM I sent that might point to where to investigate next? I can pull logs from the FreeBSD file system if you know which ones I should grab.
mitchmitchell Posted June 2, 2023 Author Posted June 2, 2023 It looks like the main and indoor sensors have updated now. Let me check again when I get home.
mitchmitchell Posted June 2, 2023 Author Posted June 2, 2023 Well this is interesting, I see values showing up on UD Mobile but not the admin console, even using the cloud console.
bpwwer Posted June 3, 2023 Posted June 3, 2023 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.
mitchmitchell Posted June 3, 2023 Author Posted June 3, 2023 I agree the display issue is not the node server. The parsing error seems to have gone away (that was reported in the node server logs so it was not console related). Would deleting the isy devices created by the node server and having it recreate them be worth trying?
bpwwer Posted June 3, 2023 Posted June 3, 2023 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.
mitchmitchell Posted June 3, 2023 Author Posted June 3, 2023 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=DIRECThttps://eisy.local:8443/WEB/iox.jarhttps://eisy.local:8443/WEB/ce.jarhttps://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
bpwwer Posted June 4, 2023 Posted June 4, 2023 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.
mitchmitchell Posted June 4, 2023 Author Posted June 4, 2023 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 ] }
bpwwer Posted June 4, 2023 Posted June 4, 2023 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.
mitchmitchell Posted June 4, 2023 Author Posted June 4, 2023 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.
mitchmitchell Posted June 4, 2023 Author Posted June 4, 2023 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
mitchmitchell Posted June 4, 2023 Author Posted June 4, 2023 I think the limit of 4 soil moisture sensors is out dated as they can support 8 I believe.
mitchmitchell Posted June 4, 2023 Author Posted June 4, 2023 (edited) 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 June 4, 2023 by mitchmitchell
mitchmitchell Posted June 5, 2023 Author Posted June 5, 2023 Bob I sent you a PM with a link to the log files -- too large to attach. Please let me know if you can access them or need any other information to diagnose. Thanks! Mitch
Recommended Posts