Rauchmelder an Relais zu FS20s8m

Begonnen von Atze, 16 November 2015, 18:45:29

Vorheriges Thema - Nächstes Thema

Atze

Wir haben hier noch 8 x RM100-3 liegen welche ich ja untereinander vernetzten könnte.  Zielsetzung ist aber, dass ich genau sagen soll welcher Melder ausgelöst hat. Ist Doof wenn die Nachtschicht mal wieder alle Räume absuchen muss um herauszufinden welcher Funkmelder mal wieder einen Fehlalarm ausgelöst hat.

An den Rauchmelder liegen permanent 4,5V an und bei Alarm wird wird dieser Wert für jeweils für 2 Sekunden unterbrochen.

Das FS20s8m sendet ja von 0-24v input. Kann ich also so vergessen (gäb ja nur Alarm)

Jetzt kam mir grad die Idee die Rauchmelder an einem 8 Kanal Relais"http://www.amazon.de/Kanal-Relay-Relais-Module-Arduino/dp/B00AEIDWXK" anzuschliessen um im Alarmfall mit einem FS20s8m ans FHEM zu senden.  Relais sind ja ACTIVE-LOW

Ich habe schon 4er Module die ihre Arbeit gut verrrichten an den Gpios des Raspy.

In diesem Fall ist halt kein Raspberry in der nähe und ich würde a das Relais mit einem 5V Netzteil bestücken und vor den einzelnen Eingängen die kommenden 4,5V der Rauchmelder mit einem Widerstand auf 3,3V runterschrauben und die Ausgänge auf den fs20s8m legen.

Hat schon mal jemand was ähnliches gemacht oder habt ihr evt. einen bessen Vorschlag ?

ZitatRelais 8 Relaistyp Wechselschalter Steuerstrom 15-20mA Versorgungsspannung (VCC): 5 V Stromaufnahme Spule ca. 70 mA Spulenwiderstand ca. 70 Ohm Stromaufnahme Steuereingang ca. 4 mA Schaltleistung Gleichspannung 30 V DC / 10 A Schaltleistung Wechselspannung 250 V AC

Gruss Andreas
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

AndreasHH

Moin,

Du empfängst doch die Signale von den Rauchmeldern bereits über den CUL.

Jeder RM hat seine eigene Adresse (Welche sich leider bei jedem Batteriewechsel ändert).

Ich lasse bei mir z.B. bei Alarm die DECT-Telefone (über Fritzbox) mit entsprechendem Text (welcher Rauchmelder) signalisieren.

Alternative:

room Alarm und dort die Rauchmelder etc. übersichtlich zusammenfassen.

Setzt natürlich jeweils voraus, dass die Rauchmelder Aussagekräftige Namen erhalten haben.

Gruss

Andreas
FHEM 5.8, FB7490, FB7390, Linux-Server, Raspi 1, Raspi 2, FHEM2FHEM, div. FS20, div. FHT, div. HMS, div. Homematic, MQTT, ESP8266, Arduino

Atze

Schon klar, aber der RM100-3 ist Drahtgebuden, kein Funk. 
Bei unseren RM100-2 habe ich es ähnlich gemacht wie du geschrieben hast. Diese sind in den zugänglichen Büros verteilt.
Die Drahtgebundenen sollen aber in die Lager, Werkstätten etc.

Gruss Andreas
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Atze

Ich habs jetzt anders gelöst.
Vielleicht kanns ja mal einer gebrauchen.

Alarmsignal von der LED des Rauchmelders über Spannungsteiler (Widerstände R1=10K, R2=5K) in den Analogeingang des Arduino.

Wenn sich der Wert grösser 0 ist, wird per FS20S8M ein Signal weitergegeben und eine LED leuchtet auf.

Das ganze läuft im Bilderrahmen mit Flucht/Gebäudeplan. Pro Raum eine LED. Auf diese Weise verbinden wir grade mehr als 20 Rauch und 5 GAs/Co2 Melder.

Codeanpassungen müssen in Zeile 21,24,29,36. Beispiel ist für 8 Meldeeinheiten
/*
V.1.0 / 2915119
Rauchmeldezentrale für max. 16 Rauchwarner am Arduino Mega 2560
Sobald der Widerstand sich an einem Eingang ändert wird ein Schaltbefehl
an ein FS20S8M gegeben und die dazueghörige LED leuchtet.
Externer Reset, Betriebsleuchte und LCD für Meldungen ink.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
/*set the LCD address from I2C LCD DISPLAY VERSION 3 to 0x27 for a 20 chars 2/4 line display
Mega2560 used Pin
    SDA Pin 20
    SCL Pin 21
Set the pins on the I2C chip used for LCD connections:
                   addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
*/
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
const int LCDBacklightPin = 3;

// Anzahl der Meldeeinheiten, Räume etc.
const int sumMelde = 8;

//   Rauchmelder Anschlüsse auf A0-A7
int sensorPin[sumMelde] = {0,1,2,3,4,5,6,7};
// Rauchmelder Werte
int sensorValue[sumMelde];

// Raumzuordnung
const String room[sumMelde] = {"Raum 1","Raum 2","Raum 3","Raum 4","Raum 5","Raum 6","Raum 7","Raum 8"};

// Niedrigster und höchster Pin für Ausgänge, gege. anpassen
const int lowestOutPin = 22;
const int highesOutPin = 47;

// Betriebsanzeige LED
int ledbetr = 22;

//    Warn LED
int led[8] = {30,31,32,33,34,35,36,37};

//    FS20S8M für Rauchmelder
int s8M[8] = {40,41,42,43,44,45,46,47};

void setup() {     
  // LCD initialisieren
  lcd.begin (16,2); // for 16 x 2 LCD module
  lcd.setBacklightPin(LCDBacklightPin,POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home (); 
 
  analogReference(DEFAULT); 
 
  // benötigte Pins auf OUTPUT setzen
  for (int x = lowestOutPin; x <= highesOutPin; x++) {
    pinMode(x, OUTPUT);   
  }

  // Vorbelegungnen
  digitalWrite(ledbetr, HIGH);   
  for (int x = 0; x < sumMelde; x++) {
    digitalWrite(s8M[x], HIGH);
  }     
}

void ReadData(){
  // analoge Eingänge überprüfen 
  for (int x = 0; x < sumMelde; x++) {
    // 2 mal lesen mit pausen damit ein stabiler wert entsteht
    sensorValue[x] = analogRead(sensorPin[x]);
    delay(10);
    sensorValue[x] = analogRead(sensorPin[x]);
    delay(10);     
  }   
}

void WriteData(){
  for (int x = 0; x < sumMelde; x++) {
     if (sensorValue[x] > 0.0){
      lcd.clear ();
      lcd.setCursor ( 0, 0 );
      lcd.print ("Rauchalarm");
      lcd.setCursor ( 0, 1 );
      lcd.print (room[x]);
      digitalWrite(s8M[x], LOW); 
      digitalWrite(led[x], HIGH);
      delay(1000);
      // Pin zurücksetzen sonst dauersenden des FS20S8M
      digitalWrite(s8M[x], HIGH);
      // Entscheidung was im Alarmfall passiert, gege. anpassen
      delay(10000);     
    }   
    else {
      lcd.setCursor ( 0, 0 );
      lcd.print ("Keine Meldungen");       
      digitalWrite(led[x], LOW);   
    }
  }
}

void loop() {       
  ReadData();
  WriteData(); 
  delay(150);
}



Gruss Andreas

FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight