Proflame Remote

Hey everyone

I am getting a new gas insert fireplace w/ a proflame remote. There is no documentation (that I can find) that describe what RF frequency the remote uses, but I found 2 github projects GitHub - merbanan/rtl_433: Program to decode radio transmissions from devices on the ISM bands (and other frequencies) and GitHub - johnellinwood/smartfire: Proflame 2 Smart Home Controller that seem to support it and imply that it is 433Mhz.

Anyways - just curious - has anyone tried either? Any luck or success?

boojew,

I am just tooling up for this exact effort. We have a Jotul gas log style stove with the Proflame 2 system, and the remote with it’s lack of schedule is causing us frustration.

The remote runs slightly below 315 Mhz
I have a cheap RTL-SDR stick, and I’ve been able to use a recent version of the rtl_433 Docker Image to sniff out the remote traffic using:

docker run --device /dev/bus/usb/001/004 hertzg/rtl_433 -f 315M -g 40 -R 207

time      : 2023-01-16 21:31:51
model     : Proflame2-Remote
Id        : beefee
Cmd1      : 82
Cmd2      : 26
Err1      : 9a
Err2      : 49
Pilot     : 1
Light     : 0
Thermostat: 1
Power     : 0
Front     : 0
Fan       : 2
Aux       : 0
Flame     : 6
Integrity : CHECKSUM

Right at this moment I’m looking to see if there is a budget option to the Great Scott Yard Stick. Best price I was able to find for the stick and antenna is a little over $135, and that just went out of stock. I see some generic CC1101 modules that support 315 MHz, but nothing else that’s conveniently USB with the driver support the Yard Stick has. Most of them seem to be designed for Arduino or similar use.

Update. According to this post: Broadlink and Proflame 2, maybe we can use the Broadlink device?

My fireplace will only be installed in roughly a month… but I cant wait to start on this

I received my Broadlink RM4 pro yesterday and was able to get it working over the last 24 hours. Not wanting to sign up for yet another vendor account, I found a broadlink python3 project that allowed me to join it to my home network. From there I was able to add it through Devices and do some remote learning. It’s painful, probably in general, but especially for the Proflame 2 remote. It only sends a burst when you change settings, and the Broadlink wants you to continually transmit (hold the button down) while it sweeps the RF range to key in on the frequency. Then it asks you to hit the button you want to learn.

I then found the “better” way of doing it is to use the BroadlinkManager tool, I choose the Docker container route. This was still a little clunky, and for some reason by Broadlink RM4 pro went offline and I didn’t realize it. A quick reboot brought it back but -1 point for that. The learning process was a little clearer in BroadlinkManager but still painful. Along the way it dawned on me that my Toyota keyfob was in the 315 Mhz range and I was able to hold down the lock button on my remote, get it to detect the frequency, and then flip the Proflame 2 setting to get it to get the code.

I got the codes imported into Home Assistant, started futzing with an input_boolean to use as virtual switch to use it with a Generic Thermostat. I got a little stuck here and started wondering what would happen if I sent a Flame: 6 code and the the Home Assistant stopped responding (Docker container or server crashed, etc.). Or given my recent experience of the Broadlink device going completely off the network without explanation, that happening again.

The long and short of it is now I have the concern that there is no fail-safe mode. The remote proper sends continual updates of it’s current state roughly every 9.5 minutes or do. I was hoping this meant that the stove/receiver would eventually “timeout” if it didn’t get a constant request to stay on, say after 20 minutes (one missed transmission). I turned off the remote, and issued the cloned flame: 6 signal from Home Assistant. I let 46 minutes go by and the room heated up pretty well beyond what we’d normally get it to go do and there was no sign of it going out.

I’ve got all kinds of ideas about how to rig up a device to act as a failsafe. Plug the stove itself into a smart outlet that has a an auto-off a counter I can “kick down the curb” with Home Assistant and if that doesn’t ping it’ll auto shut itself down. Maybe an ESP device rigged up to take place of the ON/OFF/REMOTE switch on the front of the stove.

I’ll probably try another test with a Flame: 1 and Fan: 6 setting so neither the room nor the stove gets uncomfortably hot while testing and see if maybe it was 50, 60, 90 minutes but my gut says there isn’t a failsafe. I’ve also been thinking about whether I can just leave the remote on with a ‘fail-safe’ high temp, but I think with it’s constant 9.5 minute ping they’re going to fight each other.

Great post… but in terms of failsafe - there isnt one with the remote either. So while it is an issue - its only an issue if you intend to automate it, I guess. For me, its more about voice control and having something easier to access than the remote.

Out of curiosity, any reason you went the Broadlink route? I am planing to use an RTL2832U w/ the RTL433 project.

boojew,

Reasonable point on the lack of failsafe with the existing remote. I actually need to do some testing, see if the remote will fire a final all-off command as the batteries are removed or something.

To the best of my knowledge, and I’m no expert, aren’t RTL2832U / RTL_433 receive only? I did use that combination to sniff out the traffic from my current remote, see post 2 above.

The SmartFire project recommends transceivers with TI CC1101 chipsets, like the YardStick One. My primary driver towards BroadLink over a YardStick One was lack of affordable availability at the moment ($37 for the BroadLink RM4 pro off eBay vs $137 or so for the YardStick One+antenna if you can find it). There was also the uncertainty of the integration of a random python script to Home Assistant (SmartFire) compared to using a fully supported Broadlink that others haver reported success in both Home Assistant and Proflame 2 cloning…

YardStick One (or knowing me a budget clone) might still be the best long-term option for me. I do like the idea of being able to control each burner/fan/light setting discretely is attractive.

Got it! So (and I have tested NONE of this yet) my understanding is the work in Smartfire was integrated into rtl_433 and that it is not purely receive. I’m also using a $40 usb transceiver that someone on YouTube recommended. So we’ll see. Also getting data into home assistant may require the rtl docker container and another specific to mqtt. Haven’t gotten that far yet - but that’s what I remember. I’ll report back in about a month (I hope) when the fireplace is installed and I can test properly.

Edit: reading the docs of RTL_433 more closely, I just realized that you are right. It is only a data receiver. :man_facepalming: thanks for pointing that out

@DaBer could you post a link to the RM4 you purchased? I am reading that some dont have the ability to learn over 315Mhz… which seems odd…

boojuew,

I bought this specific item: BroadLink RM4 Pro Smart IR/RF Remote Control Hub Blaster With Sensor Cable W6R2.

I was confused and thought I was buying the one that included the HTS2 “Temperature and Humidity sensor” when it said “With Sensor Cable W6R2” but the listing clearly states otherwise. I have no idea what kind of “Sensor Cable” this has, but it looks like a standard USB cable to me.

I will admit in hindsight the listing doesn’t mention 315 MHz at all. It sounded to me like some of the older ones only did 433 MHz and the newer ones added the ability to do 315 MHz. The BroadLink RM4 Pro Device Manual.pdf from the iBroadLink Downloads page says:

The product hardware supports 305~335MHz and 430~440MHz but 305~335MHz is not available in some countries / regions such as United States, Canada, Australia, New Zealand and all EU countries.

I wonder if maybe they lock that down in the app based on phone regional configuration, but the restriction isn’t enforced in Wi-Fi gateway mode, or whatever it’s called? This might explain why they’re not advertising the feature because it may not work. I can tell you it’s working for me, but your mileage may vary.

1 Like

Reading through the Device Manual again, it looks like I was indeed supposed to get the one that included the HTS2 “Temperature and Humidity sensor” when it said “With Sensor Cable." I contacted the seller, hopefully they’ll make good on it.

1 Like

Awesome info. Thank you. I will purchase from Amazon where if it doesnt work, atleast i know the return will be easy!

I am watching this closely. I am planning for a gas insert installation sometime soon, and wanted to find out whether there were existing integration solutions before I proceed (as any good HA junkie would do).

Once you capture on/off state of the fireplace, please tell me you’ve already planned to play a long, repeating track of a wood fireplace cracking and snapping on a nearby networked speaker… (here’s a full 10-hour video you can get the audio from!).

For me personally, I have two actual wood stoves that heat the core house. When it comes to heating the house I rarely appreciate the crackling and snapping over the heat they provide, but I can appreciate the sentiment.

I shut down and pulled a battery on the Proflame 2 remote on Friday. I also installed the scheduler-component and scheduler-card integrations to create daily schedules for the generic_thermostat. I had a few failures to trigger the off command to the Jotul, so I added a few extra b64 entries to the script that fires the off RF:

script:
  turn_off_jotul_fan_0_flame_0:
    sequence:
      - service: remote.send_command
        target:
          entity_id: remote.broadlink_rm4_pro_1
        data:
          command: - 
          -b64:...
          -b64:...
          -b64:...
          -b64:...
          -b64:...

Seems like overkill but I haven’t had a fail to turn off on the first try since. I can find supporting forum posts, but I’ll try and highlight what I needed to do to get it running. I created an input_boolean Helper that is used to define/set whether the heater is on or off. Then I created an automations to fire the “on” or “off” script depending on the state of that input_boolean “switch” Helper. This is what I have configured as the “heater:” in the generic_thermostat climate entry.

This may sound text-book correct or terribly made-up. I honestly can’t be sure if this is the right way to do any of it but it seems to be working, for now. I thought this graph of thermostat setpoint, flame on, and room temperature (with Govee 1AAA BT sensor) was really informative.

I still really want to find a fail-safe way of protecting against a run-away situation. Anyone know of budget plugs that have an on-board auto-off timer? I’ve heard some of the Wemos have it. The Kasa ones I have do not, but it is an often requested feature.

I happened to have a VIVOSUN Digital Heat Mat Thermostat Temperature Controller we’re not currently using from the greenhouse. I did some quick testing:

  • Put the VIVOSUN between the wall outlet and the Jotul with a setpoint of 69F.
  • Turned the generic_thermosat up until it barely turned on with the setpoint of 65.5F. Jotul turned on with Flame:6.
  • Unplugged the BroadLink from the wall.
  • The temperature raised above the setpoint, and the generic_thermostat went to idle, but the Jotul stayed running since it didn’t get the Flame:0 command.
  • The temperature in the room continued to rise, and when it hit 70.5F or so on the VIVOSUN, power was removed from the Jotul and all the valves closed and I would consider the stove safe, like if the power had failed.
  • When the temperature came back down below the setpoint, the Jotul powered back on, beeped and clicked a few times but remained off.

I need to do some tweaking to get the VIVOSUN setpoint high enough that it won’t be triggered by normal use, but low enough that it will failsafe before wasting a ton of fuel or overheating the space. I will also probably need to buy another similar thermostatic outlet, as I’m sure this or the replacement will be needed again in the greenhouse.

The good news with this solution is that it shouldn’t turn back on until the control channel that failed is fixed and Home Assistant can send another Flame: command to turn it back on.

Updated the next day:

I made another improvement today. I had been playing with RF codes from the Proflame remote with Thermostat:1, Pilot:1, Fan:0, Flame:0 for off, and just toggling Flame:6 (high) for on. All the other Light, Power, Front, Aux values were also 0 (off).

I created a second Helper: input_boolean.master_bedroom_quiet_time. I recorded a second set of RF codes, Thermostat: 1 and Pilot:1 remained, but for the “non-quiet” RF codes I have Fan:2 and toggle Flame:0 and Flame:1 (low) for on. Now I can not only control the on/off of the Jotul but depending on whether I have “Quiet Time” toggled it runs different presets.

For those that haven’t experienced the joy of these units, they’re a little on the loud side. If you use a lower flame setting the stepper motors(?) click a dozen or so times getting you there. It’s probably not something you’d really care about in a noisy room in the middle of the day, but if you’re trying to sleep it is quite annoying to me. The fan is also a little buzzy and while it’s running it can cause a vibration/rattle if the door is a little loose, or the grate on the top isn’t sitting tight.

I plan on creating a Quiet Time schedule, and have it toggle this value at a slightly different time than the schedule I have created for the thermostat setback. The cool thing is you can also toggle the switch manually, and then it’ll go back to the schedule during the next scheduled time event.

I was able to incorporate both the input_boolean state changes as well as an every 5 minute (/5) trigger into the same automation a set of if then else blocks under it. So now I have one single automation that will turn on or off or resend the current state RF code. Before I had an on Automation, and off Automation, and a resend Automation as I’m still learning the platform.

This is amazing info. Your use case is definitely more sophisticated than mine, but I love the details. They give me lots of good ideas!

I finally got my unit delivered and I have the RM4 and remote in hand yay! I have been able to learn RF codes - but dumb question… I see you referring to commands like Flame:0. Are you purely observing these from RTL_433 or do you have actually know a method to encode the various commands to build your own?

Thanks

Edit: Also, did you have any issues w/ Broadlink Manager not detecting your RM4 Pro? It is SUPER tempermental for me. Sometimes it detects my unit right away - sometimes not at all.

boojew,

I’m glad you find it helpful, that is the goal.

I generally fire up rtl_433 (rtl_433 -f 315M) and make sure what is sent while I’m “recording” is what I actually want. You can see a example output in my first reply in this thread. I am considering adding a feature request to the smartfire project to have it generate the IR/RF command strings, so we don’t need to go through all this recording nonsense.

I have not had Broadlink Manager (Docker container on the same OpenWrt box running Home Assistant in Docker) fail me once with detecting the RM4 Pro. I have definitely had to learn a code, try it to find it didn’t work, re-learn, try it, etc… You should really be able to tell it: learn on 315 MHz - and then just send the code - skip this detection step.

The Proflame 2 remote only sends on state change. This means you need to be constantly changing between state changes (Flame:0 / Flame:6 or similar) to “constantly” transmit. I’m lucky that my Toyota keyfob transmits on 315 MHz as well. I can “trick” Broadlink Manager to learn on 315 MHz by smashing the lock button, and then when it’s ready, trigger the flame on or whatever.

I can get into more details on how I got Broadlink Manager to learn each combined code if you think that’ll help. You basically need to set it up configured with all the settings you want (thermostat on) and use the temperature control to trigger the flame on and off. It’s not terribly intuitive, but I was able to getting it working to meet my needs.

Thanks for all the info. For me, the issue is Broadlink Manager just not seeing the RM4… Getting it to lock on 315Mhz, is annoying w/ the Proflame2 - but not super hard. I dont have a keyfob available to me to test with - so oh well.

I have been debating trying to see if I can get Smartfire to build my own command encoder. The framework is all there, but my python skills are low… but I THINK it could be doable. We’ll see if I can find some time over the next few days/weeks.

@DaBer so I think I may have a working encoder. Maybe. My problem is I dont have my remote serial # and not quite sure how to get it w/o an SDR quite yet. Do you have yours? If so, could you send me the serial that I assume you get RTL_433 delivers, the command execute (e.g. flame:1) and the output? That way I can compare?

I think with that, I can probably test this more and maybe even build a decoder. If not, I can probably still work this out - just might be harder.

Edit: Actually nevermind… I dont think building a decoder here makes sense. RTL_433 does that already. I would be re-inventing the wheel for nothing. I just need to figure out my device serial so I can test this better :slight_smile: