Help needed with controlling electric fire via RF

Posted on
Tue Oct 05, 2021 1:35 pm
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Help needed with controlling electric fire via RF

Hi,

I recently had an electric fire installed (New Forest) which you can operate via its RF remote control for on/off, heating control, schedules etc
https://britishfires.com/inset-electric-fires/new-forest-electric-fire-1600/

All I want to do is be able to control it on/off via Indigo and was hoping I could use the brilliant RFXCOM plug-in and a RFXtrx433 transceiver which I currently use to control my Somfy blinds around the house.

I’ve contacted the company who make the electric fire but no RF info from them regarding remote control output.

I took the RF remote cover off and printed on the PCB is the words QSD-433-001-V1(1) and QSD-433-002-V1(2) which a quick Google brings up the FCC report for its EMC testing :P
https://www.flickr.com/photos/194027406@N05/51555399954/in/photostream

https://www.flickr.com/photos/194027406@N05/51555399999/in/photostream

Full FCC doc at following link
https://fcc.report/FCC-ID/2AV93-EF40RC/5110878.pdf

From the FCC report it seems the remote does operate on 433.92MHz so I was hoping RFXCOM would pick it up in the debug log but it doesn’t when I use the remote to turn the fire on and off.

Does anyone have any ideas I could try to make it discoverable and controllable in indigo.
I’ve enabled all the different protocols/makes in RFXCOM on the hope one would work but it didn’t.

Hope you can help
Mr Robot

Posted on
Wed Oct 06, 2021 5:49 am
MartinG offline
Posts: 116
Joined: Aug 19, 2016

Re: Help needed with controlling electric fire via RF

Watching this with interest as I have a similar application, though I've approached it slightly differently.

I don't have an RFXCOM, but instead use an WiFi connected Arduino-compatible device with a 433MHz transceiver attached. It's powered by a USB charger and placed in my house for best connectivity to the devices I want to control.

The embedded software (cobbled together by me from others GitHub contributions) monitors an MQTT topic to which I can publish from any other relevant system. All I do is publish the required 'string' via MQTT and the device sends it. All decisions on what to send are made elsewhere, which means I can trigger actions from Indigo, Node-Red or anywhere else.

The same device can run a 'sniffer' program to decode the various RF remote controls we have and it's usually quite straightforward to figure out the protocol. I haven't yet looked at controlling my fire, but I've had success with the kitchen extractor fan, garden lighting, interior lighting, all of which now respond to Alexa.

Posted on
Wed Oct 06, 2021 6:27 am
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Re: Help needed with controlling electric fire via RF

Hi MartinG,

Your setup sounds interesting and obviously works by the sounds of it. I was hoping to get my Fire control working with what i currently have (RFXtrx433 unit and RFXCOM plugin).
If its not possible i may have to look into something similar to what you have for my solution.

I have tried the RFXmgr software to try and 'sniff' the RF code of the remote however it didnt detect anything unfortunately, unless im doing something wrong. I tried updating rfxtrx433 unit to latest FW too but no joy. Hoping someone on here with a similar setup can shed some light on what to try next.

Good to hear of your setup though and i may be in touch to ask some questions if thats cool if i cant get mine working.

Cheers
MR Robot

Posted on
Thu Oct 07, 2021 8:31 am
MartinG offline
Posts: 116
Joined: Aug 19, 2016

Re: Help needed with controlling electric fire via RF

Of course - happy to help where I can.

Posted on
Thu Oct 07, 2021 2:22 pm
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Re: Help needed with controlling electric fire via RF

Hi MartinG,

From speaking with RFXCOM guys it seems my RF remote may use Frequency Shift Keying (FSK) for its modulation type which is why I can’t use rfxtrx to detect my remote as it doesn’t support it.

Would it be possible to list the wifi arduino you use and 433MHz transceiver so I can purchase similar ones as then I know I’ll have a chance of getting it to work that way instead.

Cheers
Mr Robot

Posted on
Fri Oct 08, 2021 1:45 am
MartinG offline
Posts: 116
Joined: Aug 19, 2016

Re: Help needed with controlling electric fire via RF

It's an Adafruit Feather Huzzah: https://www.adafruit.com/product/2821

The 433MHz RF modules I used are a generic chinese brand from Amazon: https://www.amazon.co.uk/gp/product/B086ZN29TQ/

However... there's next to no circuitry on the RF module, so I suspect they use a simple on/off modulation approach rather than FSK. So if your remote does use FSK, I doubt this will solve the problem.

Posted on
Fri Oct 08, 2021 4:28 am
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Re: Help needed with controlling electric fire via RF

Thanks,

I've ordered an Arduino Uno WiFi and a couple of those FS1000A transceivers you mentioned so will give it a go and find out if it uses FSK or not i guess.

I'll keep the thread updated with progress in case anyone else has similar needs to mine.

Cheers for help

Posted on
Thu Oct 14, 2021 1:22 am
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Re: Help needed with controlling electric fire via RF

Hi MartinG,

So, i ended up sending the Arduino Uno Wifi Rev2 back as its not compatible with some of arduinos own examples due to new different chipset it appears.
I have therefore gone down the same route as yourself with the Adafruit Feather Huzzah.

Would you be willing to sharing your software you install on your device to monitor MQTT topic and trigger RF control?
No worries if not, im sure i can figure it out given enough time.

Thanks

Posted on
Thu Oct 14, 2021 10:43 am
MartinG offline
Posts: 116
Joined: Aug 19, 2016

Re: Help needed with controlling electric fire via RF

Here it is. I've masked my network details, but otherwise untouched. I'm certain this could be refactored to read more cleanly, so please be kind :-)

The other part you'll need is the sniffer, so you can determine the appropriate RF control message format. Unfortunately, I've managed to lose that :-(

Code: Select all
#include <ArduinoJson.h>

/*
 Based on the SendDemo example from the RC Switch library
 https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

#define wifi_ssid "MyWiFiSSID"
#define wifi_password "MyWiFiPassword"
#define MQTTServer "MyMQTTServerIPAddress"

RCSwitch mySwitch = RCSwitch();
WiFiClient espClient;
PubSubClient MQTTclient(espClient);

void setup() {
  Serial.begin(9600);
  setup_wifi();
  MQTTclient.setServer(MQTTServer, 1883);
  MQTTclient.setCallback(callback);

  /*
 * RF 433 set up
 */
 
  mySwitch.enableTransmit(14); // Transmitter is connected to Arduino Pin #10 on Uno, #14 on Feather Huzzah

  mySwitch.setPulseLength(392); // Optional set pulse length. 392 for LED lights, 352 for extractor
  mySwitch.setProtocol(1); //Set protocol (default is 1, will work for most outlets); 1 for water feature lights,11 for extractor fan
  mySwitch.setRepeatTransmit(5); // Optional set number of transmission repetitions.

}

void setup_wifi() {
    delay(10);
    // We start by connecting to a WiFi network
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(wifi_ssid);
    WiFi.begin(wifi_ssid, wifi_password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
}

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived on topic: ");
  Serial.print(topic);
  Serial.print(". Message: ");
  String messageTemp;
 
  for (int i=0;i<length;i++) {
    Serial.print((char)payload[i]);
    messageTemp += (char)payload[i];
  }
  Serial.println();

  //Allocate the JSON document
  StaticJsonDocument<192> doc;
 
  // Deserialize the JSON received document
  DeserializationError error = deserializeJson(doc, messageTemp);

  // Test if parsing succeeds.
  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  // Fetch values.
  //
  // Most of the time, you can rely on the implicit casts.
  // In other case, you can do doc["time"].as<long>();
  const char* ControlMessage = doc["ControlMessage"];
  long Protocol = doc["Protocol"];
  long PulseLength = doc["PulseLength"];
  long RepeatTransmit = doc["RepeatTransmit"];

  // Print values.
  Serial.println(ControlMessage);
  Serial.println(Protocol);
  Serial.println(PulseLength);
  Serial.println(RepeatTransmit);

  mySwitch.setPulseLength(PulseLength);
  mySwitch.setProtocol(Protocol);
  mySwitch.setRepeatTransmit(RepeatTransmit);
  mySwitch.send(ControlMessage);
 
}

void reconnect() {
    // Loop until we're reconnected
    while (!MQTTclient.connected()) {
        Serial.print("Attempting MQTT connection...");
        // Attempt to connect
        if (MQTTclient.connect("RFTxRx")) { //* See //NOTE below
            Serial.println("connected");
            MQTTclient.subscribe("rftxrx");
        } else {
            Serial.print("failed, rc=");
            Serial.print(MQTTclient.state());
            Serial.println(" try again in 5 seconds");
            // Wait 5 seconds before retrying
            delay(5000);
        }
    }
}

//NOTE: if a user/password is used for MQTT connection use:
//if(client.connect("TestMQTT", mqtt_user, mqtt_password)) {
void pubMQTT(String topic,float topic_val){
    Serial.print("Newest topic " + topic + " value:");
    Serial.println(String(topic_val).c_str());
    MQTTclient.publish(topic.c_str(), String(topic_val).c_str(), true);
}



void loop() {
  if (!MQTTclient.connected()) {
    reconnect();
    delay(1000);
  }
  MQTTclient.loop();
 
}

Posted on
Thu Oct 14, 2021 1:57 pm
MR_ROBOT_ offline
Posts: 28
Joined: Feb 11, 2019
Location: Lancashire, UK

Re: Help needed with controlling electric fire via RF

Thanks so much for this I’m sure it will come in very useful when I get the rf sniffer working. For some reason I just can’t get it to decode any of my rf remotes. Maybe my cheap receivers are duff.

I’m certain some of my remotes I.e. Somfy ones for blinds should be being picked up. I’m using them to check my setup is working before sniffing rf of electric fire remote.

The mission continues.

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 4 guests