RF 433mhz receiver and decoding

I have three 433mhz remotes that control various things in the house ( a light, a screen motor, and an awning)

I tried to decode the signals from these remotes using a 433mhz receiver below:

with the rc-switch library I can read the received signal

/*
Simple example for receiving

GitHub - sui77/rc-switch: Arduino lib to operate 433/315Mhz devices like power outlet sockets.
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
}

void loop() {
if (mySwitch.available()) {

Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );

mySwitch.resetAvailable();
}
}

which outputs "Received 4194396 / 24bit Protocol: 1" when I press a button on the light remote.

strangely though the other two remotes do nothing. I get no output.

I decided to check if the remote is transmitting on that frequency and if the receiver is picking up anything at all.
I don't have an oscilloscope so I connected the data pin on the receiver to an LED and resistor. When I press a button on the 2 remotes that don't work with rc-switch the LED blinks bright on then off (the LED is faintly on even without any signal transmitted) so I'm getting something just not something that RC-switch can decode it seems.
I've opened one of the remotes and it has a HS1527C.

What can I do here to try and replicate the signals transmitted by these 2 remotes? Why doesn't rc-switch output the signal received?
Can I somehow hardwire instead to read the signal and replicate it?

Cue2:
What can I do here to try and replicate the signals transmitted by these 2 remotes? Why doesn't rc-switch output the signal received?
Can I somehow hardwire instead to read the signal and replicate it?

Decoding unknown RF signals is a complicated subject. The 433 MHz just tells you the center frequency of the transmission. There are many other parameters. e.g. analog vs digital modulation, bandwidth and modulation methods. On top you have symbol encoding and can have encryption.

The receiver you used supports only OOK (On–off keying) which is the simplest digital modulation.

A reasonable way to analyze RF signals is to use an SDR dongle. They are like computer radio scanner and are cheap compared to spectrum analyzers and oscilloscopes. You can record the signal and look at them. Even then what you want to do is not easy. You can read more about that here.

https://www.rtl-sdr.com/about-rtl-sdr/

After that recreating a radio signal is not trivial. You will need to find hardware that supports the modulation, find libraries and configure it correctly. Even then it might not work because there are subtle differences. Just look at how many products are supposed to work together, sometimes from the same company, and they do not.

Sorry for the bad news. Google is your best choice to see whether somebody has done this for the products you have.

I recommend this tutorial for decoding unknown RF remote signals: Reverse Engineer Wireless Temperature / Humidity / Rain Sensors — Part 1 « RAYSHOBBY.NET

Even if your household devices use the basic "RCSwitch" approach, there are lots of variations on the protocol, and unfortunately the code in the RCSwitch library does not properly recognize or decode/encode all of them.

The approach in the above tutorial gives you the tools that allow you to recognize and fix such cases.

Here are a few tips
try GitHub - 1technophile/NewRemoteSwitch: NewRemoteSwitch library v1.2.0 (20140128) for Arduino 1.0 Made by Randy Simons http://randysimons.nl/

get another receiver, that one are probably the worst one you can get...
if you cant get another one try making a coil loaded antenna(google it) that helps a bit

and for the last question you might be able to hardwire the signal and read it,(be carefull you might destroy it)
just open up the transmitter identify gnd and the signal line to the transmitter
connect that to Arduino gnd and pin 2(if you are using uno or pro mini or similar )(maybe use a 1-10k something resistor just in case...)

and then use: GitHub - cyborg5/IRLib2: Library for receiving, decoding, and sending infrared signals using Arduino and rawRecv to receive the signal after that you can probably use ir lib to send the signal if you turn off the modulation first and maybe invert the signal

or you can write a program that just turn the transmitter on and off according to the raw data you got from rawRecv

Oh i almost forgot you need to turn off the pull-up after you start the receiver

myReceiver.enableIRIn(); // Start the receiver
digitalWrite(2, LOW);

Best of luck