Friday at 08:28 PM5 days I can successfully subscribe to all events on my EISY but that is not optimal since I have 100+ nodes.I receive a huge dump (212 kB) of the status of every node when I first connect. I am using a SOAPAction subscribe query to X_Insteon_Lighting_Service like so:POST /services HTTP/1.1 Host: 192.168.0.212 Content-Type: text/xml; charset=utf-8 Authorization: Basic MyPassword== Content-Length: 192 SOAPAction: "urn:udi-com:service:X_Insteon_Lighting_Service:1#Subscribe" <s:Envelope><s:Body><u:Subscribe xmlns:u="urn:udi-com:service:X_Insteon_Lighting_Service:1"><reportURL>REUSE_SOCKET</reportURL><duration>infinite</duration></u:Subscribe></s:Body></s:Envelope> Is there some other EISY service name I can use to receive events from only one node? Is there some parameter I can pass to X_Insteon_Lighting_Service that limits events to a single node (like 3C 80 F 1)Note: I am not talking abou PolyGlot/Portal subscriptions. I intend to subscribe to and parse EISY event text on some local hardware running on the same LAN as the EISY.
Friday at 08:47 PM5 days In addition to the soap api there is the rest API.There you'll find:/rest/query/<node>queries the given nodeReturns: Success or Error statusEDIT: Scroll way down and there is a websockets section. Pretty sure you'd have to take all events as they came and filter on the handful you want, but you'd get just the updates coming from the ISY and opposed to getting all devices every time. Old school, I know but pre polyglot nodeservers like NODELINK made use of it and it can work well Edited Friday at 08:56 PM5 days by paulbates
Friday at 09:37 PM5 days Author 26 minutes ago, paulbates said:In addition to the soap api there is the rest API.There you'll find:/rest/query/<node>queries the given nodeReturns: Success or Error statusYes, my current Arduino software uses /rest/query/<node> but due to system loading issues, this isn't working reliably for me. Is the SOAP API documented somewhere? I tried doing a WSDL import query to get some basic documentation but was not successful. AI searches on Google indicate that the UD SOAP documentation is not up to date.I could not get a REST subscribe/WebSockets session to work. I reverse engineered UD Mobile and see that it is using SOAP to read/update its device screen in real-time. That method works OK for me, but it will be difficult to read the huge stream of data in an Arduino program. I am looking in to using streams and filtering out the node data I don't need.
Friday at 11:51 PM5 days 2 hours ago, skydvrz said:Yes, my current Arduino software uses /rest/query/<node> but due to system loading issues, this isn't working reliably for me.Is the SOAP API documented somewhere? I tried doing a WSDL import query to get some basic documentation but was not successful. AI searches on Google indicate that the UD SOAP documentation is not up to date.I could not get a REST subscribe/WebSockets session to work.I reverse engineered UD Mobile and see that it is using SOAP to read/update its device screen in real-time. That method works OK for me, but it will be difficult to read the huge stream of data in an Arduino program. I am looking in to using streams and filtering out the node data I don't need.rest/query queries the device, this is more resource intensive than a retained status lookup. Use /rest/status/address or rest/node/address instead.If you can subscribe then you just need to parse the events. Basically any <control> which does not start with "_" is a Device Property Status Event where the control is the Property ID.//<?xml version="1.0" encoding="UTF-8"?> //<Event seqnum=\"113\" sid=\"uuid:90\"> // <control>ST</control> // <action uom=\"2\" prec=\"0\">1</action> // <node>n003_po_pushover</node> // <eventInfo> // </eventInfo> // <fmtAct>True</fmtAct> // <fmtName>Last Status</fmtName> //</Event>
Create an account or sign in to comment