-
Just seen notification to Netatmo developers that the current password-based login is being disabled as from October.
Oath2 is now a requirement for apps needing access to Netatmo. This will require some changes to my venerable plug-in. I’m not sure how easy this will be with the current libraries in use.
Does anyone out there use the Netatmo plug-in?
Does anyone have any advice on using Oath2?
-
FYI.
Recently a new ALTUI version got pushed out, release 2553. After the update Reactor is no longer showing any of the Control panels in a sensor. looking at the ALTUI changes they seem minimal so in J_ReactorSensor_UI7.js I upped the _MAX_ALTUI_VERSION to 2553 and all seems to be working again.
-
Good evening, all.
Is there a simple readme to set up and use a Broadlink device with OpenLuup?
The readme on github points to a thread on the old forum, and thence to a rabbit hole.Is it just a case of adding IP address of the device? Or does it need the MAC?
Then how do I fire commands? It looks like I need to find the codes and send via Lua?
TIA
C
-
Hi Patrick,
A quick question about your virtual sensor plugin. I saw that the child sensors rely on polling for sensor data updates. Was there a reason not to use a watch on the underlying (source) state variable as opposed to polling. I'm asking in the sense that I need a fairly rapid response to a rise in humidity, but am unsure how to set sensor polling without adding additional io drag to openLuup.
I currently use the state humidity variable directly in a reactor sensor (the data is captured via a bluetooth device with multiple humidity variables), however, these state humidity variables have a generated name making it difficult to determine what is what in group of approximately 10 state humidity variables. So a virtual sensor solves the naming problem, while creating some trigger delay due to polling.
Thx
-
@toggledbits
I have Reactor running under openLuup (which is running inside vwout's Docker container).
On the activities tab, it tells me I should update to a newer version of the device information database. When I go to the Tools tab, for a fraction of a second I can see the green "Update Device Info" button along with the Troubleshooting & Support and Device Spy sections. But after that fraction of a second, they disappear and I only see the Test Tools and Update Device Information Database sections, to just above where the Green button used to be.I've tried this on both Edge and Firefox with the same behavior (with extensions both on and off).
Any suggestions?
-
Not sure why, but after many years, I'm still unsure how plugins with children are meant to be coded, although I've got away with doing a few with no problems!
I could try out a few test cases but messing around with luup.chdev.append() is tricky. If the appended info changes, a luup.engine restart occurs. Any stuff ups and this can go into a continuous loop. Plus I don't want random new devices scattered all over my installation.
So imagine a plugin that controls say ten binary lights, ten dimmers and ten blinds/shutters:
the plugin should have in the device file D_xyx.xml the tag:<handleChildren>1</handleChildren>
OK it makes sense for the parent to have the routines to control the child devices.
Question: when wouldn't the plugin parent not have the code to control its children? ie
<handleChildren>0</handleChildren>
Seems redundant or I have misunderstood something?
The service files for both dimmers and blinds have the function: <action> <name>SetLoadLevelTarget</name> <argumentList> <argument> <name>newLoadlevelTarget</name> <direction>in</direction> <relatedStateVariable>LoadLevelTarget</relatedStateVariable> </argument> </argumentList> </action>And to call the action in each case, we have say 'dimmingLevel' vs 'blindPosition':
luup.call_action('urn:upnp-org:serviceId:Dimming1', "SetLoadLevelTarget", {newLoadlevelTarget = dimmingLevel}, deviceId) luup.call_action('urn:upnp-org:serviceId:Dimming1', "SetLoadLevelTarget", {newLoadlevelTarget = blindPosition}, deviceId)Question: how do you direct the same calls to different functions in the plugin - one to dim the light and the other to postion the blind? It would seem that you would have to look at the target child device and see what type it is, then act accordingly? An example would be good!
In this plugin, devices can come and go - not often - but still needs to be attended to in the code. So the luup.chdev.append() call is executed at every start up. Each child has a descriptive name. When the child is first created this name can be set up by the software to say "Light 1" to "light 10". The user can then subsequently change this descriptive name.Question: How do I know that this descriptive name has been changed by the user and needs to be preserved and how do I check what this descriptive name is ready for when the luup.chdev.append() call is executed? As the function needs this descriptive name.
And I wonder how openluup (without looking at the code) emulates the C blob:
local childDevices = luup.chdev.start(THIS_LUL_DEVICE)
-
All,
Due to changes in the push notification system by Apple, the plugin to send push notifications to HomeWave will have to be updated. Please use the link below. This plugin works on both Vera and OpenLuup platforms.
Push messages will continue to work with the old and the new plugin. Once the server and the HomeWave app are updated, the old plugin will stop working
http://www.intvelt.com/files/HomeWavePush.zip -
It's worth noting this recent (?) GitHub change:
GitHub - github/renaming: Guidance for changing the default branch name for GitHub repositories GitHub - github/renaming: Guidance for changing the default branch name for GitHub repositoriesGuidance for changing the default branch name for GitHub repositories - GitHub - github/renaming: Guidance for changing the default branch name for GitHub repositories
This will have an impact on the AltAppStore which has previously assumed the default repository name of master. So when specifying releases, you should ensure that any new plugins explicitly reference the main branch if that's the one you're expecting to use.
-
Hello @therealdb with your OpenSprinkler plugin occasionally when I set a zone for an amount of time lets say 10 minutes, something happens and the counter for 10 minutes counts down 5 seconds to 9:55 then it resets back to 10 minutes. This continues to repeat so the zone will stay on for an infinite amount of time. In my experience this usually happens once the plugin has been running for about a day (ie no recent Luup reloads). I grabbed some logs but it doesn't seem to show anything weird happening. This issue does not happen when I set a zone timer through the OpenSprinkler app. Oddly enough when I stop the zone through the OpenSprinkler app when the timer keeps resetting, the same zone gets queued right away. It seems that the plugin is sending the start zone command every 5 ish seconds.
50 06/07/21 19:19:00.469 luup_log:1304: VeraOpenSprinkler[1.50](setVar@135): setVar("urn:upnp-org:serviceId:Dimming1","LoadLevelTarget","9",1310) old value "11" <0x6b8fe520> 06 06/07/21 19:19:00.469 Device_Variable::m_szValue_set device: 1310 service: urn:upnp-org:serviceId:Dimming1 variable: LoadLevelTarget was: 11 now: 9 #hooks: 0 upnp: 0 skip: 0 v:0x16fabd8/NONE duplicate:0 <0x6b8fe520> 50 06/07/21 19:19:00.480 luup_log:1304: VeraOpenSprinkler[1.50](setVar@135): setVar("urn:upnp-org:serviceId:Dimming1","LoadLevelLast","9",1310) old value "11" <0x6b8fe520> 06 06/07/21 19:19:00.481 Device_Variable::m_szValue_set device: 1310 service: urn:upnp-org:serviceId:Dimming1 variable: LoadLevelLast was: 11 now: 9 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x6b8fe520> 50 06/07/21 19:19:00.482 luup_log:1304: VeraOpenSprinkler[1.50](setVar@135): setVar("urn:upnp-org:serviceId:Dimming1","LoadLevelStatus","9",1310) old value "11" <0x6b8fe520> 06 06/07/21 19:19:00.482 Device_Variable::m_szValue_set device: 1310 service: urn:upnp-org:serviceId:Dimming1 variable: LoadLevelStatus was: 11 now: 9 #hooks: 0 upnp: 0 skip: 0 v:0x16fac40/NONE duplicate:0 <0x6b8fe520> 50 06/07/21 19:19:00.494 luup_log:1304: VeraOpenSprinkler[1.50](setVar@135): setVar("urn:upnp-org:serviceId:SwitchPower1","Target","1",1310) old value "1" <0x6b8fe520> 50 06/07/21 19:19:00.495 luup_log:1304: VeraOpenSprinkler[1.50](actionPowerInternal@785): [actionPower] #1310 - 5 <0x6b8fe520> 50 06/07/21 19:19:00.495 luup_log:1304: VeraOpenSprinkler[1.50](sendDeviceCommand@254): sendDeviceCommand("cm",{ 1="en=1", 2="t=540", 3="sid=5", 4="pid=-1", 5="uwt=0" },1304) <0x6b8fe520> 50 06/07/21 19:19:00.496 luup_log:1304: VeraOpenSprinkler[1.50](sendDeviceCommand@276): sendDeviceCommand - url: "http://192.168.8.225:80/cm?en=1&t=540&sid=5&pid=-1&uwt=0&pw=a6d82bced638de3def1e9bbb4983225c" <0x6b8fe520> 50 06/07/21 19:19:00.556 luup_log:1304: VeraOpenSprinkler[1.50](nil@214): [HttpGet] "http://192.168.8.225:80/cm?en=1&t=540&sid=5&pid=-1&uwt=0&pw=a6d82bced638de3def1e9bbb4983225c" - "{\"result\":1}" <0x6b8fe520> 50 06/07/21 19:19:00.557 luup_log:1304: VeraOpenSprinkler[1.50](setVar@135): setVar("urn:upnp-org:serviceId:SwitchPower1","Status","1",1310) old value "1" <0x6b8fe520> 50 06/07/21 19:19:00.557 luup_log:1304: VeraOpenSprinkler[1.50](deviceMessage@244): deviceMessage(1310,"Turning on for 540 seconds",false,15) <0x6b8fe520>``` -
UPDATE: With @toggledbits update for "R4V" below, your new notification sounds will work just by typing your custom soundfile name into the Sound: field of the Notify Action. Editing the J_ReactorSensor_UI7.js is not an undertaking for the simple user 😲
Please ignore the entire "Tip" below, it ended up hosing my Reactor interface and I had to re-install the Reactor "stable" version to get back up and running. I'll leave it posted for a bit in case someone knows WHY it got hosed.
Sorry,
ChrisGuessing this is the most appropriate area in which to post this . . .
In case nobody has written this yet, I've been using Pushover for a while. First with VeraAlerts on Vera3/UI5, now with Reactor on openLuup/RPi3.
Until recently, Pushover has constrained us by only allowing select notification sounds. Now pushover.net will allow you to upload custom sounds to their internal library.
You may then add these sounds to Patrick's J_ReactorSensor_UI7.js file
values: [ "=(device default)", "none=(none/silent)", "vibrate=(vibrate only)", "pushover=Pushover", "bike=Bike", "Bubbles=Bubbles (VA)", "bugle=Bugle", "cashregister=Cash Register", "classical=Classical", "Cloud=Cloud (VA)", "cosmic=Cosmic", "falling=Falling", "gamelan=Gamelan", "incoming=Incoming", "intermission=Intermission", "iPhone_Ding=iPhone Ding (VA)", "magic=Magic", "mechanical=Mechanical", "pianobar=Piano Bar", "siren=Siren", "spacealarm=Space Alarm", "tugboat=Tug Boat", "alien=Alien Alarm (long)", "climb=Climb (long)", "persistent=Persistent (long)", "echo=Pushover Echo (long)", "updown=Up Down (long)"Not sure how the above code will format here, but I searched for "Pushover" in the .js file, found the section above, and sprinkled my 3 custom sounds alphabetically into the existing group (following existing formatting)
After that, a browser refresh was all that was needed.
That's All Folks,
Don't Call Me Chrissy -
Hello all, I have a thermostat in a hallway that controls the whole upstairs floor and my room seems to get way warmer than the hallway its located in. I am not able to move the thermostat, neither are there any external temperature probes available that connect directly to the thermostat.
I had an extra Z wave temp sensor lying around so thought I'd place that in my room and use that somehow in place of the internal temp sensor in the hallway.
I can't seem to think of a good way to go about this, my original plan was to use either the AVT plugin or the Virtual Devices plugin but to my knowledge they won't work they way I intend them to. So I resorted to using Reactor, but that may become very tricky since I will need to put in a lot of fail safes to make sure the heating/cooling turns on/off when expected.
Does anyone have any ideas on how to go about this? Every time I come up with a possible solution, I always find a way that it could fail and either not turn the a/c off/on.
-
Hello @mrFarmer , ever since the v2.3 update I haven't been able to login to my account attached are the logs. Before the update I was getting the wake-up error too. I rolled back to V2.2 and the plugin was stuck on "updating car status".
06 05/17/21 10:45:20.102 Device_Variable::m_szValue_set device: 168 service: urn:micasaverde-com:serviceId:SecuritySensor1 variable: Tripped was: 1 now: 0 #hooks: 0 upnp: 0 skip: 0 v:0x11c7b58/NONE duplicate:0 <0x7708d520> 06 05/17/21 10:45:20.103 Device_Variable::m_szValue_set device: 901 service: urn:rboer-com:serviceId:TeslaCar1 variable: LastLogin was: 1621273198 now: 1621273520 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x73394520> 01 05/17/21 10:45:20.160 luup_log:901: Tesla Car_error: Unable to select vehicle. errorCode : 400, errorMessage : HTTP/1.1 400 BAD REQUEST !! <0x73394520> 01 05/17/21 10:45:25.101 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:25.101 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:25.102 luup_device_message missing args <0x73394520> 06 05/17/21 10:45:25.103 Device_Variable::m_szValue_set device: 901 service: urn:rboer-com:serviceId:TeslaCar1 variable: LastLogin was: 1621273520 now: 1621273525 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x73394520> 01 05/17/21 10:45:25.158 luup_log:901: Tesla Car_error: Unable to select vehicle. errorCode : 400, errorMessage : HTTP/1.1 400 BAD REQUEST !! <0x73394520> 01 05/17/21 10:45:30.102 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:30.103 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:30.103 luup_device_message missing args <0x73394520> 06 05/17/21 10:45:30.104 Device_Variable::m_szValue_set device: 901 service: urn:rboer-com:serviceId:TeslaCar1 variable: LastLogin was: 1621273525 now: 1621273530 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x73394520> 01 05/17/21 10:45:30.165 luup_log:901: Tesla Car_error: Unable to select vehicle. errorCode : 400, errorMessage : HTTP/1.1 400 BAD REQUEST !! <0x73394520> 01 05/17/21 10:45:35.101 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:35.102 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:35.102 luup_device_message missing args <0x73394520> 06 05/17/21 10:45:35.103 Device_Variable::m_szValue_set device: 901 service: urn:rboer-com:serviceId:TeslaCar1 variable: LastLogin was: 1621273530 now: 1621273535 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x73394520> 01 05/17/21 10:45:35.156 luup_log:901: Tesla Car_error: Unable to select vehicle. errorCode : 400, errorMessage : HTTP/1.1 400 BAD REQUEST !! <0x73394520> 04 05/17/21 10:45:37.219 <Job ID="16" Name="pollnode #9 1 cmds" Device="129" Created="2021-05-17 10:45:37" Started="2021-05-17 10:45:37" Completed="2021-05-17 10:45:37" Duration="0.117271000" Runtime="0.116483000" Status="Successful" LastNote="" Node="9" NodeType="ZWaveDimmableLight" NodeDescription="Shed Inside Light"/> <0x7708d520> 02 05/17/21 10:45:37.219 Device_Basic::AddPoll 129 poll list full, deleting old one <0x7708d520> 06 05/17/21 10:45:37.220 Device_Variable::m_szValue_set device: 129 service: urn:micasaverde-com:serviceId:HaDevice1 variable: PollRatings was: 5.00 now: 5.00 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:1 <0x7708d520> 06 05/17/21 10:45:37.221 Device_Variable::m_szValue_set device: 129 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: LastPollSuccess was: 1621273204 now: 1621273537 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x7708d520> 06 05/17/21 10:45:37.221 Device_Variable::m_szValue_set device: 129 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: ConsecutivePollFails was: 0 now: 0 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:1 <0x7708d520> 01 05/17/21 10:45:40.100 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:40.101 luup_device_message missing args <0x73394520> 01 05/17/21 10:45:40.101 luup_device_message missing args <0x73394520> 06 05/17/21 10:45:40.103 Device_Variable::m_szValue_set device: 901 service: urn:rboer-com:serviceId:TeslaCar1 variable: LastLogin was: 1621273535 now: 1621273540 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x73394520> 01 05/17/21 10:45:40.157 luup_log:901: Tesla Car_error: Unable to select vehicle. errorCode : 400, errorMessage : HTTP/1.1 400 BAD REQUEST !! <0x73394520> 01 05/17/21 10:45:40.157 luup_log:901: Tesla Car_error: Could not login to Tesla API after 5 attempts. <0x73394520> <0x745ef520> 02 05/17/21 10:45:45.701 luvd_get_info mg conn can't read /etc/cmh-ludl//shared.js or /etc/cmh-lu//shared.js from filename /shared.js pPtrFile (null) <0x6ed5f520>``` -
Hey @toggledbits I recently picked up a Rachio controller for a family member and installed the plugin you have created. I have two issues and was wondering if you have any insight:
I have 2 controllers linked to one account and both controllers+zones are showing up, is there anyway to disable 1 controller from showing up? Is the best solution just to hide the extra zones etc?
Since each zone uses a custom device type, you cannot control them in the mobile app at all. Is it possible to change the device type to a dimmer or valve (something like the OpenSprinkler plugin) so that I can use the plugin in the mobile app and other 3rd party apps?
-
Hello @therealdb , I had to rebuild my sprinkler set up and noticed that none of the child devices that the plugin created automatically showed up in the same room as the parent device. The variable ChildrenSameRoom is set to 1 but all my zones are in "No Room". Is there any quick way I can get them all in the same room as the parent device? I have around 18 child devices so manually setting each room will take quite long!
-
Posted this in Vera forum with no response:
Seeing this in reactor UI:
A newer version of the device information database is available. Please use the update function on the Tools tab to get it. This process is quick and does not require a Luup reload or browser refresh–you can immediately come back here and go right back to work! The new version is 865.877, and you are currently using 557.352…Hit update in Tools and get an error: “The update could not be retrieved. If this problem persists, consult the documentation.”
Looked through logs and not seeing anything specific. You have a keyword I should search for?
-
Hi Rene @mrFarmer just thought i would let you know that the new broadlink app from Ezlo causes an error in log, It does not stop the bridge.
luup.variable_set:: 24.urn:rboer-com:serviceId:EzloBridge1.Ezlo_deviceMap was: {"603a8896122335165e686cb3":29,"5fe26c71122335120f05323e":23,"603a8896122335165e686cb7":30,"5fd354fc12233516e1e0c3b... now: {"603a8896122335165e686cb3":29,"5fe26c71122335120f05323e":23,"603a8896122335165e686cb7":30,"603a869b122335165e686cb... #hooks:0 2021-04-14 20:15:47.641 luup_log:24: EzloBridge_error: No device found for device id 32. 2021-04-14 20:15:47.642 luup_log:24: EzloBridge_error: No device found for device id 32. 2021-04-14 20:15:47.643 luup_log:24: var.SetString: wrong data type (number) for variable TamperAlarm 2021-04-14 20:15:47.644 luup_log:24: creating device numbers: [20016,20029,20023,20009,20021,20030,20031] 2021-04-14 20:15:47.645 luup_log:24: linking to remote scenes... 2021-04-14 20:15:47.645 luup.variable_set:: 24.urn:upnp-org:serviceId:altui1.DisplayLine1 was: Getting devices and scenes... now: 7 devices, 4 scenes #hooks:0 2021-04-14 20:15:47.646 luup.variable_set:: 24.urn:upnp-org:serviceId:altu
here is the logTried excluding the device but not sure what number to put tried 32 and the longer ezlo device id, but caused ezlo bridge to fail.
-
Hey @toggledbits updated to Reactor 3.9develop-21009.1600 on my VP running 7.32 and I keep getting this pop up and can't change anything in my reactor sensors because of it. I am running Alt UI 2.52 and there are no updates for it. Screen Shot 2021-03-31 at 8.33.47 PM.png
-
@toggledbits On my veraplus I try to use the plugin switchboard. On my veraplus I use a virtual window covering which can also be used in google home with tts. Now I also use openluup. The virtual window covering is not visible in openluup. Is this correct? I also use reactor in openluup. If this virtual window covering is not visible in openluup, I cannot use it in reactor either
-
Is there any chance of @amg0 becoming an active member, do you think?
He appears to be not responding on GitHub (I opened my licensing query a month back)
There are also some challenges around how things like thermostats behave in their display which would be great if we could get them fixed. Well beyond my capability 😞C
External Temp Sensor w/ Thermostat
-
Hello all, I have a thermostat in a hallway that controls the whole upstairs floor and my room seems to get way warmer than the hallway its located in. I am not able to move the thermostat, neither are there any external temperature probes available that connect directly to the thermostat.
I had an extra Z wave temp sensor lying around so thought I'd place that in my room and use that somehow in place of the internal temp sensor in the hallway.
I can't seem to think of a good way to go about this, my original plan was to use either the AVT plugin or the Virtual Devices plugin but to my knowledge they won't work they way I intend them to. So I resorted to using Reactor, but that may become very tricky since I will need to put in a lot of fail safes to make sure the heating/cooling turns on/off when expected.
Does anyone have any ideas on how to go about this? Every time I come up with a possible solution, I always find a way that it could fail and either not turn the a/c off/on.
-
You're unlikely to get the thermostat to directly honor your external sensor. I would think about using the external sensor to manipulate the setpoint on the thermostat to force heating to run (or not). Also, if the differential between the hallway and the room is consistent, even across season, a "behavior" change on the part of the humans (different setpoint) may be all that's needed.
-
I was thinking of creating a virtual thermostat which uses the external temp sensor as its own temp sensor, and then have the setpoints on the virtual thermostat manipulate the set points on the physical hallway thermostat.
For example if the room temperature is at 23 degrees, and the hallway is at 19, I would set the virtual thermostat to 20 degrees then with some Reactor trickery I could set the setpoint on the hallway thermostat to something absurdly cold so that it an trigger the a/c on (regardless of hallway ambient temp) until the room reaches the desired temp. From there then set the hallway thermostat back to either its pervious setpoint so that the a/c can turn off. I think that may be a possible solution, I can't think of any issues unless the hallway temp gets as low as the setpoint, but the temperature differential isn't that much.
-
@pabla I think you could just use the temperature in general, if you’re using a time schedule (very common in Europe, not so common in US/Canada, from my previous trips). We usually have our thermostats set to both temperature and time windows. Maybe a simpler approach like this could also work.
A more fancy one is to watch for temperatures, make an average and lower the set point, so you’ll get a better feeling. I will not lower it too much, to avoid the feeling of being in a freezer 🥶
-
The issue with scheduling is that with our weather here its sometimes 28 degrees then the next day it will be 9 degrees so some days a/c isn't even needed.
I think I have figured out how to go about this:
-Create a virtual thermostat
-Tie the temp reading to the room temp sensor (if that's possible)
-Set a Reactor condition to turn on cooling when the set point of the virtual thermostat is below the room tempThe only issue I am running into is creating the virtual thermostat, I created it but I cannot change the thermostat's mode. Would I need to create a custom device file type to create a functional virtual thermostat?
-
@pabla yes, you’ll need an implementation file. I have one for heaters, but I’ve never found the motivation to do a cooler. It should be easy to do.
-
Well, you can use AVT for that. There are state variables in AVT when heating and cooling are called that you can react to in Reactor. And AVT will use your external temp sensor, of course.
-
@toggledbits that was the plan but the only issue with AVT is it doesn’t work through the mobile app well.
-
Yeah, but it's open source, so you could take the code and just the standard device type and static JSON rather than the custom versions. I can't do that with the plugin because it would break existing users, but there's nothing stopping you from using it. No need to start from scratch.
-
@toggledbits Okay so I took the original AVT device and changed the
device type
tourn:schemas-upnp-org:device:HVAC_ZoneThermostat:1
,device file
toD_HVAC_ZoneThermostat1.xml
anddevice json
toD_HVAC_ZoneThermostat1.json
. The device now shows up like a regular thermostat but no longer can change its mode from off to anything else -
Are you on Vera or openLuup?
-
Vera 7.32 beta
-
OK. I took a dig in myself, and it still needs some additional support because so much of the "logic" is actually hard-coded in UI7.
I've put together just a prototypical modification to AVT that makes AVT itself a master device (interface only) that creates a single child device that is a dual-setpoint native thermostat type. If and only if you are not using AVT currently, you can install this hacked version and I'll help you get it running and stabilized. Do not run this version if you use AVT otherwise, as it will break all existing AVT devices.
To install:
- Click link for "devicetype" branch of the project on Github: https://github.com/toggledbits/AutoVirtualThermostat/tree/devicetype
- Click the green "Code" button and choose "Download ZIP"
- Unzip the downloaded archive to a spot on your local system.
- Open the uploader at Apps > Develop apps > Luup files
- Drag the unzipped files (not the folder) as a group to the "Upload" button. Wait for the upload and Luup reload to complete.
- Now, for first-time install, go to Apps > Develop apps > Create Device
- Enter
AVT Plugin
or something in the "Description" field. - Enter (exactly--use copy/paste) in the "Upnp Device Filename" field:
D_AutoVirtualThermostat1.xml
- Hit the "Create device" button.
- Go the Apps > Develop apps > Test Luup code (Lua) and run
luup.reload()
- There will be two reloads, one that you just initiated, and another by the plugin when it creates the child device. Wait for these to complete.
- Hard refresh your browser. You should then see a "AVT Plugin" (or whatever you called it above) device, and a "Generic Virtual Thermostat', which is the generic-typed child.
Now, you need to configure the child device ("Generic Virtual Thermostat") with your temperature sensor. There is no UI for this version of AVT. Go into the Generic Virtual Thermostat's control panel, to Advanced > Variables and find
TempSensors
. Put the temperature sensor device number in there (if you have more than one you are going to use/average, put them in comma-separated). Then... reload Luup again.The built-in (Vera UI7) web UI for the generic type dual setpoint thermostat has some bugs, but generally works well enough. The mode you are in determines which setpoints are settable (e.g. in "Auto" both, in "Heat" heat only). Setting the setpoint via the up-down controls works, but editing them by clicking on the setpoint and editing the value does not (that's a UI7 bug--it doesn't send an event when you exit the field, so the edit never takes); no workaround possible.
On the Vera Mobile app side, setting the temperature while in AUTO mode presents only one setpoint control and doesn't work, so to set the heat setpoint, go into Heat mode and set it, and to set the cooling setpoint, go into Cool mode and set it. Then go back to Auto mode if that's what you want. I'll play with that the mobile app thinks its doing and see if I can come up with a sensible workaround.
Finally, one other restriction, since I was running fast to make these changes, only one child device is supported at the moment.
-
@toggledbits First off thanks for helping me out, this is great!
Everything went smoothly until I set the
TempSensors
variable. I set it to53
which is the room temperature sensor and did multiple reloads and hard refreshes but the inside temp on the generic thermostat still shows 0 degrees. -
If you look in the log, it will log what it thinks about the sensor. Look for the strings "Found 1 valid sensors" and "No valid sensors". I suspect you're getting the latter, and that's usually because your sensor hasn't updated within the "sanity" check periods (in case of dead battery). Handling that is documented in the regular README for AVT at the link given in step 1 above.
-
@toggledbits that looks like what is happening. I guess I will wait for the sensor to update
50 06/10/21 10:39:31.102 luup_log:69: AutoVirtualThermostat: Sensor "53" ("Master Bedroom Temperature") ineligible, last battery report 1623306414 (time 23:26:54) is more than 7200 ago <0x748aa520>
01 06/10/21 10:39:31.103 luup_log:69: AutoVirtualThermostat: No valid sensors. <0x748aa520>
-
Since this is a battery operated sensor, I can't have it update every 2 hours. Is it possible to override the 7200 second fail safe? The actual temperature in my past experience updates more often than battery dates since I think battery dates only update with a wake up.
-
Yes, the docs linked from the README describe this.
-
Duh, the docs have all the info I need. Looks like everything is now up and running thanks!!!