S_HVAC device on vera doesnt set set point to arduino

  • Hey.
    Im using vera edge with latest firmware.
    Arduino nano with nRF24l01 as my gateway. 1.5 API version. On the other side I have Arduino uno with DHT22 and IR led to turn on and off the AC.
    Every thing works ok but sending a new set point to the UNO.
    I recive the Off and ColdOn from vera and sending the room temp from the UNO to vera also works (i can see the inside temperature chnages). But when I set new temperature in Vera to be sent to the UNO, i see that the UNO recive nothing (i use the serial to monitor it).
    Any known bug? Or mybe I missing somthing in my code (can u direct me to an example of using S_HVAC)?

  • Admin

    Might very well be a bug in the Vera plugin as this is untested ground.
    Would be nice to see if plugin even try to send anything. Do you have access to the Vera log?

  • No, how can I access it? And I will send you all the info needed to debug.
    BTW when I send the command it say "command fail" under the temperature set point field.

  • Admin

    @leeoz, Could you try a thing?

    Change the two occurrences of SetCurrentSetpoint to NewCurrentSetpoint in I_Arduino1.xml and report back.

  • Its already set to NewCurrentSet point.

  • Admin

    No it isn't...

    But I doubt that this is the problem...

    @akbooer, need some help on this. Do you see something obvious?

  • I notice that code has "NewCurrentSetpoint" and wonder whether it should not, instead, be "newCurrentSetpoint" ?

  • Admin

    @akbooer and @hek checkout - http://wiki.micasaverde.com/index.php/Luup_UPnP_Variables_and_Actions#TemperatureSetpoint1
    Screen Shot 2015-09-02 at 8.02.34 PM.png
    Note, screenshot from UI5 below but it seems that this has changed to the above as of UI7....

    Screen Shot 2015-09-02 at 7.56.16 PM.png

  • Sorry, I'm new to Lua and vera stuff so I don't understand what I need to do in order to fix it, or to find the error? I know c++ and c# so I familiar with programming but this is something I never done before.
    my vera version: 1.7.1320
    is this UI7?

  • @leeoz said:

    Sorry, I'm new to Lua and vera stuff so I don't understand what I need to do in order to fix it, or to find the error? I know c++ and c# so I familiar with programming but this is something I never done before.
    my vera version: 1.7.1320
    is this UI7?

    Yes, it is.

    The issue under discussion here is something which definitely needs fixing once and for all by a plugin developer familiar with Lua, and Vera, and UI5, and UI7, and thermostats. I fail on the last point (but can learn) and am taking a look at the issue now, although that certainly doesn't stop anyone else from giving it a go.

  • @blacey
    You are, of course, right. The problem is that the plugin does not implement the TemperatureSetpoint1 service. Requires a small change to the I_Arduino1.xml file and possibly the Lua file too.

  • R u guys going to update the GitHub files and publish it? or you want to give me some instructions on where to change what and test it?
    Let me know if I can be any help (mybe sending you my log or somthing...)

  • The point is that no one actually has a solution right now.

    I see two ways forward, described here


    And here


    The second one requires us to do nothing but wait for a month (so they say) at which time the Vera firmware will be changed to reinstate the missing command.

    The first approach is a pragmatic workaround which could be relatively easily coded in the modules I mentioned previously.

  • L_Arduino.lua I_Arduino1.xml MyMessage.h

    So I fixed it with simple fix.
    After reading this:
    Attached are the latest lua+xml+h files with the fix I've made.

  • Hero Member

    Hi @leeoz would you mind sharing the arduino sketch for the HVAC device from this project?

  • Hero Member

    I finally put together a thermostat device sketch. Unfortunately it got a bit out of hand and I implemented lots of features that most people probably not need.

    Not sure if I'm using the V_HVAC_FLOW_STATE and V_HVAC_SETPOINT_HEAT correctly but it seems to work with my Vera UI5 presented as a S_HEATER device.

    Here is the sketch in case someone needs it.


  • Hero Member

    Is anyone using Heater device in Vera UI7? Just moved my thermostat to a VeraPlus but it is not quite working correctly. Cant send setpoint value to the device. Sending Heat and Off command works as expected and also status changes are received in Vera. I need to get my z-Wave thermostat moved from my UI5 Veralite to the VeraPlus to do some comparison of the variables used. Then I'll look in to the MySensors GW plugin files if I can find something in need of fixing.

  • Admin

    Coincidentally I am working on a thermostat prototype using your code now. I actually just found an error in the Vera files while I was doing some testing. Try uploading the I_Arduino1.xml and L_Arduino.lua to your Vera from here: https://github.com/mysensors/Vera/tree/UI7

  • Hero Member

    @petewill I actually tried the new files yesterday but I could not get the termostat to work. For some reason the window cover device allso stoped working so I went back to the old file. I dont know why but I suspect that I should update the GW since I dont remember when I updated it an not sure of the version running on it.

  • Admin

    @korttoma Wow, that's strange that your window coverings stopped working! I have window coverings and they are working after the update. Maybe updating the gateway is a good idea 🙂

    Are you able to get the logs from the heater device? The window covering messages are 29-31 which are no where near the heater messages which is why this is so strange (to me at least).

  • Hero Member

    @petewill yeah it seems like the GW was completely frozen so i it was not window cover related. I think it froze from the commands I tried to send to the heater (I think the version of the GW is 1.5 so I'm not sure if the HVAC device is handled). I was looking in to updating my GW yesterday but I could not get the 1.5.4 GW to compile using codebender.

    Did you already build the thermostat device?

    I was thinking should it be presented as HVAC device or is it stil ok to use HEATER like in my example. Hocking up some serial logging to my live thermostat is not something I'm prepared to do, I usually do debugging like this on a smal system at work but I will not have access to this till next week.

  • Admin


    I was looking in to updating my GW yesterday but I could not get the 1.5.4 GW to compile using codebender.

    Hmm. I always use the arduino IDE and download the code form Github so I'm not sure about this one.

    Did you already build the thermostat device?

    It is currently a work in process. I have an A/C device as well so I'm doing quite a bit of coding for that. I am using the HVAC device instead of the heater device. Heater should still work though I would think.

  • Hero Member

    I have been hapily using codebender for the last 2 years so my IDE vad on v. 1.0.5 witch did not compile either. Updated IDE to 1.6.2 now and it compiles. Maybe I can find time to do the update to night or tomorrow.

  • Hero Member

    @petewill I managed to get my hands on the log file from the VeraPlus when trying to send setpoint value. It seems like the HEATER device is not working and gives the "No implementation" Error.

    08	03/10/16 12:27:26.352	JobHandler_LuaUPnP::HandleActionRequest device: 44 service: urn:upnp-org:serviceId:TemperatureSetpoint1 action: SetCurrentSetpoint <0x71f83520>
    08	03/10/16 12:27:26.355	JobHandler_LuaUPnP::HandleActionRequest argument DeviceNum=44 <0x71f83520>
    08	03/10/16 12:27:26.356	JobHandler_LuaUPnP::HandleActionRequest argument serviceId=urn:upnp-org:serviceId:TemperatureSetpoint1 <0x71f83520>
    08	03/10/16 12:27:26.356	JobHandler_LuaUPnP::HandleActionRequest argument action=SetCurrentSetpoint <0x71f83520>
    08	03/10/16 12:27:26.356	JobHandler_LuaUPnP::HandleActionRequest argument NewCurrentSetpoint=72.5 <0x71f83520>
    08	03/10/16 12:27:26.356	JobHandler_LuaUPnP::HandleActionRequest argument rand=0.4705214786808938 <0x71f83520>
    02	03/10/16 12:27:26.357	Device_LuaUPnP::HandleActionRequest 44 none of the 1 implementations handled it <0x71f83520>
    02	03/10/16 12:27:26.357	JobHandler_LuaUPnP::RunAction device 44 action urn:upnp-org:serviceId:TemperatureSetpoint1/SetCurrentSetpoint failed with 501/No implementation <0x71f83520>

    fyi, for this test I did not have your latest implemented fix for the HVAC devcie but I guess that does not matter.

    How is your setup coming along?

    btw, I'm working on updating my old Veralite to UI7 so that I can have a separate test system but the update just do not seem to want to work, I requested Vera support to do it for me now so I just have to wait until they get to it.

  • Admin

    Hmm. This is getting beyond my ability. Are you on 1.5 on your gateway and the sensor now? Can you test with the fix I submitted? It actually could make a difference because the mode states are used by both the Header device and the HVAC device.

    If you increase the temp at your thermostat does Vera update?

    I am still on UI5 so maybe that is part of the problem?

    My project is at a standstill for the moment. I hope to resume it soon but life is getting in the way 🙂

  • Hero Member

    I now have 1.5.4 on both the GW and heater device but this does not matter since the command newer leves the Vera. I'm sure I will be able to get this working but I need to get my Veralite updated first so I can have a proper test system. Yes UI7 is part of the problem since UI5 worked fine for me to (I think something related to the used SetPoint variables were changed). The current setpoint in the device is reported to Vera under the Variable "CurrentSetpoint Heat" so this part looks fine.

    Yeah, sometimes life gets in the way but that is OK 😉

  • Hero Member

    I finally got my Veralite updated to UI7 so I could take a look at this and I can now send setpoint value to my heater device.

    Here is the additions I made to I_Arduino1.xml

          		if (p ~= nil) then p.Setpoint(lul_device, lul_settings.NewCurrentSetpoint)  end
      			return 4,0

    And here is what I added to L_Arduino.lua

    function Setpoint(device, NewCurrentSetpoint)

    Unfortunately if I change the setpoint locally on the heater device I do not get the new value to the device in the vera dashboard since the value is reported to the variable "CurrentSetpoint Heat" instead of "CurrentSetpoint".

    Anyhow, I'm gona try the HVAC device type to see how it performs as comparison.

  • Hero Member

    @petewill I tried to add my changes to github but I could not figure out how. I get "Failed to sync this branch" when I tried to sync what I committed. I have not contributed anything for 2 years so I don't remember how.

  • Admin

    @korttoma Glad you got it working!

    Unfortunately I can't offer much help with GitHub. I don't use it enough to have the process memorized. It's always trial and error for me too. Did you sync with the UI7 branch before you tried to upload your changes? Sorry I can't be more help...

  • Hero Member

    finally managed to work out the GitHub part, I had to update the desktop software and remove the 2 year old project I had there, I stil find it quite confusing.

Log in to reply

Suggested Topics