-
Posts
2000 -
Joined
-
Last visited
Everything posted by Javi
-
Hi @bmercier, The credentials are valid and the Socket is working however REST commands are failing with the 423 error. This can be replicated in the (Chrome) browser also. https://my.isy.io/isy/XXXXXX:443/rest/nodes/22 89 3A 1/cmd/DOF Where XXXXX is URL to ISY Returns "Requested ISY not found in the user's domain"
-
@Michel Kohanim I have a report of the Portal not accepting HTTP GET Rest requests and have verified I can also not make the requests Error Code: 423 Response: Requested ISY not found in the user's domain
-
All is good here also. Although it would be nice to know what causes this error as this is the second day in the last month where I have encountered this error code.
-
Ok not just me. I have had this error all day but it has not resolved. Rest working, but socket returns the following Code 404 Error contacting sub.server:ETIMEOUT @Michel Kohanim
-
How are you connecting to the ISY? I am having errors with the portal socket connect today. Came here to see if it is just me
-
I did something similar but used a dimmer switch as the countdown timer, this also incorporated a humidity sensor. Documented here: https://voiceforiot.wordpress.com/2018/12/22/automation-of-bathroom-fan-for-humidity-and-odor/
-
Thanks guys, I was able to change the user of the dir to polyglot from root which allowed the node server to run. I am still having a few issues, but the NS is running which should allow me to locate any other problems. One other question: Is it safe to delete the directories in the polyglot/nodeserver for a NS which I am not using?
-
Are there detailed instructions on installing a node server from a git repo via SSH to the Polisy? I have cloned a fork of the Notification NS to /var/polyglot/nodeservers and have run install.sh. The Node server appears in Register New Node Server and can be added but will never start. Log 2020-3-1 23:58:23 [polyglot] info: Notification(3): Attempting to install Notification NodeServer into ISY. 2020-3-1 23:58:23 [polyglot] info: Notification(3): Installed into ISY sucessfully. Profile uploaded, restart Admin console. 2020-3-1 23:58:23 [polyglot] info: Registered new local NodeServer: Notification(3) 2020-3-1 23:58:23 [polyglot] info: Waiting 10 seconds before starting Notification for the first time. 2020-3-1 23:58:33 [polyglot] info: NS: Starting Local NodeServer Notification profile number 3 :: Version 0.1.8 2020-3-1 23:58:35 [polyglot] error: NSChild STDERR: Notification: Traceback (most recent call last): File "./notification-poly.py", line 6, in <module> import polyinterface File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/__init__.py", line 1, in <module> from .polyinterface import Interface, Node, Controller, LOGGER, unload_interface, get_network_interface File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 83, in <module> LOGGER = setup_log() File "/var/polyglot/.local/lib/python3.7/site-packages/polyinterface/polyinterface.py", line 59, in setup_log os.makedirs('./logs') File "/usr/local/lib/python3.7/os.py", line 221, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: './logs' 2020-3-1 23:58:35 [polyglot] info: Notification(3): NodeServer Disconnected.
-
Just thought I would mention that you also have access to Global Caché's Control Tower Database which has ir codes for many devices. If i remember correctly you are only allowed 5 downloads per day (a download is a single ir code or a whole set, so be sure to select he whole set). If you do decide to go with the Global Caché's I recommend you do not get the WiFi versions as they are difficult to connect ( can provide links to setup if requested). Global Caché's also provides Windows (not sure about ios from memory) software to test/create/learn ir codes from the iTach. If anyone is interested I created a python script a couple of years ago to parse the email sent from the Control Tower Database so all ir codes can be saved to a .csv file. Link https://github.com/JavierRefuerzo/Global-Cache-Control-Tower-Email-Parser
-
I have a few Insteon Open Close and motion sensors but have converted most of the main entries to zwave. As I convert more sensors to zwave the insteon sensors are being placed on closet doors to trigger lights. My ISY (not the PLM), all networking equipment, and CCTV are on a UPS. I tried to document most of the features but I may have missed some things. The chime feature which can use tts to speak when a door opens may help you with the chimes you mentioned in the first post. It will also prevent you from arming if a sensor such as a door/window is violated (this can be disabled for motion sensors) and show you which sensor is violated. Let me know if you have any questions, Javier
-
I am using a very old Nexus 7 which would not work for surfing the web anymore because of speed and security issues. Aside from turning off by itself a few times a year it is solid. I needed a keypad also for my Mother in law and neighbors whom have access to my home. The app should work with any android phone or tablet with android 19 (released 2013) or above . I have tried it on a $30 Amazon fire tablet (with Google Play Services installed) as well and it works but the resolution is horrible. Once the app is out of testing I could add it to the Amazon App Store As well. I still have a lot of work to do on the app but it has been functional for over a year now with no issues (at least for me). The app is in open testing on Google Play and there appear to be a few other installs aside from mine but I have not received any feedback. One of the reasons I started making the Go2ISY Android App is to get a greater understanding of the ISY so I could make the IoT Security Panel App better. Once I am at a good place with Go2ISY I will be updating the IoT Security Panel to have many of the same features such as better Icons and UI.
-
I have done something similar. Looked everywhere for a keypad that would work (even direct from China) but could not find something reliable. You can see my solution here https://iotsecuritypanel.wordpress.com/setup/ and here: https://forum.universal-devices.com/topic/25580-new-app-iot-security-panel/ I tried Insteon Keypad links but it was too much trouble with too much inconsistency. I'd be happy to go into detail if requested. As for others comments: This is a trend with most IOT devices in the home. Let's try to make this better for the people whom decide to go this route. This may be a better solution than no monitoring.
-
Thanks Michel, Is there an updated 1_fam also?
-
Hi, I am looking at [id]_fam.xml files and ISY-WS-SDK and ISY-WS-SDK-Z-Wave for both versions 4.4.6 and 5.0.4. It appears that the [id]_fam.xml files have not been updated to reflect current devices as the documents do not match ISY-WS-SDK-Z-Wave section 7.3. Also I have an Insteon device which for which a nodeSubCategory is not listed. If I am reading the docs correctly The insteon Device <type> has the following format: "device category.device subcategory.version.reserved" So, <nodeCategory id="0" name="Controllers" >, but nodeSubCategory id=26 is not listed in 1_fam.xml. It appears there should be a few devices between the last id=18 and 26. If this is true where could I find this information? <node flag="0"> <address>3E EC D2 8</address> <name>mini - G</name> <parent type="3">57752</parent> <type>0.26.57.0</type> <enabled>true</enabled> <deviceClass>0</deviceClass> <wattage>0</wattage> <dcPeriod>0</dcPeriod> <startDelay>0</startDelay> <endDelay>0</endDelay> <pnode>3E EC D2 1</pnode> <ELK_ID>P11</ELK_ID> <property id="ST" value="0" formatted="0" uom="%/on/off"/> </node> Also I have the following Z-Wave device <node flag="128"> <address>ZW005_1</address> <name>Front Door Battery Level</name> <family>4</family> <parent type="3">19023</parent> <type>4.7.1.0</type> <enabled>true</enabled> <deviceClass>0</deviceClass> <wattage>0</wattage> <dcPeriod>0</dcPeriod> <startDelay>0</startDelay> <endDelay>0</endDelay> <pnode>ZW005_1</pnode> <sgid>1</sgid> <devtype> <gen>4.7.1</gen> <mfg>600.3.130</mfg> <cat>185</cat> </devtype> <ELK_ID>D12</ELK_ID> </node> I was able to find the <cat> in the ISY-WS-SDK-Z-Wave but I think UD should update 4_fam.xml doc to reflect current values to help others. 184 = Barrier (this is the last item in 4_fam.xml in both 4.4.6 and 5.0.4) 185 = Notification Sensor (this is the last item in ISY-WS-SDK-Z-Wave 7.3 in 4.4.6) 186 = Color Switch (this is the last item in ISY-WS-SDK-Z-Wave 7.3 in 5.0.4) Thanks, Javier
-
I have not updated to 5.xx, and they are available. Are programs available? Also I purchased the Network Module many years ago this may be a requirement for the Portal. Maybe ask about A/V availability in the part of the forum dedicated to the portal as my experience is limited.
-
Portal>Select Tool>Connectivity> Amazon Echo>Add>A/V (in the list next to "Add") I am assuming the Alexa app lets you group similar types and assume Harmony is also of type A/V. Although it looks like "watch" is not a supported action, so "turn on" would have to be used. If my assumptions about Alexa groups are not correct IFTTT or Stringify would be the an option which will not require additional hardware or software upgrades. Although your phrase may have to change to "Alexa trigger"... "movie time".
-
There are currently many limitations with regards to trigger words, device names, action words and chaining for both the Echo and Google Home. I developed and use an Android app which intercepts voice commands to correct some of these limitations. So I have very little recent experience with the Echo. Also the Harmony has limitations for direct ISY integration. Anyway, Have you tried making a program in the ISY which triggers the desired Scene then assigning the program in the portal as A/V and grouping them with the Harmony Actions (or whatever they call them) in the Alexa App? Although this may not support your action word "watch". Look back to paulbates comment for direct Harmony ISY integration. If direct a node server is not for you try IFTTT. IFTTT has Harmony integration and can trigger your ISY via the Portal from Web Hooks. Also I think an ISY network resource may be able to trigger and IFTTT recipe. This may preserve your desired phrase with the action word "watch". There are many other options....which most likely outnumber minutes in a day ?
-
I don't use an Echo anymore and rolled my own voice commands for the Google Home so the following is just from memories a few years old. I think you need Groups and not Scenes. If I remember correctly you can set up groups of devices in the Alexa app.
-
Note that this is not always standard so if it doesn't work reverse ground and ir
-
I have sent IR signals to a xantech connecting block (12v) with an iTach (9v) and USB UIRT (5v) the wiring will be the same. As long as the cable run from the source to the connecting block is not too far (depends on souce, but usually no greater than 50 feet) then only connect IR IN and GND. If the source is too far or lacks sufficient power for the cable run add a powered xantech CB12 (or other powered connecting block) close to the source, the CB12 can be powered from the cable run between it and a powered connecting block.
-
Thanks Michel! I spent 3 hours trying to get a connection which turned out to be on one line of code that was adding a new line char to the encoded username and password that the ISY accepted but the Portal did not. There are not many great examples for Java connections to the portal. So hopefully the code below will save the next person a few hours. package com.voiceforiot.iotsecuritypanel.Services; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.support.annotation.Nullable; import android.util.Base64; import android.util.Log; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; public class SSLSoapSocketService extends Service { private String LOG_TAG = SSLSoapSocketService.class.getSimpleName(); private Thread backgroundThread; private Runnable attemptSocketConnection = new Runnable() { @Override public void run() { String usernamePassword = "myEmalAddressUsedForPortal@gmail.com" + ":" + "myPortalPassword"; String base64UsernamePassword; try { byte[] usernamePasswordByte = usernamePassword.getBytes("UTF-8"); //NO_WRAP NEEDED AS DEFAULT APPENDS NEW LINE CHAR base64UsernamePassword = Base64.encodeToString(usernamePasswordByte, Base64.NO_WRAP); Log.v(LOG_TAG, "base64 username is: " + base64UsernamePassword); } catch (UnsupportedEncodingException e) { Log.v(LOG_TAG, "Error: " + e); return; } URL url = null; try { //get this from my.isy.io, click on Select Tools | ISY Information and then copy/paste the URL for your ISY (not the Admin Console). url = new URL("https://my.isy.io/isy/someVeryLongStringHere"); } catch (MalformedURLException e) { Log.v(LOG_TAG, "MalformedURLException: " + e); } String urlString = url.toString(); String host = url.getHost(); String body = "<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>"; String writeString = "POST /services HTTP/1.1\n" + "Host: " + urlString +"\n" + "Content-Type: text/xml; charset=utf-8\n" + "Authorization: " + "Basic " + base64UsernamePassword + "\n" + "Content-Length: " + (body.length()) + "\n" + "SOAPAction: urn:udi-com:device:X_Insteon_Lighting_Service:1#Subscribe" + "\r\n" + "\r\n" + body + "\r\n"; Log.v(LOG_TAG,"writeString\n" + writeString); try{ SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault(); SSLSocket socket = (SSLSocket)factory.createSocket(host, 443); socket.startHandshake(); PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream()))); out.print(writeString); out.print(""); out.flush(); //check if any errors exist if (out.checkError()){ Log.v(LOG_TAG, "SSLSocketClient: java.io.PrintWriter error"); } //Read BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null){ Log.v(LOG_TAG, inputLine); } Log.v(LOG_TAG, "Closing Socket"); in.close(); out.close(); socket.close(); }catch (UnknownHostException e){ Log.v(LOG_TAG, "UnknownHostException: " + e); }catch (IOException e){ Log.v(LOG_TAG, "IOException: " + e); } } }; @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null) { //TODO: need to check if service is already started before re-attemptSocketConnection Log.v(LOG_TAG, "onStartCommandStarted"); this.backgroundThread = new Thread(attemptSocketConnection); this.backgroundThread.start(); return super.onStartCommand(intent, flags, startId); } return super.onStartCommand(intent, flags, startId); } }
-
Url URL("https://my.isy.io"); Port 443
-
Does the ISY Portal require headers different from the ISY for event subscription? Is there Portal subscription documentation which may assist me? I can get SOAP subscription to work on local network but I am having problems connecting to the Portal. The Java Thread below woks with my local network. I have commented out ("//" for java) the lines changed for connection to the Portal. IF (username:password && URL && Port) are changed I get no response from the Portal. IF (username:password && URL) are changed and port left at 80 than I get the following Lines: LineBuffer: HTTP/1.1 400 BAD_REQUEST LineBuffer: Content-Length: 0 LineBuffer: Connection: Close Java Thread: @Override public void run() { Log.v(LOG_TAG, "Runnable Started"); String usernamePassword = "localUserName" + ":" + "localPassword"; //String usernamePassword = "myEmailAddress@gmail.com" + ":" + "myPortalPassword"; String base64UsernamePassword; try { byte[] usernamePasswordByte = usernamePassword.getBytes("UTF-8"); base64UsernamePassword = Base64.encodeToString(usernamePasswordByte, Base64.DEFAULT); Log.v(LOG_TAG, "base64 username is: " + base64UsernamePassword); } catch (UnsupportedEncodingException e) { Log.v(LOG_TAG, "Error: " + e); return; } try { URL url = new URL("http://192.168.5.2"); //URL url = new URL("https://my.isy.io"); String host = url.getHost(); int port = 80; //int port = 443; Socket socket = new Socket(); socket.connect(new InetSocketAddress(host, port)); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(socket.getOutputStream()); InputStream inputStream = socket.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String body = "<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>"; outputStreamWriter.write("POST /services HTTP/1.1\n" + "Content-Type: text/xml; charset=utf-8\n" + "Authorization: " + "Basic " + base64UsernamePassword + "\n" + "Content-Length: " + (body.length()) + "\n" + "SOAPAction: urn:udi-com:device:X_Insteon_Lighting_Service:1#Subscribe" + "\r\n" + "\r\n" + body); outputStreamWriter.flush(); StringBuffer headerBuffer = new StringBuffer(); StringBuilder stringBuilder = new StringBuilder(); String messageFromServer; while ((messageFromServer = bufferedReader.readLine()) != null) { //Log each line Log.v(LOG_TAG, "LineBuffer: " + messageFromServer); } headerBuffer.setLength(0); } catch (IOException e) { Log.v(LOG_TAG, "IOException is: " + e); } //TODO: Stop Android Service. This is only a test. Service stopSelf() may not be called stopSelf(); } <Edit> I just noticed I was looking at 2 versions of documentation will try again tomorrow ISY-WS-SDK SUBSCRIBE /eventing HTTP/1.1 Host: 192.168.0.208:80 Content-Length: 129 Content-Type: text/xml; charset="utf-8" Authorization: Basic YWRtaW46YWRtaW4= CALLBACK:<REUSE_SOCKET> NT:upnp:event TIMEOUT:Second-infinite SOAPACTION:"urn:udi-com:service:X_Insteon_Lighting_Service:1#Subscribe" <s:Envelope><s:Body><u:Subscribe xmlns:u="urn:udicom: service:X_Insteon_Lighting_Service:1"></u:Subscribe></s:Body></s:Envel ope> ISY Developer's Cookbook (Text not enabled to copy) Search for "3. Subscribe" </Edit>
-
Thanks Michel, I will look into soap for portal integration