def alarmsniffer():
    alarm_codes_ein = ['1361', '4433', '5201', '5393']
    alarm_codes_aus = ['1364', '4436', '5204', '5396']
    receiver = RCSwitchReceiver()
    receiver.enableReceive(2)
    while True:
        if receiver.available():
            received_value = receiver.getReceivedValue()
            if (received_value):
                if any(str(received_value) in s for s in alarm_codes_ein):
                    alarm('EIN')
                    subprocess.call("sh monitor_on.sh &> /dev/null",
                                    shell=True)
                if any(str(received_value) in s for s in alarm_codes_aus):
                    alarm('AUS')
            receiver.resetAvailable()
        time.sleep(.5)
示例#2
0
class RCSwitch(Switch):
    def __init__(self, triggervalue, shutdownvalue, exitvalue):
        self.receiver = RCSwitchReceiver()
        self.receiver.enableReceive(2)
        self.triggervalue = triggervalue
        self.shutdownvalue = shutdownvalue
        self.exitvalue = exitvalue

    def get_switch_state(self):
        if self.receiver.available():
            value = self.receiver.getReceivedValue()
            self.receiver.resetAvailable()
            return {
                self.triggervalue: SwitchState.TRIGGER,
                self.shutdownvalue: SwitchState.SHUTDOWN,
                self.exitvalue: SwitchState.EXIT
            }.get(value, SwitchState.NONE)
        return SwitchState.NONE
示例#3
0
class RCSwitch(Switch):

    def __init__(self, triggervalue, shutdownvalue, exitvalue):
        self.receiver = RCSwitchReceiver()
        self.receiver.enableReceive(2)
        self.triggervalue = triggervalue
        self.shutdownvalue = shutdownvalue
        self.exitvalue = exitvalue

    def get_switch_state(self):
        if self.receiver.available():
            value = self.receiver.getReceivedValue()
            self.receiver.resetAvailable()
            return {
                self.triggervalue: SwitchState.TRIGGER,
                self.shutdownvalue: SwitchState.SHUTDOWN,
                self.exitvalue: SwitchState.EXIT
            }.get(value, SwitchState.NONE)
        return SwitchState.NONE
示例#4
0
def run_receiver():
    """ Setup the Raspberry Pi as receiver, listen for transmitted values,
         display every received number as binary < 256 if the display is attached.
         Prints the received value, bit length and protocol to the terminal. """

    receiver = RCSwitchReceiver()
    receiver.enableReceive(2)

    while True:
        print 'Listening...'
        sleep(0.5)

        if receiver.available():
            received_value = receiver.getReceivedValue()

            if received_value:
                display_number(received_value % 256, True)

                print("Value: %s | Bit: %s | Protocol: %s" %
                      (received_value, receiver.getReceivedBitlength(),
                       receiver.getReceivedProtocol()))

            receiver.resetAvailable()
示例#5
0
class Receiver433Manager(threading.Thread):

    def __init__(self, shared_queue):
        super(Receiver433Manager, self).__init__()
        # shared queue to send data (received UID)to the main thread
        self.shared_queue = shared_queue
        # init the lib
        self.receiver = RCSwitchReceiver()
        # WiringPi 2 = RPI pin 13 = GPIO 27
        self.receiver.enableReceive(2)
        # this is used to stop the arming thread
        self.stop_event = threading.Event()

    def run(self):
        print "Starting receiver 433"
        while not self.stop_event.is_set():
            if self.receiver.available():
                received_value = self.receiver.getReceivedValue()
                if received_value:
                    print "Receiver 433; Received id: %s" % received_value
                    # send the value to the main thread
                    if self.shared_queue is not None:
                        self.shared_queue.put(received_value)
                    # wait before listen again
                    time.sleep(1)
            self.receiver.resetAvailable()
            # take a breath
            time.sleep(0.1)

    def stop(self):
        """
        Stop the thread
        :return:
        """
        self.stop_event.set()
        self.receiver.resetAvailable()
from pi_switch import RCSwitchReceiver
from Config import Config

#---------------------------------------------------------------------------#
# Configure receiver
#---------------------------------------------------------------------------#
receiver = RCSwitchReceiver()
receiver.enableReceive(Config.RPi_Pin_Receiver)

num = 0

#---------------------------------------------------------------------------#
# Loop and wait for commands
#---------------------------------------------------------------------------#
while True:
    if receiver.available():
        received_value = receiver.getReceivedValue()
        if received_value:
            num += 1
            print("Received[%s]:" % num)
            print(received_value)
            print("%s / %s bit" %
                  (received_value, receiver.getReceivedBitlength()))
            print("Protocol: %s" % receiver.getReceivedProtocol())
            print("")

        receiver.resetAvailable()
prevHum=0

def onConnect(client, userdata, flags, rc):
        print("Connected with result code "+str(rc))


mqttClient = mqtt.Client("c3")
mqttClient.on_connect = onConnect

#mqttClient.connect("54.187.15.61",1883)
mqttClient.connect("54.67.96.20",1883)

message={}

while True:
    if receiver.available():
        received_value = receiver.getReceivedValue()

        if received_value:
            num += 1
            print("Received[%s]:" % num)
            print(received_value)
            print("%s / %s bit" % (received_value, receiver.getReceivedBitlength()))
            print("Protocol: %s" % receiver.getReceivedProtocol())
            print("")
            lst = [int(i) for i in str(received_value)]
            print(lst[1])
            try:
            	checkSum=lst[0]+lst[1]+lst[2]+lst[3]+lst[4]
            	checkSum=checkSum*lst[4]
            except: