oceanman93
Members-
Posts
58 -
Joined
-
Last visited
oceanman93's Achievements
New (2/6)
1
Reputation
-
Today with some help (thanks Network Magician!) I was able to get the WeMo emulator (fauxmo) running on RPi to work directly with Echo and control my ISY devices. I don't know what limitations or gotchas are as I have only had this working for a couple of hours but wanted to share my joy. https://github.com/makermusings/fauxmo github.com/makermusings/fauxmo/archive/master.zip Using the fauxmo python script on a RPi, I just added some of my well known REST commands and now I can control my ISY devices directly through the Echo, no Skills, no Clouds (except for Amazon access by Echo), no subscriptions. I'm almost back to where I was with SiriProxy! I know this has the user/pw in clear but its on my own local network. I also use customized http port 5052 so use whatever your configuration requires. The ONLY changes I needed to make to the fauxmo python script were adding my devices. Here is a quick sample of some lights and a water valve controlled via I/O link: FAUXMOS = [ ['living room', rest_api_handler('http://user:passwd@192.168.15.152:5052/rest/nodes/17 EA 59 1/cmd/DFON', 'http://user:passwd@192.168.15.152:5052/rest/nodes/17 EA 59 1/cmd/DFOF')], ['dining room', rest_api_handler('http://user:passwd@192.168.15.152:5052/rest/nodes/16 CE AF 1/cmd/DFON', 'http://user:passwd@192.168.15.152:5052/rest/nodes/16 CE AF 1/cmd/DFOF')], ['kitchen', rest_api_handler('http://user:passwd@192.168.15.152:5052/rest/nodes/1F 1E 32 1/cmd/DFON', 'http://user:passwd@192.168.15.152:5052/rest/nodes/1F 1E 32 1/cmd/DFOF')], ['pub table', rest_api_handler('http://user:passwd@192.168.15.152:5052/rest/nodes/1F 4B B9 1/cmd/DFON', 'http://user:passwd@192.168.15.152:5052/rest/nodes/1F 4B B9 1/cmd/DFOF')], ['kitchen sink', rest_api_handler('http://user:passwd@192.168.15.152:5052/rest/nodes/30 E1 28 2/cmd/DFOF', 'http://user:passwd@192.168.15.152:5052/rest/nodes/30 E1 28 2/cmd/DFON')], ] Here's the entire process on the RPi: # load up raspian-lite or any other version # enable ssh, login, etc. raspi-config # edit /etc/network/interfaces for a static ip address auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.15.254 netmask 255.255.255.0 gateway 192.168.15.1 # add the following the following python library apt-get install python-requests # edit the fauxmo.py program - configure rest interfaces at bottom # edit /etc/rc.local to kick off fauxmo on boot - add: /home/pi/fauxmo.py & # once it's running, tell alexa: "alexa, discover devices" Then you can "turn on" or "turn off" devices by name through "Alexa".
-
- 1
-
Leak Sensors - A (Suggested) Complete Program Package
oceanman93 replied to belias's topic in ISY994
Thanks! That did the trick. Now without having a separate notification for each Leak Detector, I can see the status of all of them in one notification A Water Leak Detector has missed a daily heartbeat as of ${sys.date} at ${sys.time} ${sys.node.21 78 1F 4.name}: ${sys.node.21 78 1F 4.ST} ${sys.node.21 77 33 4.name}: ${sys.node.21 77 33 4.ST} ${sys.node.25 B7 F9 4.name}: ${sys.node.25 B7 F9 4.ST} ${sys.node.25 B4 3 4.name}: ${sys.node.25 B4 3 4.ST} ${sys.node.25 B2 1C 4.name}: ${sys.node.25 B2 1C 4.ST} ${sys.node.25 B4 AA 4.name}: ${sys.node.25 B4 AA 4.ST} ${sys.node.23 33 54 4.name}: ${sys.node.23 33 54 4.ST} ${sys.node.23 32 88 4.name}: ${sys.node.23 32 88 4.ST} ${sys.node.28 6 A4 4.name}: ${sys.node.28 6 A4 4.ST} Assuming I didn't run this manually, one of the nodes would be status OFF. A Water Leak Detector has missed a daily heartbeat as of 2015/01/05 at 18:22:54 Leak 1 Washer-HB: On Leak 2 Hot Water-HB: On Leak 3 HVAC Attic-HB: On Leak 4 Crawl-HB: On Leak 5 Master Bath-HB: On Leak 6 Kitchen-HB: On Leak 7 1st Bath-HB: On Leak 8 2nd Guest Bath-HB: On Leak 9 Garage-HB: On -
Leak Sensors - A (Suggested) Complete Program Package
oceanman93 replied to belias's topic in ISY994
I tried this and I can get WET status (using a value of 2) or DRY status (using a value of 1). I CANNOT get a HEARTBEAT status (I tried using a 3 but it doesn't return anything other than the node address in the notification). Any ideas? My notification has the following: A Water Leak Detector has missed a daily heartbeat as of ${sys.date} at ${sys.time} ${sys.node.21 78 1F 1.name}: ${sys.node.21 78 1F 1.ST} ${sys.node.21 78 1F 2.name}: ${sys.node.21 78 1F 2.ST} ${sys.node.21 78 1F 3.name}: ${sys.node.21 78 1F 3.ST} And the notification received is the following: A Water Leak Detector has missed a daily heartbeat as of 2015/01/05 at 10:50:46 Leak 1 Washer-Dry: On Leak 1 Washer-Wet: Off node[21 78 1F 3]: node[21 78 1F 3] I like the idea that I can have a single notification of all leak detectors and was hoping to get the Heartbeat status if one of them is missed by a single program. I tried the DRY version for all nine of my leak detectors and can get the notification for all of them in one message. Leak 1 Washer-Dry: On Leak 2 Hot Water-Dry: On Leak 3 HVAC Attic-Dry: On Leak 4 Crawl-Dry: On Leak 5 Master Bath-Dry: On Leak 6 Kitchen-Dry: On Leak 7 1st Bath-Dry: On Leak 8 2nd Guest Bath-Dry: On Leak 9 Garage-Dry: On -
I don't know what I would do without this forum. I finally got around to swapping out two old ICON switches and couldn't figure out if I could simply REPLACE them. Having everything in folders I forgot that they needed to be moved. I moved them out of folders and two clicks later, all done. Thanks for all of the great info here. It is so invaluable.
-
To my surprise, both of my Morning door locks stopped working completely. Neither would even accept codes to unlock manually. This happened to two units being controlled by one MorningLinc at the same time so my first inclination was the MorningLinc controller. I unplugged it after noticing that the LED was out and that it did not seem to respond to anything. After unplugging the module, both door locks worked again with their manual codes. This was really bad as I was almost locked out of my home since both entry doors have keypads and I had another issue where my PLM went bonkers at the same time so I didn't have any control of my garage doors except for the old fashion RF remote. Of course all of this occurred when I was not even home away on vacation and a friend went to my house and had a hard time getting in. This lock issue is particularly troubling as I wouldn't have expected something that is battery operated to be locked out by a bad/defective MorningLinc controller. I'm not sure I will replace it since I don't want a repeat of this issue. I may look for another door lock solution. I just wanted to let everyone know of the potential here. Now on to figure out all of my other troubles that the PLM caused.
-
I grabbed a quick shot of the latest P-touch label which I think looks awesome. I put boxes around them and made one label per row. This is a 4 button switch so any off turns off the fan scene.
-
I have a P-touch printer that hooks up to my Mac (or PC). I can customize labels using images and I create a label with a small picture (fan or light) with speeds or on/off. I can print the text vertically in small font to fit more information on a button but I found a large "H", "M", or "L" for speeds is easier to see. I am working on customized images themselves depicting the function without words using different color tapes and various images. They are self laminating so they hold up quite well. The 3/8" tapes fit nicely on the remotelinc 2. The P-touch model I am using is the PT-2730 which also came with a P-touch editor for the Mac to make the custom labels and print right from the Mac. It works quite nicely. I'll have to take some pictures.
-
Michel, In trying to figure out what is going on, I looked at comparing the server functions on my iMac vs. the Mac mini. I noticed that the iMac now redirects all http requests to https by default with a self signed certificate. This must have been updated with one of the many MacOSX updates. I was able to fix this by turning OFF SSL certificates on my home server (I'm comfortable with that). When using Safari directly, one gets prompted to accept a certificate. I guess with all of the hacking these days, things are becoming more secure. Thanks for pointing me in the right direction. Your prompt response is sincerely appreciated. Joe
-
It is an iMac that I do a lot of scripting on and is currently offering web services on the local LAN. I use the exact same Network resource to a Mac mini with the same setup and it is currently working fine. This just starting happening within the last two months. I haven't paid much attention to it and am now focusing on the issue at hand.
-
I am having an issue with Network Resources. These all used to work fine. I get a TCP client resource moved error. This is true for all Network Resources that access a specific IP address. All other Network Resources work fine. I tested the TCP command locally on a mac and it works fine. Any ideas? ISY99i running 3.3.8. ISYerror.tiff
-
I just recently noticed that my programs that utilize Network Resources are executing Network Resources that have somehow been shifted by one ID The programs show the desired Network Resource but when actually run use the wrong resource. A program that previously was defined to use a Network Resource in a program whose ID was 72 is now executing Network Resource ID 73. The Network Resources test fine. It took me a while to figure this out since such oddball things were occurring but I was finally able to see that the Network Resource being called was the next one defined. Has anyone ever experienced such a phenomenon? I am currently running v3.3.3 ISY 99i/IR Pro with Networking Module and I have been using these resources forever. I'm thinking with all of the power hits from Super Storm Sandy somehow things got corrupted. I have not tried to do a restore or anything else at this point.
-
... would you consider sharing the doc file? A couple of points: - In your post you have I think that the correct syntax should be http://192.168.15.152:5052/rest/vars/definitions/2 - In the section where you show examples like this: I believe that there should be a space between the "8" and the "?" in . I raise this only because when parsing this if one is using the spaces as the delimiter there is one missing. This post has really helped my understanding... thanks again. Sorry for the typo. I try so hard to copy and paste things as I do them instead of retyping but sometimes in my haste I make a typo. So yes, the command should use "vars" instead of "var". I reran the scene command and the returned text is the following straight copied from my terminal window, I don't see a space: <?xml version="1.0" encoding="UTF-8"?>200 My compiled document is merely all of my executed commands so I can refer back to my own syntax and things learned. That's what I shared, a bunch of my examples because it took me so long to figure out all of the details I thought that there's got to be someone else out there with my same pain. I'll go through it and put a few more examples if there are any that are different from what I've already posted. Glad it all helped you out.
-
Different Light Bulb Types and Impact on INSTEON
oceanman93 replied to Michel Kohanim's topic in Insteon
They are dimmable They actually dim quite low and look similar to incandescent. I might try a dimmable ToggleLinc to see if there is any difference since I have an extra one lying around. -
Different Light Bulb Types and Impact on INSTEON
oceanman93 replied to Michel Kohanim's topic in Insteon
I have LED floods installed in my kitchen and when dimmed even at 50%, I see the insteon traffic flicker (sometimes annoying but sometimes nice to see that things are working!) When at full brightness and they ARE bright, I don't see any flicker or insteon traffic impacts. I wonder if there are any plans to create insteon devices that filter insteon traffic signals on the load side? I won't replace any more inside flood lights with LED lighting until this is addressed. I don't see any such flicker on incandescent flood lights, even at a low 10% brightness. -
I struggled some with the REST documentation. It would be really helpful to those who don't have a complete understanding if there were some complete examples. I know that there are a wide variety but this is what I had to do to understand all of the nuances of REST. I compiled my own "complete REST output" word doc which shows each REST command, the complete command that I used, the output for each and every syntax variety. Now I just go back and refer to that document when I can't remember something. It took me a little bit of time but time well spent. I hope this helps out others where I previously had struggled. Here are some examples. Note that I am using Mac OSX commands instead of a browser but the syntax is the same for the REST command piece. The unix "curl" command allows specifying user credentials using "-u" option; -u/--user , Specify the user name and password to use for server authentication. The "-s" option tells it to be silent with curl program output; -s/--silent, Silent or quiet mode. Don't show progress meter or error messages. Makes Curl mute. curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/nodes <-- RETURNS ALL NODES (QUITE A LONG LIST IN MY CASE) curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/status <-- RETURNS ALL NODES STATUS (AGAIN QUITE LONG) curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/nodes/scenes <-- RETURNS ALL SCENES (THIS IS IMPORTANT TO FIND OUT SCENE NUMBER NEEDED TO ADDRESS A SINGLE SCENE) curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/var/definitions/2 <-- RETURNS ALL STATE VARIABLE DEFINITIONS (USE 1 AT THE END FOR INTEGER VARIABLES curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/programs <-- RETURNS ALL PROGRAMS AND DISPLAYS THE PROGRAM ID USED IN OTHER COMMANDS curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/config <-- RETURNS CONFIG OUTPUT curl -u myuser:mypassword -s http://192.168.15.152:5052/rest/networking/resources <-- RETURNS ALL NETWORKING RESOURCES The next hard part is trying to pick out the relevant info that you want (parsing the response) since a lot of information can be returned for a single command. It takes some understanding and in my case, lots of trial and error to isolate the exact characters I wanted. I'll run these statements manually until I have what I desire at which point I can then use this output in a script. Here are more commands that I use. To utilize a device, the device ID is used and the dots (.) are replace with %20 and appended with %20 and subID. In the case of the thermostat temperature, this is a one (1). These statements assign the thermostat temperature readings and set points to local variables in a shell script. The cut arguments zero in on the information that I want. The "ST" is for status, "CLISPH" is for heating set point. I HAD TO PUT A SPACE AFTER THE http COMMAND IN ORDER FOR IT NOT TO BE ABBREVIATED BY THIS FORUM, THE COMMAND DOES NOT HAVE A SPACE AFTER http IN ORDER TO WORK PROPERLY # get Thermostat temps/setpoints # firstthermtemp=`curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/11%20BE%2042%201/ST 2> /dev/null | cut -f6 -d' '| cut -c12-13` firstthermset=`curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/11%20BE%2042%201/CLISPH 2> /dev/null | cut -f6 -d' '| cut -c12-13` secondthermtemp=`curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/11%20B4%2069%201/ST 2> /dev/null | cut -f6 -d' '| cut -c12-13` secondthermset=`curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/11%20B4%2069%201/CLISPH 2> /dev/null | cut -f6 -d' '| cut -c12-13` # These statements assign these local variable values back into ISY variables (only if they have changed from previous values so as to not overwhelm ISY) to be used by other programs: # if [ "$firstthermtemp" -ne "$lastfirstthermtemp" ] then curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/set/2/15/$firstthermtemp 1> /dev/null echo "1st temp $firstthermtemp " #DISPLAY THE TEMP TO THE SCREEN, ALTERNATIVELY, MY UPDATED SCRIPT JUST ANNOUNCES IT! (kind of like the lotto commercial): say -v vicki "first floor temperature now $firstthermtemp " lastfirstthermtemp=$firstthermtemp fi if [ "$firstthermset" -ne "$lastfirstthermset" ] then curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/set/2/16/$firstthermset 1> /dev/null lastfirstthermset=$firstthermset echo "1st set $firstthermset " fi if [ "$secondthermtemp" -ne "$lastsecondthermtemp" ] then curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/set/2/17/$secondthermtemp 1> /dev/null lastsecondthermtemp=$secondthermtemp echo "2nd temp $secondthermtemp " fi if [ "$secondthermset" -ne "$lastsecondthermset" ] then curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/set/2/18/$secondthermset 1> /dev/null lastsecondthermset=$secondthermset echo "2nd set $secondthermset " fi These commands turn off /on the scene number 63065 which includes the Living Room Corner Lamp. As you can see, the response is received and displayed unless it is otherwise suppressed. I HAD TO PUT A SPACE AFTER THE http COMMAND IN ORDER FOR IT NOT TO BE ABBREVIATED BY THIS FORUM, THE COMMAND DOES NOT HAVE A SPACE AFTER http IN ORDER TO WORK PROPERLY $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/63065/cmd/DON <?xml version="1.0" encoding="UTF-8"?>200 $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/nodes/63065/cmd/DOF <?xml version="1.0" encoding="UTF-8"?>200 These commands return & run a program number 004C which is Flash corner lamp. Valid commands for programs are the following (from ISY doc): pgm-cmd: run|runThen|runElse|stop|enable|disable|enableRunAtStartup| disableRunAtStartup
'runIf' is supported as well, but 'run' should be used instead. $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/programs/004C <?xml version="1.0" encoding="UTF-8"?>Flash corner lamp2012/02/16 11:24:492012/02/16 11:24:52 $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/programs/004C/runThen <?xml version="1.0" encoding="UTF-8"?>200 To get a variable value, variable type (2 state) variable ID (number 16) $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/get/2/16 <?xml version="1.0" encoding="UTF-8"?>0020120213 14:58:59 $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/get/2/15 <-- MY ASSIGNED THERMOSTAT SETTING FROM ABOVE <?xml version="1.0" encoding="UTF-8"?>676720120216 11:13:37 $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/vars/get/2/2 <-- MY KEGERATOR TEMPERATURE <?xml version="1.0" encoding="UTF-8"?>373720120216 11:28:51 To get a network resource executed, ID=2 for GC_YAMAHA_ON (turn stereo on though Global Cache IR command) $ curl -u myuser:mypassword -s http ://192.168.15.152:5052/rest/networking/resources/2 <?xml version="1.0" encoding="UTF-8"?>200 to name a few. Good luck!