[WITHDRAWN - Use the new Broadlink integration by @tomw] NATIVE Broadlink RM/RM Pro/RM Mini/SP driver

You can... The logs do not add to the conversation... but they do, as you have seen, allow me to fix bugs with the app/driver... Once the issues are resolved, they are no longer needed...

Well, @JNS has just shown me how to hide the logs - very clever! - so I did that instead.

I've done some testing around this using 2 remotes (the unit remote and a Pebble Wifi IR Blaster I had purchased with the unit) and found the same result. I did also find the command to set the van horizontal and the van vertical positions are independent. The temp and fan speed commands seem to all be combined together.

I have just posted the latest version of the app/driver, which includes the function you need... generateIR().
you would call it as:

generateIR( offBurst, onBurst, leadIn, bitmap, leadOut)

For your specific case, the values for offBurst, onBurst, leadIn and leadOut would be the example I used in the first post.

You would build the command bitmap from your desired settings (mode, setpoint, fan, etc) using the information from the RemoteCentral thread you referenced (there's a PDF)...

This way, you create the command without having to load up 450 different IR codes.

The HE does not expose a file system to apps or drivers, so not possible.

Also... Not possible. All of the data is gzip encoded, or is transmitted as a zip file. Not possible to unzip/ungzip the data, so not a viable solution.

Yeah, I know... But HE does expose URLs, within the Apps Code/Drivers Code editors...I was thinking of an app that would load (one-time operation, no on-going cloud connection) the Broadlink code file from a remote resource, not the HE filesystem, either a file::/// URL, presenting a target local to the machine running the browser with data already extracted from the zip file and formatted for the driver, or a remote URL pointing to a Broadlink site -- essentially an HE app that performs the same role as the IHC app, giving HE users access to all the stored Broadlink IR codes without the 'learning' step.

Anyway, that's a lot of handwaving on my part, and development that I certainly don't have the time to do myself, and you've already given us a working driver & a huge jumpstart on making it work with HVAC units.

Many thanks!

RC HVAC Manager (BETA)
(Remote Controlled HVAC Manager)

Features:

  • Supports creating multiple virtual thermostats
  • Supports generating and sending Generic and specific IR/RF signals using a Broadlink RM Pro or RM Mini device
  • Supports Fujitsu, Mitsubishi, Toshiba, Daikin, Sanyo and other protocols
  • Supports device refresh to help prevent device setting from being changed

Before you begin:

  1. Make sure you hubitat is upgraded to Hubitat platform v2.1.7 or greater
  2. Make sure that the Broadlink manager is installed and configured

Installing the package:

  1. On the web interface, go to "drivers code", then click on "New driver"
  2. Copy/Paste the driver code into the editor, then click "Save". This will create a user driver named "RC HVAC Thermostat (BETA)"
  3. On the web interface, go to "Apps code", then click on "New App"
  4. Copy/Paste the Parent App code into the editor, then click "Save". This will create a user Application named "RC HVAC Manager (BETA)"
  5. On the web interface, go to "Apps code", then click on "New App"
  6. Copy/Paste the Child App code into the editor, then click "Save". This will create a user Application named "RC HVAC Manager Child (BETA)"

Installing the Application:

  1. Click on "Apps", then click "Add User App". On the user application list, click on "RC HVAC Manager (BETA)".

Installing the Virtual Thermostat driver:

  1. from the Applications main menu, click on "Create a New RC HVAC Device". The devices page will load .
  2. The application will present the "Configure Device" page. Enter a name for the device in the area provided.
  3. Click on "Select a Temperature Sensor Device" and select a device to provide the current temperature for the RC HVAC Thermostat device.
  4. Click on "Select a Transmitter Device" and select a device to use to send control signals to the real HVAC device. NOTE: There is no "Remote Transmitter" capability, so the device picker uses "actuator". Make sure you select a device that is a Broadlink device.
  5. Click on "Select HVAC Device Protocol" and select a device protocol to use to send control signals to the real HVAC device.
  6. The application will create the driver for the selected device, then return to the "Main Menu" page.
  7. Create a thermostat tile for the RC HVAC Thermostat device on a dashboard, and use the tile to send commands to you HVAC unit.

Generic Protocol:
The generic protocol uses the virtual thermostat state to build a Remote Code name and sends it to the transmitter device as a Stored Code name. The code name is built as
{Device Name}_{thermostatMode}_{fanMode}_{temperature Setpoint}

If your device is named "BR_AC", then the code names generated would be similar to:

BR_AC_cool_auto_20
or
BR_AC_dry_medium_24

The codes used by the generic protocol should be imported/learn using the Broadlink Manager application.

Fujitsu / Toshiba / Daikin / Mitsubishi0x01 / Mitsubishi0x21 / Sanyo / Sanyo152 Protocols:
The Fujitsu / Toshiba / Daikin / Mitsubishi0x01 / Mitsubishi0x21 / Sanyo / Sanyo152 Protocols use the virtual thermostat state to create the control command for the HVAC device, and uses the broadlink device to generate and send the code. This does not require importing or learning codes.

.

Version History - RC HVAC:

  • v0.01 :
    Initial public beta

  • v0.02 :
    added option to emulate device operating state
    added option to use inlet and outlet temperature sensors for determining operating state

  • v0.03:
    fixed refresh function missing from driver
    fixed extraneous temperature conversion when hub is set to farenheit
    fixed multiple code transmissions on device state change
    fixed app crash when temperature setting out of range for transmitter device

  • v0.04:
    fixed issue that prevented code transmission
    added (experimental) support for Daikin HVAC units
    added (experimental) support for Mitsubishi HVAC units (two variants)
    added automatic updating of driver/dashboard tile parameters based on the selected protocol

  • v0.05:
    added (experimental) support for Toshiba HVAC units

  • v0.06 through v0.10d: Private beta testing - Thanks @Sebastien

  • v0.11:
    Added ability to retransmit the current thermostat state automatically (every 5 / 10 / 15 / 30 / 60 minutes)
    Added Option to select which dashboard temperature setpoint to use for Auto mode (default is average of heat and cool)
    Added more robust handling and determination of Operating State
    Added option to use Inlet and Outlet acceleration sensors if supported by the Inlet and Outlet temperature sensor (Tested with Samsung Multisensor)
    Added (experimental) support for Sanyo HVAC units (64bit IR Codes)
    Added support for thermostat setpoint deadzone when determining operating state
    Added option to delay transmission of device state (for 3 seconds) to allow suppression of multiple command transmissions when the thermostat state changes quickly - such as when using a dashboard tile)

  • v0.12:
    added (experimental) support for Sanyo HVAC units using 152bit IR codes

  • v0.13:
    fixed support for Sanyo HVAC units using 152bit IR codes

  • v0.14:
    verified working support for Sanyo152 protocol. Fixed unit did not beep to acknowledge receipt of command.

  • v0.15 through v0.18: Private beta testing - Thanks @peterbrown77.pb

  • v0.19:
    added - verified support for Hitachi HVAC protocol
    added - verified support for Mitsubishi0x01B HVAC protocol

  • v0.20:
    fixed - Changing device name in RC HVAC Manager did not change the name/data in the thermostat device

  • v0.21: Private Beta testing. thanks @jasonbalsor

  • v0.22:
    added - Support for six Panasonic known variants - PanasonicRKR variant is verified.

  • v0.23:
    fixed - "Refresh" command restored driver to defaults
    added - restore previous thermostat state on hub reboot or device refresh

  • v0.24:
    added - Support for two known Gree variants - Gree1 variant is verified. Thanks @glabbe0299

  • v0.25:
    added - Support for a second Fujitsu protocol - Fujitsu120 (verified)

  • v0.26:
    fixed - addition of Fujitsu120 protocol broke Fujitso protocol
    .

Latest available RC HVAC package is v0.26

3 Likes

Yeah... not a jumpstart... a full on leap.... 8-}

1 Like

Wow! This is really great!

I really love the detailed installation instruction! Note: I found the following:

  • If the Child app is installed first, we get the following error message:
    "Metadata Error: Parent App 'cybr:RC HVAC Manager (BETA)' not found on line 9"
  • Installing the parent first resolves this.

The mode options in the tile is missing "Heat" all others seem to be present:


This seems to come from the "supportedThermostatModes : " state that currently only has "[off, auto, cool, dry, fan]". Note that I have been able to set to "Heat" directly from the driver and it works.

I did a quick test on all the available settings and everything seems to work on my Fujitsu Mini-Split. Some great work!!!

Is there documentation somewhere (from Hubitat I would assume) on the tile or the device options? In some previous testing I had done with a virtual device, the tile would turn red when heating and blue when cooling - right now, it remains gray... Probably something I have not set properly...?

2020-01-27%20(2)

Some questions:

  1. What does the "20" on top represent? I assume it is the associated sensor's temperature? It has since changed to that temperature... Forget I asked...
  2. In the title, there is also an "unknown". Is there a way to tell what it is looking for? Maybe if I had a humidity sensor, it could use that?
  3. I assume that the "Cool" number indicates to what degree I want it to cool, so if the unit detects a temperature that is higher than this, it will move to Cooling mode. Same for the "Heat" number where it will heat up to that. Is that a correct assumption?
  4. When raising the temperature in the dashboard tile, a command is sent each time the arrow is pressed. Is this something that can be configured so that it would only send the value a second or so after it stopped changing?
  5. I keep getting the following message in my log. Anything I need to resolve?:
    "2020-01-27 19:04:09.528 [warn]Error occured with UDP message: SocketTimeoutException: Receive timed out"

Again, wow! This is a really great app!

Fixed. Thanks for catching that!

Fixed in the next release.

No. The only documentation collected in one place is the documentation from Hubitat, HERE, and it is the general documentation of how to install and configure the app... Any other thermostat tile information is sprinkled throughout the forum...

No, not something that you didn't do properly. Thermostats work as two part devices, and the tile reflects this. The first part is control... You click on a control, and the tile sends the control to the driver from processing... The second part is notification... The driver commands the HVAC device into "heat" mode... The device responds to the driver with the mode it is in... Usually, within a reasonable amount of time, the device tells the driver that it is in "heat" mode. The driver then publishes this information (sends an event) so that any app/dashboard tile that is interested knows that the device is now in "heat" mode. For the dashboard tile, when it gets this information, it notifies you by turning the tile red.

Because using a Remote Control to operate an HVAC device is a one way connection, we can not receive and information from the device about it's current operating state. So we have no information about the actual state of the device, so we have no information to send to the tile, so everything stays grey...

As the App is further developed, I can add some logic to give a best guess at the state of the device based on settings and reported temperature, but without feedback from the device, it will be nowhere near 100% accurate...

The 20 represent, as you surmised, the temperature value provided by the selected temperature sensor. When the device is first created, will use a default value of 20 as the initial value. If you selected the temperature sensor in an RM Pro device, it will update every 10 minutes. If you selected some other type of temperature sensor (such as the sensor in a Hue Motion sensor), it will update at the rate set by the driver for the sensor. If the value does not update, then I will need to add a polling mechanism to the app...

This "unknown" would normally display the current operating mode of the HVAC device. As mentioned, the HVAC device does not report status, so I did not have the driver set the attribute that sets this display... I think it's better to display "unknown" rather that a totally fictitious "heating" or "cooling" or "idle".

If you have some way of definitively determining that the HVAC unit is operating (ie: a vibration sensor, an energy monitoring plug for a portable unit, or whatever you can think of), I could add an optional sensor input for that...

That is a logical assumption, but is incorrect. What you describe is what a HVAC unit with a smart thermostat can possibly do when set to "auto". Traditional thermostats typically have cool/off/heat settings and maintain a heat setpoint when operating in "heat" mode, and a separate cool setpoint when operating in "cool" mode. Most, if not all, smart thermostats added an "auto" mode... But they way that works is by having an additional setpoint for "auto" mode, and they do heating or cooling to keep the temperature within a predefined range, typically +/- 2 degrees. Very few use the method that you describe. The Remote Controller HVAC units work differently... They do not have setpoints. Every command you send to the unit includes the set temperature. When in "auto" mode they use the predefined range method...

The thermostat tile does not know what method the thermostat will use for auto mode, so it presents both setpoints... It is the up to the driver to figure it out.

In the RC HVAC thermostat driver. the heat setpoint is used for every mode except "cool" and "dry" (this is a mistake... no temperature picker in dry mode)... And thinking about it, as most portable/mini split/ Remote Controlled systems are predominantly cool only (heat is a fairly recent addition), I will probably change it to use the cool setpoint for everything but heat.

Yes. Currently, you click on a command button, the command is sent to the device... Yes, I realize this is awkward... It is something I plan to address in a future release...

This is unexpected... It is not a critical error, but does mean that your RM device is missing packets... Does it happen frequently??? what device is the message attached to??? Can you provide logs showing what is happening for 10 to 15 seconds before error message?

Good point, and good question! Having something that would allow a tile color change would be awesome as it allows for a quick visual on what is happening. If the option below is not possible, then could it be matched with the selected mode?

Good question... The most accurate approach that I can think of would be to make use of 2 sensors. I could place one by the air intake, and one by the air output. If the air output is warmer than the air intake, it is heating. If it is cooler, it is cooling. Otherwise, it is jut on fan mode. I'm willing to buy a couple of Samsung Multi-Purpose (door) sensors to try this out if this type of logic can be setup. These sensors have the added benefit of also being motion/tilt sensors if it is something that could be useful... Not sure how good they would be at detecting vibrations though... -EDIT- Okay, I decided to go ahead and ordered them from Amazon. They are due to arrive next week on Monday.

The warning appeared at least a dozen times. It doesn't occur anymore and my past logs don't seem to go back far enough. If I see it again, I'll be sure to send you the logs. As I can recall, they came from the Broadlink device. I didn't see anything else from the device before hand, if it reoccurs, I'll capture more.

At the risk of repeating myself... I am quite impressed with what you did with this! I have had the Broadlink learn the codes for tilt up and tilt down, so can control pretty much everything that I need now with those two commands combined with the RC HVAC Manager Apps/Driver. Everything else useful I see on the remote (timer, energy saving program, etc.) I would be able to program through the rule machine. My next step will be to remove the batteries from my remote and put it away for a long, long time... :smiley:

Added to v0.02 of the app (available from the first post)

Added to v0.02 of the app (available from the first post)

Did you learn codes to do the up/down swing in individual steps?? The protocol description I found has control information for horizontal/vertical sweep modes, but not the individual steps...

Unfortunately, there is no support horizontal/vertical sweep in any of the capabilities available... and no tile that is really appropriate for these functions.

Great additions!!!

I've updated my app to version 0.02 of the code and noticed that it created two child apps, so I tried to delete the one from yesterday (version 0.01). It gave me an error message indicating it was in use by my device. I therefore removed the associated child device and that seemed to resolve the issue - I was able to delete the duplicate Child App code, and then re-created my device in the app. So I think that in order to update the child app, it may be necessary to delete it first...?

The delay with sending the commands worked like a charm! Emulation of the mode is also working great for Heat and Fan modes! When I set it to "cool" mode, it moved to "idle" instead which was unexpected... The mini-split does seem to be idle, so it may be a correct status, just a problem with the command being sent...?
2020-01-28

When in auto mode and cooling, the mode and description are correctly showing "Cooling".
Interestingly, when there is an impossible condition as seen below, the result is "Error", which is quite accurate though I wonder if it would help/be possible to show some explanation of the cause.
2020-01-28%20(1)

Could I ask for a little tweak to the order of the modes? Could "heat" be either before or after "cool" instead of having it on the bottom? It seems a better fit...

As soon as I receive my multi-sensors, I will test the functionality around it to see how it works. (I'll also add pictures showing the sensor placements.)

Yes, I was able to have BroadLink learn the horizontal and vertical individual step commands. It will go up a step at a time and then down a step at a time (Vertical). Same for left/right (Horizontal). This is good for setting them permanently to the same setting, which is what I need so I'm good. For now, I am using a button tile with the command name as the "Button Number". As a reference, here are the codes I am using for this:

Fujitsu-ChangeVanes-Horizontal

260076006B360E0E0D0F0D290D0F0D290D0F0D0E0D0F0D290D290E0E0D0F0D0E0D290E290D0E0E0E0D0F0D0E0D0F0D0E0D0F0D0F0D0E0D0F0D0E0D0F0D0F0D290D0E0E0E0D0F0D0E0D0F0D0E0E0E0D290D0F0D0F0D0E0D2A0D0E0D0F0D290D290D2A0D290D0F0D0E0D2A0D290D0E0E0E0D0F0D0E0D2A0D000D05

Fujitsu-ChangeVanes-Vertical

260076006B360D0F0D0E0D2A0D0E0D2A0D0E0D0F0D0E0D2A0D290D0F0D0E0D0F0D290D290E0E0D0F0D0E0D0F0D0F0D0E0D0F0D0E0D0F0D0E0E0E0D0F0D0E0D2A0D0E0D0F0D0E0D0F0D0F0D0E0D0F0D290D0F0D0E0D0F0D0E0E0E0D290D2A0D0E0D2A0D290D0F0D290D290D0F0D0E0E290D0E0D0F0D290D000D05

Agreed. Same goes for the "Outdoor Unit Low Noise" button that is available on the physical remote. Like the horizontal/vertical sweep, it is sent along with the mode, temperature and fan signal. If ever we can have customizable tiles, I assume some more functionality like the swing and the "Outdoor Unit Low Noise" could be added...? I think we may be pushing the envelop a bit... :smiley:

This is terrific!

Minor issues:

Changing the temperatureScale from F vs C -- there doesn't seem to be a preference setting (though I could change it in the driver code).

If the temperature device feeding into the virtual thermostat is using a different unit for temperature, there are, um, odd results...see the thermostatSetpoint value below, which is 64F.

Current States

  • coolingSetpoint : 20.5
  • heatingSetpoint : 20.5
  • supportedThermostatFanModes : [auto, high, medium, low, quiet]
  • supportedThermostatModes : [off, auto, cool, dry, fan, heat]
  • temperature : 68
  • temperatureDisplayScale : F
  • temperatureScale : C
  • thermostatFanMode : auto
  • thermostatMode : off
  • thermostatSetpoint : 147.0
Log Entries

app:6202020-01-28 11:07:17.159 pm debug[Bedroom HVAC] (sendCode_Fujitsu)

dev:5912020-01-28 11:07:16.182 pm errorgroovy.lang.MissingMethodException: No signature of method: user_driver_cybr_RC_HVAC_Thermostat__BETA__653.refresh() is applicable for argument types: () values: [] Possible solutions: every(), every(groovy.lang.Closure), grep() (refresh)

app:6202020-01-28 11:07:14.010 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: heatingSetpoint, value: 20.5, isStateChange: true]

app:6202020-01-28 11:07:13.877 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: thermostatSetpoint, value: 147.0, isStateChange: true]

app:6202020-01-28 11:07:13.865 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: thermostatSetpoint, value: 147.0, isStateChange: true]

app:6202020-01-28 11:07:13.760 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: coolingSetpoint, value: 20.5, isStateChange: true]

app:6202020-01-28 11:07:13.756 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: thermostatMode, value: off, isStateChange: true]

app:6202020-01-28 11:07:13.735 pm debug[Bedroom HVAC] (handleThermostatEvents) Received event [source: DEVICE, name: thermostatFanMode, value: auto, isStateChange: true]

dev:5912020-01-28 11:07:13.729 pm debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with 147.0 (originally - 64)

dev:5912020-01-28 11:07:13.725 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 147.0 to 147.0

dev:5912020-01-28 11:07:13.720 pm warn getTemperatureHE: temperature scale conversion required. temperature value 64C = 147.0F

dev:5912020-01-28 11:07:13.716 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 147.2 to 147.0

dev:5912020-01-28 11:07:13.706 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: temperatureScale - HE = F VS = C

dev:5912020-01-28 11:07:13.701 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: testing for temperature scale conversion for temperature value 64

dev:5912020-01-28 11:07:13.682 pm debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [off] cooltemp [64] heattemp [64]

dev:5912020-01-28 11:07:13.676 pm debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with 20.5 (originally 20)

dev:5912020-01-28 11:07:13.668 pm warn getTemperatureHE: temperature scale conversion required. temperature value -6.5C = 20.5F

dev:5912020-01-28 11:07:13.664 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 20.3 to 20.5

dev:5912020-01-28 11:07:13.652 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: temperatureScale - HE = F VS = C

dev:5912020-01-28 11:07:13.645 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: testing for temperature scale conversion for temperature value -6.5

dev:5912020-01-28 11:07:13.640 pm warn getValidHeatSetpoint: heat setpoint restricted to minimum temperature value 64

dev:5912020-01-28 11:07:13.636 pm debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value -6.5

dev:5912020-01-28 11:07:13.632 pm warn getTemperatureVS: temperature scale conversion required. temperature value 20.0F = -6.5C

dev:5912020-01-28 11:07:13.627 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value -6.666666666666667 to -6.5

dev:5912020-01-28 11:07:13.618 pm debug getTemperatureVS: temperatureScale - VS = C HE = F

dev:5912020-01-28 11:07:13.614 pm debug[RC HVAC Thermostat (BETA)] getTemperatureVS: testing for temperature scale conversion for temperature value 20.0

dev:5912020-01-28 11:07:13.609 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 20 to 20.0

dev:5912020-01-28 11:07:13.593 pm debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 20

dev:5912020-01-28 11:07:13.588 pm debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with 147.0 (originally - 64)

dev:5912020-01-28 11:07:13.584 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 147.0 to 147.0

dev:5912020-01-28 11:07:13.580 pm warn getTemperatureHE: temperature scale conversion required. temperature value 64C = 147.0F

dev:5912020-01-28 11:07:13.575 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 147.2 to 147.0

dev:5912020-01-28 11:07:13.525 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: temperatureScale - HE = F VS = C

dev:5912020-01-28 11:07:13.521 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: testing for temperature scale conversion for temperature value 64

dev:5912020-01-28 11:07:13.499 pm debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [off] cooltemp [64] heattemp [68]

dev:5912020-01-28 11:07:13.494 pm debug[RC HVAC Thermostat (BETA)] processing 'setCoolingSetpoint' with 20.5 (originally 20)

dev:5912020-01-28 11:07:13.468 pm warn getTemperatureHE: temperature scale conversion required. temperature value -6.5C = 20.5F

dev:5912020-01-28 11:07:13.454 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 20.3 to 20.5

dev:5912020-01-28 11:07:13.450 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: temperatureScale - HE = F VS = C

dev:5912020-01-28 11:07:13.432 pm debug[RC HVAC Thermostat (BETA)] getTemperatureHE: testing for temperature scale conversion for temperature value -6.5

dev:5912020-01-28 11:07:13.427 pm warn getValidCoolSetpoint: cool setpoint restricted to minimum temperature value 64

dev:5912020-01-28 11:07:13.423 pm debug[RC HVAC Thermostat (BETA)] getValidCoolSetpoint: testing cool setpoint for temperature value -6.5

dev:5912020-01-28 11:07:13.405 pm warn getTemperatureVS: temperature scale conversion required. temperature value 20.0F = -6.5C

dev:5912020-01-28 11:07:13.398 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value -6.666666666666667 to -6.5

dev:5912020-01-28 11:07:13.393 pm debug getTemperatureVS: temperatureScale - VS = C HE = F

dev:5912020-01-28 11:07:13.386 pm debug[RC HVAC Thermostat (BETA)] getTemperatureVS: testing for temperature scale conversion for temperature value 20.0

dev:5912020-01-28 11:07:13.358 pm debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 20 to 20.0

dev:5912020-01-28 11:07:13.354 pm debug[RC HVAC Thermostat (BETA)] Executing 'setCoolingSetpoint' with 20

dev:5912020-01-28 11:07:13.350 pm debug[RC HVAC Thermostat (BETA)] Executing 'fanAuto'

dev:5912020-01-28 11:07:13.336 pm debug[RC HVAC Thermostat (BETA)] setThermostatFanMode(auto)

dev:5912020-01-28 11:07:13.316 pm debug[RC HVAC Thermostat (BETA)] Executing 'off'

dev:5912020-01-28 11:07:13.312 pm debug[RC HVAC Thermostat (BETA)] setThermostatMode(off)

Still more log entries

app:6162020-01-28 10:57:32.206 pm errorjava.lang.NullPointerException: Cannot execute null+1 on line 82 (sendCode_Fujitsu)

app:6162020-01-28 10:57:32.196 pm debug[Bedroom HVAC] [Bedroom HVAC] v0.02 - sendCode_Fujitsu called - thermostatMode [heat] thermostatFanMode [auto] thermostatSetpoint [147]

app:6162020-01-28 10:57:32.146 pm debug[Bedroom HVAC] (sendCode_Fujitsu)

There is a preference setting... It's on the Hubitat web interface under "Settings" -> "Locations and Modes" -> "Temp Scale". The App/Driver uses the temperature sensor value, which is displayed in whatever scale is set on the hub. The code transmitted to the broadlink is always in Celsius and the sendcode function does the conversion. The thermostat code was originally written to take the temperature value from a physical device that would report according to it's own externally configured setting, so conversion of the input was required. For this use of the code, the input conversion is not needed, and I didn't remove the translation code.

It has been fixed in v0.03.

Yep. My hub was already set to F, before the Broadlink driver or RC app were installed.

The set point unit display (F vs C) is fixed in v0.03.

Thanks again!

I just updated to v0.03 - It isn't sending IR signals anymore... Also, when putting it in heat mode, it goes to "Idle".
2020-01-29
Here are the logs:

Logs

app:4852020-01-29 18:33:02.528 errorjava.lang.IllegalArgumentException: Command 'generateIR' is not supported by device. on line 96 (sendCode_Fujitsu)
app:4852020-01-29 18:33:02.488 debugraw bitmap: [[20, 99, 0, 16, 16, 254, 9, 48, 113, 4, 0, 0, 0, 0, 32, 0]]
dev:5492020-01-29 18:32:59.224 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [23.0] originally [23])
dev:5492020-01-29 18:32:59.195 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 23 to 23.0
dev:5492020-01-29 18:32:59.192 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [23]
dev:5492020-01-29 18:32:59.187 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [23]
dev:5492020-01-29 18:32:59.183 debug getValidHeatSetpoint: no restriction for temperature value 23
dev:5492020-01-29 18:32:59.173 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 23
dev:5492020-01-29 18:32:59.169 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 23
dev:5492020-01-29 18:32:58.191 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [23.5] originally [23.5])
dev:5492020-01-29 18:32:58.185 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 23.5 to 23.5
dev:5492020-01-29 18:32:58.178 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [23.5]
dev:5492020-01-29 18:32:58.165 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [23.5]
dev:5492020-01-29 18:32:58.144 debug getValidHeatSetpoint: no restriction for temperature value 23.5
dev:5492020-01-29 18:32:58.105 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 23.5
dev:5492020-01-29 18:32:58.099 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 23.5
dev:5492020-01-29 18:32:57.364 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [23.0] originally [23])
dev:5492020-01-29 18:32:57.357 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 23 to 23.0
dev:5492020-01-29 18:32:57.350 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [23]
dev:5492020-01-29 18:32:57.333 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [23]
dev:5492020-01-29 18:32:57.329 debug getValidHeatSetpoint: no restriction for temperature value 23
dev:5492020-01-29 18:32:57.316 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 23
dev:5492020-01-29 18:32:57.304 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 23
dev:5492020-01-29 18:32:56.885 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [22.5] originally [22.5])
dev:5492020-01-29 18:32:56.880 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 22.5 to 22.5
dev:5492020-01-29 18:32:56.861 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [22.5]
dev:5492020-01-29 18:32:56.851 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [22.5]
dev:5492020-01-29 18:32:56.845 debug getValidHeatSetpoint: no restriction for temperature value 22.5
dev:5492020-01-29 18:32:56.835 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 22.5
dev:5492020-01-29 18:32:56.831 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 22.5
dev:5492020-01-29 18:32:56.507 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [22.0] originally [22])
dev:5492020-01-29 18:32:56.504 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 22 to 22.0
dev:5492020-01-29 18:32:56.485 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [22]
dev:5492020-01-29 18:32:56.481 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [22]
dev:5492020-01-29 18:32:56.470 debug getValidHeatSetpoint: no restriction for temperature value 22
dev:5492020-01-29 18:32:56.430 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 22
dev:5492020-01-29 18:32:56.418 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 22
dev:5492020-01-29 18:32:56.131 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [22.0] originally [22])
dev:5492020-01-29 18:32:56.124 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 22 to 22.0
dev:5492020-01-29 18:32:56.115 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [22]
dev:5492020-01-29 18:32:56.097 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [22]
dev:5492020-01-29 18:32:56.078 debug getValidHeatSetpoint: no restriction for temperature value 22
dev:5492020-01-29 18:32:56.058 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 22
dev:5492020-01-29 18:32:56.048 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 22
dev:5492020-01-29 18:32:55.727 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [22.0] originally [22])
dev:5492020-01-29 18:32:55.687 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 22 to 22.0
dev:5492020-01-29 18:32:55.680 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [22]
dev:5492020-01-29 18:32:55.658 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [22]
dev:5492020-01-29 18:32:55.649 debug getValidHeatSetpoint: no restriction for temperature value 22
dev:5492020-01-29 18:32:55.606 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 22
dev:5492020-01-29 18:32:55.589 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 22
dev:5492020-01-29 18:32:55.387 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [21.5] originally [21.5])
dev:5492020-01-29 18:32:55.381 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 21.5 to 21.5
dev:5492020-01-29 18:32:55.375 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [21.5]
dev:5492020-01-29 18:32:55.343 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [21.5]
dev:5492020-01-29 18:32:55.335 debug getValidHeatSetpoint: no restriction for temperature value 21.5
dev:5492020-01-29 18:32:55.306 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 21.5
dev:5492020-01-29 18:32:55.303 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 21.5
dev:5492020-01-29 18:32:54.886 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [21.5] originally [21.5])
dev:5492020-01-29 18:32:54.872 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 21.5 to 21.5
dev:5492020-01-29 18:32:54.867 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [21.5]
dev:5492020-01-29 18:32:54.859 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [21.5]
dev:5492020-01-29 18:32:54.855 debug getValidHeatSetpoint: no restriction for temperature value 21.5
dev:5492020-01-29 18:32:54.835 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 21.5
dev:5492020-01-29 18:32:54.827 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 21.5
dev:5492020-01-29 18:32:54.706 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [21.0] originally [21])
dev:5492020-01-29 18:32:54.681 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 21 to 21.0
dev:5492020-01-29 18:32:54.677 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [21]
dev:5492020-01-29 18:32:54.674 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [21]
dev:5492020-01-29 18:32:54.670 debug getValidHeatSetpoint: no restriction for temperature value 21
dev:5492020-01-29 18:32:54.658 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 21
dev:5492020-01-29 18:32:54.654 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 21
dev:5492020-01-29 18:32:54.269 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [21.0] originally [21])
dev:5492020-01-29 18:32:54.258 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 21 to 21.0
dev:5492020-01-29 18:32:54.254 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [21]
dev:5492020-01-29 18:32:54.233 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [21]
dev:5492020-01-29 18:32:54.229 debug getValidHeatSetpoint: no restriction for temperature value 21
dev:5492020-01-29 18:32:54.226 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 21
dev:5492020-01-29 18:32:54.222 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 21
dev:5492020-01-29 18:32:54.115 debug[RC HVAC Thermostat (BETA)] setCommonSetpoint: Executing 'setCommonSetpoint' with [20.5] originally [20.5])
dev:5492020-01-29 18:32:54.107 debug[RC HVAC Thermostat (BETA)] clampTemp: triming value 20.5 to 20.5
dev:5492020-01-29 18:32:54.104 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' - thermostatMode [heat] cooltemp [20] heattemp [20.5]
dev:5492020-01-29 18:32:54.098 debug[RC HVAC Thermostat (BETA)] processing 'setHeatingSetpoint' with [20.5]
dev:5492020-01-29 18:32:54.095 debug getValidHeatSetpoint: no restriction for temperature value 20.5
dev:5492020-01-29 18:32:54.090 debug[RC HVAC Thermostat (BETA)] getValidHeatSetpoint: testing heat setpoint for temperature value 20.5
dev:5492020-01-29 18:32:54.087 debug[RC HVAC Thermostat (BETA)] Executing 'setHeatingSetpoint' with 20.5
dev:5492020-01-29 18:32:52.511 debug[RC HVAC Thermostat (BETA)] Executing 'heat'
dev:5492020-01-29 18:32:52.508 debug[RC HVAC Thermostat (BETA)] setThermostatMode(heat)

Anything I may have done wrong in the app or driver update?

It looks like the code is working correctly... I can't tell why the dashboard tile is not updating... but from the error, and the lack of debugging, that is generated, it looks like the device has lost track of the transmitter device and the selected options...

Go into the HVAC device and reselect the temperature sensor and transmitter devices and the other options (such as enable delay)... That should resolve the problem.

Yes, I had updated the BroadLink driver (with the RC HVAC Driver code) instead of the RC HVAC Driver, causing everything to stop working... I'll have to be more careful next time! That said, it's all fixed now - Thanks!

I have just posted the latest version, v0.04, of the RC HVAC package:

  • fixed issue that prevented code transmission
  • added (experimental) support for Daikin HVAC units
  • added (experimental) support for Mitsubishi HVAC units (two variants)
  • added automatic updating of driver/dashboard tile parameters based on the selected protocol

As always, available from the first post in the thread.

I have just posted the latest version, v0.05, of the RC HVAC package:

  • added (experimental) support for Toshiba HVAC units