-
Latest Vera Ecobee Plugin:
rafale77/vera-ecobee rafale77/vera-ecobeeVera Plugin for ecobee Thermostat. Contribute to rafale77/vera-ecobee development by creating an account on GitHub.
-
-
-
I've got myself a nice Ecovacs Deebot 950, because one of the Roombas is getting really old (12 years and still going strong). It's my first one connected to WiFi, since the others are legacy. I've found a nice mqtt library and it's already pushing to my broker in real time, but I'm wondering if there's a generic device template and/or service, otherwise I'll start building one and I'll try to keep it as much generic as possible.
-
The plugin has been updated to ver 0.56 which improves the RF learning procedure. It also recognises some of the newer RM4 devices (thanks Bruce Lacey).
Existing uses just need to upload the "L_BroadLink_Mk2_1.lua" file.
RF learning has been improved but is never particularly reliable. You can invoke testing by executing this code in the Lua Test box:
local DeviceID = the_id_of_the_IR_child_device luup.call_action('urn:a-lurker-com:serviceId:IrTransmitter1', 'LearnRFCode', {}, DeviceID) return trueRunning the code illuminates the LED on the BroadLink device. If you do nothing at this point, the learning times out after about 24 seconds and the result is "No RF code was learnt".
While in the learning mode, tap the remote button to be learnt, every 2/3 of a second or so. If the LED goes out (typically after about say 5 seconds) some result was learnt.
The result can be found in the parent device by looking at the variable "LearntRFCode". However, it is far easier to look at the log file, which logs the process as it proceeds and also the result. You need to learn a few results to try and determine if the results are at all consistent.
-
Sharing what I believe is a great way to add support to devices that used to work but since existing plugin haven't been maintain by the original authors (or any other developer in the community) have stopped working as they've abandon or moved to other platform...
Homebridge has a large and very active community and I think this type of plugin will a good way to benefit from it.
It will bring any device that have been configured in homebridge into openluup.
Currently it support, thermostat (Nest and others), Switches (Specially MyQ), Dimmers, Switches, Motion Sensors, Door Lock (Open/close) Support to other type of device can easily be added.
Homebridge2Openluup
upload the files to /you_openluup_directory/files/ create a new device with D_Homebridge2openluup1.xml
Installation:Screen Shot 2021-03-14 at 12.55.29 PM.png
Set your hombredige IP, username, password to the deivce's attributesScreen Shot 2021-03-14 at 12.57.00 PM.png
Capture the uuid of the device you would like to bring from Homebridge into openluup by looking at your openluup logs when startingScreen Shot 2021-03-14 at 1.00.53 PM.png
based on the device type, set DeviceList VariableScreen Shot 2021-03-14 at 1.02.51 PM.png
T for thermostat
D for dimmers
S for switches
G for garage doors
L for Locks
A for motion sensorsand build a string device type are delimited by a ; (semicolong) and device's uui by a , (comma) like this:
T:homebridge_thermostat1_uuid,homebridge_thermostat2_uuid;D:homebridge_dimmer1_uuid,homebridge_dimmer2_uuid etcThis still in beta, would love to add async next and support to shades and other sensors.
-
I've made some mods to Futzle's upnp event proxy and placed it in the AltApp store (with her permission). ie it's here in GitHub.
Now it seems some people say it works with openLuup already. However the version released by Futzle required two things in order to function:
the file L_UPnPProxy1.lua was expected to be compressed, as it would be on a Vera eg: L_UPnPProxy1.lua.lzo
the hardware needs to be running OpenWrt; ie as per Vera does.
I modified the code to fix point 1) (see the script below) but I would like to see point 2) resolved, so a RasPi can be used. That is modify the script to allow a deamon to be run on a RasPi without fiddling around with say "/etc/rc.local".
So has any one got the proxy going on any hardware that is NOT using OpenWrt ? I'm unsure how to do it.
Basically this script and/or the script it includes needs to be modified or even merged to suit. You'll note that after the shebang, it requires the file "etc/rc.common" (reproduced further below). The latter appears to be some sort of template file that is overriden as required by the first script. It cites "$IPKG_INSTROOT", whatever that is. However it may be possible to make use of it somehow on a RasPi?
#!/bin/sh /etc/rc.common # Copyright (C) 2007 OpenWrt.org START=80 PID_FILE=/var/run/upnp-event-proxy.pid PROXY_DAEMON=/tmp/upnp-event-proxy.lua start() { if [ -f "$PID_FILE" ]; then # May already be running. PID=$(cat "$PID_FILE") if [ -d "/proc/$PID" ]; then COMMAND=$(readlink "/proc/$PID/exe") if [ "$COMMAND" = "/usr/bin/lua" ]; then echo "Daemon is already running" return 1 fi fi fi # openLuup: Look for the uncompressed proxy daemon Lua source. if [ -f /etc/cmh-ludl/L_UPnPProxyDaemon.lua ]; then PROXY_DAEMON_UC=/etc/cmh-ludl/L_UPnPProxyDaemon.lua elif [ -f /etc/cmh-ludl/files/L_UPnPProxyDaemon.lua ]; then PROXY_DAEMON_UC=/etc/cmh-ludl/files/L_UPnPProxyDaemon.lua # Vera 3: Else look for the compressed proxy daemon Lua source. elif [ -f /etc/cmh-ludl/L_UPnPProxyDaemon.lua.lzo ]; then PROXY_DAEMON_LZO=/etc/cmh-ludl/L_UPnPProxyDaemon.lua.lzo elif [ -f /etc/cmh-lu/L_UPnPProxyDaemon.lua.lzo ]; then PROXY_DAEMON_LZO=/etc/cmh-lu/L_UPnPProxyDaemon.lua.lzo fi if [ -n "$PROXY_DAEMON_UC" ]; then cp "$PROXY_DAEMON_UC" "$PROXY_DAEMON" elif [ -n "$PROXY_DAEMON_LZO" ]; then /usr/bin/pluto-lzo d "$PROXY_DAEMON_LZO" "$PROXY_DAEMON" fi # Close file descriptors. for fd in /proc/self/fd/*; do fd=${fd##*/} case $fd in 0|1|2) ;; *) eval "exec $fd<&-" esac done # Run daemon. /usr/bin/lua "$PROXY_DAEMON" </dev/null >/dev/null 2>&1 & echo "$!" > "$PID_FILE" } stop() { if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if [ -d "/proc/$PID" ]; then COMMAND=$(readlink "/proc/$PID/exe") if [ "$COMMAND" = "/usr/bin/lua" ]; then /bin/kill -KILL "$PID" && /bin/rm "$PID_FILE" return 0 fi fi fi echo "Daemon is not running" return 1 }And here is "etc/rc.common" as found in OpenWrt initscripts. Note the command actions it implements - in particular disable & enable, which set up Sxxy (start) & Kxxy (stop) files in the directory "etc/rc.d", which is not found in the RasPi directory structure:
#!/bin/sh # Copyright (C) 2006-2009 OpenWrt.org . $IPKG_INSTROOT/etc/functions.sh initscript=$1 action=${2:-help} shift 2 start() { return 0 } stop() { return 0 } reload() { return 1 } restart() { trap '' TERM stop "$@" start "$@" } boot() { start "$@" } shutdown() { stop } disable() { name="$(basename "${initscript}")" rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name } enable() { name="$(basename "${initscript}")" disable [ "$START" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" [ "$STOP" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" } enabled() { name="$(basename "${initscript}")" [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ] } depends() { return 0 } help() { cat <<EOF Syntax: $initscript [command] Available commands: start Start the service stop Stop the service restart Restart the service reload Reload configuration files (or restart if that fails) enable Enable service autostart disable Disable service autostart $EXTRA_HELP EOF } . "$initscript" ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}" list_contains ALL_COMMANDS "$action" || action=help [ "$action" = "reload" ] && action='eval reload "$@" || restart "$@" && :' $action "$@" -
This plugin was updated by @vosmont to run under openLuup (and possibly UI7.)
@DesT recently asked for a slight addition to its functionality, so I'm adding this thread to discuss the changes.
-
Not quite a plugin but just the addition of a barometer device to be used for various integrations (Domoticz or Home Assistant)
Intructions:
Drop the content of this zip file in a folder openLuup has access to (I put mine into the cmh-ludl/files to pretend these were downloaded from a vera)
then create a device and use D_BarometerSensor1.xml as the device file and I_GenericSensor1.xml for the execution file or anything else actually depending on what your integration is. -
I am looking at making openLuup to act as an MQTT client for a variety of applications. I may write a plugin for it myself based on either of these two libraries:
xHasKx/luamqtt xHasKx/luamqtt
luamqtt - Pure-lua MQTT v3.1.1 and v5.0 client. Contribute to xHasKx/luamqtt development by creating an account on GitHub.
Yongke/luamqttc Yongke/luamqttcA lua mqtt client which support MQTT version 3.1.1 - Yongke/luamqttc
Still have to learn the details of how it would work. If people have ideas, feel free to post here!
-
-
Well, I disappeared down a rabbit hole on a different mission and resurfaced with this monstrosity.
What does it do?
It translates button functions for various (certainly not all) IRP protocols to Pronto codes. These can then be sent by a plugin that sends Pronto Codes to IR transmitters - such as the BroadLink Plugin or the GC100 Plugin (or similar).
The IRP protocol "Device", "Subdevice" and "Function" numbers are stored in a json file as buttons for "virtual remotes".
So you could have say three physical IR transmitters and want to command different AV devices (ie TVs, AVR, Xmas tree, etc) in the vicinity of those various IR emitters.
The button codes are far less cumbersome than heaps of pronto codes. You can set up a virtual remote for each AV device in the json file. Each physical emitter can be assigned to any virtual remote. And away you go!
Well - you already have a pile of pronto codes already running just fine? However, as the plugin "manufacturers" pronto codes, you could also use it to scan/search for functions for any AV device you may have. GitHub has an example for Pioneer: SearchForButtonCodes.lua
Find "Device", "Subdevice" and "Function" codes:
Plugin details in:
Install via AltUI:
Version 0.51
Initial release.Version 0.52
Add RC6 format: includes Windows Media Center based items eg Intel NUCs, Xboxes, Kodi, etc -
So, Amazon recently released the ability to execute spoken commands.
dbochicchio/VeraAlexa: Alexa plug-in for Vera and openLuup. (github.com)
Using my plug-in, you could just do something like this:
luup.call_action("urn:bochicchio-com:serviceId:VeraAlexa1", "RunCommand", {Command="-e textcommand:'Alexa, I’m leaving' -d 'Bedroom'"}, 666)Or any spoken command that's not directly accesible via routines. Something like
"Play music everywhere"
"TV volume to 32"
"Pause TV"and much more 🙂
Give it a try!
-
As another one asked for it on the other forum, I finally created a new plug-in for Telegram notifications: https://github.com/dbochicchio/vera-Telegram/
You can:
send text messages send (still) images send videos (gif or mp4) send silent notificationsI remember @CatmanV2 was searching for something similar (maybe?).
I'm using it to send push notifications to me and my wife, using a group. I have my own code streaming my cameras and sending a video as gif based on certain events (ie motion sensors or door/entryways left open). While this part is not included into the plug-in, if you're able to get a video yourself (by pointing to a URL), you'd good to go. Still images from cams (or, let's say, your favorite weather map, or any video/gif/image on the Interner ot local) are supported as well.
100% compatible with bot Vera and openLuup (where it was developed, anyway).
Feel free to ask questions or suggest new features.
-
Currently there's no beginners guide to installing RFX plugin on OpenLuup without Vera that i could find, so i'd thought i'd make one.
This is made on Debian 10.6 (Buster).
First: Download the files. The thread on the Vera forum is the place to find the newest version (Currently 1.96), but i found it to have several issues in Openluup.
Auto create makes multiple instances of sensors, and I had a couple of "all sensors disappeared" instances!I use 1.41, which works perfectly as long as you can use Type1/Type2/ext/ext2 FW.
Download from this threadOnce you got the files into /cmh-ludl/ you can proceed to create the device in OpenLuup. In devices - click "Create".
2fd93a27-c760-49bd-b984-9443a905837e-image.png
Sometimes its nessecary to move the RFX..Png file to /cmh-ludl/icons/ to get the correct icon in OpenLuup.
Next is to get the RFX up and running, for that you need ser2net. Installation instructions
Ser2net needs to find the USB, and to fint the address, do this:
user@device:~$ cd /dev/serial/by-id/ user@device:/dev/serial/by-id$ ls usb-0658_0200-if00 usb-RFXCOM_RFXtrx433_A118TU8K-if00-port0 user@device:/dev/serial/by-id$this ID can be used in the /etc/ser2net.conf, at the end of the file:
# found in /usr/share/doc/ser2net/examples BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n 2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner ... 3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner 3485:raw:0:/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A118TU8K-if00-port0:38400 8DATABITS NONE 1STOPBITThe port can be whatever you want (almost), the default in the RFX plugin is 10000
Save and restart ser2net.Back in OpenLuup, go to the "Attributes" tab of the RFX Plugin,and ensure that the IP address is correct:
6391e20b-6f4c-4101-8633-6ee1e01fb905-image.png I'm using a local USB, but this might as well be on a different device on your network.Now, go to the "Variables", and insert the correct port number in "IPPort" variable.
If all goes well, the plugin should be good to go after a Luup Reload!
-
I just published an update to my Virtual Devices Plug-in.
What's new in version 1.5:
support for async HTTP (out of the box on openluup, just download https://github.com/akbooer/openLuup/blob/master/openLuup/http_async.lua and copy with the plug-in files on Vera) experimental support for setpoints management in Virtual Heaters (you know, the device will turn itself off if temperature is reached, and automatically on when temperature is not beyond the setpoint) external device for temperature in Virtual Heaters (just set urn:bochicchio-com:serviceId:VirtualHeater1/TemperatureDevice variable) small fixes, stabilizationGrab your copy from https://github.com/dbochicchio/vera/tree/master/VirtualDevices
As always, 100% local, 100% apps friendly, 100% supported by Alexa (and Google Home, I guess).
-
Anyone any idea what this might mean? We have two iPhones. Mrs C's and mine. Mine is totally fine. Mrs C's says 'forceRefresh error, check logs / 300 s' and refuses to tell me where she is 😉
Same settings in both instances (in fact I have created a second instance for Mrs C and that does the same). I know the username / password are correct, and the iCloud list populates in the right manner.
The log has this:
2020-07-05 11:58:55.866 luup_log:25: IPhoneLocator: loop: an error occurred during execution of forceRefresh():[string "L_IPhone.lua"]:639: attempt to index local 'obj' (a nil value) 2020-07-05 11:58:55.866 luup.variable_set:: 25.urn:upnp-org:serviceId:IPhoneLocator1.MsgText was: 2020-07-05 11:58 now: forceRefresh error, check logs / 300 s #hooks:0Any ideas?
Cheers
C
-
Replacing Google Map with
Bing Map
rafale77/IPhoneLocator rafale77/IPhoneLocatorIPhone Locator plugin for Micasaverde VERA and openLuup - rafale77/IPhoneLocator
Here Map
rafale77/IPhoneLocator rafale77/IPhoneLocatorIPhone Locator plugin for Micasaverde VERA and openLuup - rafale77/IPhoneLocator
Both tested on openLuup
-
So, I want to expand my Virtual Devices Plugin, and add support for alarms.
I recently reverse engineered my own alarm panel (it exposes an HTTP server, so I just watched their app and rebuilt the login), so I want to expose its event better. Right now, I just added a new security sensor in order to understand when alarm is active, and a couple of notifications to send via Telegram who activated/deactivated the alarm.
It will probably be cool to provide something representing an alarm panel, or an alarm partition, or a security key (to log/show who activated/deactivated the alarm, in which mode and when). Right now I'm tracking this thing via various zwave/wifi sensors, but I wanted to improve and maybe benefit others.
I searched a bit and I founded S_AlarmPartition2.xml and a plethora of very old forum posts, very old plug-ins and I'm not sure where to start. Thanks!
iPhone Locator force refresh error
-
Anyone any idea what this might mean? We have two iPhones. Mrs C's and mine. Mine is totally fine. Mrs C's says 'forceRefresh error, check logs / 300 s' and refuses to tell me where she is
Same settings in both instances (in fact I have created a second instance for Mrs C and that does the same). I know the username / password are correct, and the iCloud list populates in the right manner.
The log has this:
2020-07-05 11:58:55.866 luup_log:25: IPhoneLocator: loop: an error occurred during execution of forceRefresh():[string "L_IPhone.lua"]:639: attempt to index local 'obj' (a nil value) 2020-07-05 11:58:55.866 luup.variable_set:: 25.urn:upnp-org:serviceId:IPhoneLocator1.MsgText was: 2020-07-05 11:58 now: forceRefresh error, check logs / 300 s #hooks:0
Any ideas?
Cheers
C
-
It seems to be a problem with calculating distance using the Here Map API. Only thing I can think of is that Mrs C is at a location Here map cannot resolve? I have never seen this. Might be worth looking into...
-
Given she's in the same location as me....
Any ideas where to start looking?
Cheers
C
-
Yeah then I could be wrong. Try logging into her iCloud manually to see where iCloud is locating her?
I sometimes see this when my wife abuses the airplane mode... -
Folks still trying to resolve this. Could it possibly be the inverted comma in the name of her phone not being escaped?
I'm also seeing this which appears to indicate that it's not happy with the device:
2020-10-05 17:12:46.245 luup.task:: status=2 IPhoneLocator : Bad or No device found:{"maxMsgChar":160,"isMac":false,"lostTimestamp":"","batteryStatus":"Unknown","locFoundEnabled":false,"deviceClass":"iPhone","canWipeAfterLock":true,"isLocating":false,"name":"Rachel's iPhone","features":{"CLK":false,"CWP":false,"WIP":true,"LKM":false,"REM":true,"PSS":false,"KEY":false,"MCS":false,"XRM":false,"CLT":false,"TEU":true,"LMG":false,"LKL":true,"KPD":false,"LLC":false,"SPN":false,"BTR":false,"LCK":true,"WMG":true,"PIN":false,"MSG":true,"SVP":false,"LOC":true,"LST":true,"SND":true},"deviceDiscoveryId":"","audioChannels":[],"modelDisplayName":"iPhone","deviceDisplayName":"iPhone 5s","deviceColor":"e1e4e3-d4c5b3","passcodeLength":6,"fmlyShare":false,"batteryLevel":0,"lostModeCapable":true,"thisDevice":false,"wipeInProgress":false,"id":"y76cfYiF843r0U4gCttq295/E2podyhzV/uD10GRWvU3PR4QHwuwyeHYVNSUwerV","darkWake":false,"locationCapable":true,"deviceModel":"5s-e1e4e3-d4c5b3","baUUID":"","activationLocked":false,"lostModeEnabled":false,"rawDeviceModel":"iPhone6,2","lowPowerMode":false,"locationEnabled":true,"deviceStatus":"203"}
Any thoughts?
Cheers
C
-
Nope, that's not it. Changed the name of her phone and it's still doing it. Although the plug in is still showing devices that no longer exist in iCloud.
Really frustrating as now Mrs C is out to work in an office and getting the home / away stuff working again would be great
C
-
Can you trying have the plugin log out and log back into icloud? The last symptom is an indication that it either has cached the devices or that there is something wrong with the icloud device resolution. Could the plugin possibly see multiple devices under the same name and you having picked the wrong one? The error seems to indicate that icloud is not locating this very phone ("Rachel's phone")
-
@rafale77 said in iPhone Locator force refresh error:
Can you trying have the plugin log out and log back into icloud? The last symptom is an indication that it either has cached the devices or that there is something wrong with the icloud device resolution. Could the plugin possibly see multiple devices under the same name and you having picked the wrong one? The error seems to indicate that icloud is not locating this very phone ("Rachel's phone")
I actually deleted the device and re-created it. Rachel's phone now no longer exists (according to iCloud) as it's been re-named Rachel Phone.
iCloud only shows:
Rachel Phone
Chris's Macbook Pro (2)The plugin still thinks that the list is:
Rachel's iPhone
Catman Mac
Rachel's iPad
Rachel iPhone.No idea where it's getting these data and names from.
It's also listed these devices since the Vera days, so its' obviously cached somewhere by Apple.
As I say, mine works just fine, and there are apostrophes in some of my device names. There's also an old historic list of devices. The only difference I can see now is that my preferred device is top of the list so.
Any other ideas?
C
-
Would you mind deleting the plugin device and restarting it? This is an area of the plugin I absolutely didn't touch at all. It is all @amg0's code and it has been working for me. Are you saying that the plugin now sees both the old and the new device names? You do not see Rachel Phone but you see Rachel iPhone?
-
@rafale77 said in iPhone Locator force refresh error:
Would you mind deleting the plugin device and restarting it? This is an area of the plugin I absolutely didn't touch at all. It is all @amg0's code and it has been working for me. Are you saying that the plugin now sees both the old and the new device names? You do not see Rachel Phone but you see Rachel iPhone?
Totally get this isn't your code bit, but as you know, I'm banned
Now interestingly I found the old device names. Despite not being listed on the account, they were listed in 'Find my iPhone'
There was another 'Rachel's iPhone' left over from forever ago, which I have deleted in Find my iPhone and now no longer shows in the plugin list.
I've restarted Luup still seeing the force refresh error, but I think we might be closing in. I'll delete the device first, re create it and see what happens.
Cheers
C
-
Got it! Deleted the device, re-created it and we are good. Blimey what a PITA.
Only issue is it's not showing the map data so far.....
C