Alarmanlage nur über Fensterkontakte

Begonnen von blitzcom, 24 August 2013, 07:56:41

Vorheriges Thema - Nächstes Thema

betateilchen

ja so ähnlich, es gibt eine globale loop, die man im Zweifel für alles verantwortlich machen kann...

fhem führt intern einen Timer, der gespeicherte Aufgaben abarbeitet. Wenn Du ein at definierst, wird das in die Liste der abzuarbeitenden Aufgaben übernommen und zu gegebener Zeit ausgeführt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bugster_de

wir reden aneinander vorbei. Ich weiß jetzt aber auch nicht mehr genau, wie ich das noch besser beschreiben soll.
Wiki kann das besser als ich: http://en.wikipedia.org/wiki/Real-time_operating_system
Siehe dort unter Scheduling und Algorithms

Ob ein at nun um 19:30:00 oder 19:30:01 kommt ist vergleichsweise egal. Wenn aber ein Homematic Device eine Message sendet und FHEM diese in einer gegebenen Zeit verarbeiten muss, da sonst MISSING ACK kommt, dann ist das Timing nicht mehr ganz egal. Und dann haben wir ein Echtzeit System.

betateilchen

Wir reden nicht aneinander vorbei. Du hast lediglich ein falsches Verständnis der Arbeitsweise von fhem und daran angeschlossenen Komponenten.

Beispiel:

Zitat von: bugster_de schrieb am Do, 29 August 2013 20:20Wenn aber ein Homematic Device eine Message sendet und FHEM diese in einer gegebenen Zeit verarbeiten muss, da sonst MISSING ACK kommt

Das ist nämlich nur die halbe Wahrheit. Ein angefordertes ACK kann nämlich auch direkt von der HM-Hardware (HMLAN oder HMUSB) kommen, ohne dass fhem damit überhaupt irgendetwas zu tun haben muss. Ich habe zum Beispiel die Buttons einer gepairten Homematic Fernbedienung direkt mit dem HM-USB-CFG gepeered (ja, gepeered!) und damit kommt das ACK und die grüne Lampe beim Knopfdrücken direkt von diesem Adapter und nicht von fhem. Damit habe ich sämtliche Timingprobleme eliminiert, die mich vorher wochenlang fast in den Wahnsinn getrieben hatten. Da hatte ich nämlich den Effekt, dass ich nach dem Drücken eines Fernbedienungsknopfes eine rote Rückmeldung bekommen habe, die Funktion von fhem aber trotzdem ausgeführt wurde.

Außerdem hast Du bisher immer nur von at und anderen fhem-internen Verarbeitungen gesprochen, nicht von Timingproblemen bei Homematic.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bugster_de

Hi,

ok, das kann natürlich sein, dass ich die Basis da nicht verstanden habe (ich suche ja Aufklärung und Wissen).

Die Frage nach den Homematic Problemen werden parallel in einem anderen Fred erörtert. Ich versuchte den Zusammenhang hin zu bekommen.

Das heisst, wenn ein Rolladenaktor mit einer Fernbedienung gepeered ist, dann wird die ganze Kommunikation direkt im HMLAN abgewickelt und FHEM muss gar nichts tun?

andi.riese

Der Einbrecher sucht sich eine Aussenlampe und verursacht erst mal einen Kurzschluss, sodass die Hauptsicherung rausfliegt und die Fritzbox nicht mehr arbeitet.
Dann steigt er beim Fenster rein...  

blitzcom

Hallo Andi,

erstmal habe ich keine Außensteckdose und wenn ich eine hätte, könnte man die entsprechend bei Alarmanlage "an" verriegeln.
2. Würde dann die entsprechende Sicherung und nicht die Hauptsicherung fallen. Da es ein altes Haus ist, ist auch kein FI verbaut. Und zudem setzt das voraus, dass der Einbrecher sich die Zeit zum suchen nimmt und/oder vermutet, dass eine Alamanlage verbaut ist. Das ist aber nicht ersichtlich, d.h. die Fensterkontakte sind nicht einsehbar. Der Überraschungseffekt das dann bei Alarm intern eine Blitzleuchte angeht sollte den Einbrecher zumindest abschrecken.

Trebor5

Hallo zusammen,

ich lese schon eine ganze Zeit mit.

Also ich habe mir bei Conrad einen Fingerprint gekauft (100€) damit öffne ich meine Tür und mit einem Taster denn ich daneben eingebaut habe und gedrückt halte kann ich die Alarmanlage ein/ausschalten. Der zustand wir mit einer grünnen und roten led aussen angezeigt.
Sprich der Fingerprint ( bei gedrückten taster ) schaltet ein Homematic Funkschalter. Aussensteckdosen habe ich auch aber mein Raspberry/Fritzbox läuft an einer USV die es schon für 100€ gibt ( die hält bei stromausfall schon mal 6-8 Stunden) da wechsel ich alle 3 Jahre mal die Batterie für 20€. Die ganzen sensoren sprich Fensterkontakte und Rauchmelder die ich noch zum Alarmmelden benutzen will funzen sowieso über Batterie also kein Problem.
NotifymyAndroid habe ich für ein paar Cent als vollversion.

Jetzt habe ich zum ein und ausschalten folgendes gemacht:

#################### EINSCHALTEN ########################
define act_on_SCHARF_on notify Finger_Print:open { fhem("set ANLAGE_STATUS warten ;; set Flurlicht on ;; define verzoegert_Flurlicht_ein at +00:00:11 set Flurlicht off ;; define verzoegert_scharf at +00:00:20 set ANLAGE_STATUS scharf ") }

somit kann ich am Flurlicht sehen das die Anlage auch eingeschaltet wurde.

######### AUSSCHALTEN #############
define act_on_SCHARF_off notify Finger_Print:closed { fhem("set Flurlicht on ;; set ANLAGE_STATUS unscharf ;; define verzoegert_Flurlicht_aus at +00:00:11 set Flurlicht off ") }

somit kann ich am Flurlicht sehen das die Anlage auch ausgeschaltet wurde.

Somit geht der Alarm los:
define act_on_ALARM_on notify Haustuer:open { if (Value("ANLAGE_STATUS") eq "scharf") {{NMA_send("ALARM","ALARM WURDE AUSGELÖST!",2,"Robert")} {fhem("set Flurlicht on ;; define verzoegert_Flurlicht_ALARM at +00:02:00 set Flurlicht off ")}}}

FRAGE 1:
Wie kann  ich hier noch alle fenster bei zustand Scharf der Alarmanlage einbauen ?

FRAGE 2 :
Wo ist hier der Fehler bei zustand der Alarmanlage "warten" und ein fenster ist gekippt oder noch offen will ich auch eine Meldung auf dem Handy bekommen ?

Das ist der Code:
define act_on_FENSTER1_on notify FENSTER.*:open { if (Value("ANLAGE_STATUS") eq "warten") {NMA_send("Fenster noch offen","FENSTER NOCH OFFEN! Alarmanlage ausschalten und Fenster kontrolieren",2,"Robert")}}

define act_on_FENSTER2_on notify FENSTER.*:tilted { if (Value("ANLAGE_STATUS") eq "warten") {NMA_send("Fenster noch offen","FENSTER NOCH OFFEN! Alarmanlage ausschalten und Fenster kontrolieren",2,"Robert")}}

WER KANN MAL EINEN TIPP GEBEN  ?

Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

C. Zimmermann

Ich hänge mich mal hier dran, da ein Teil der Diskussion in eine ähnliche Richtung geht.
Ausgangslage: AndroidTablet für Sprachausgabe, Homematic Schließerkontakt über Schlüsselbrett (-> für Away Status) und massig Tür-Fenster Kontakte.

Bei Verlassen der Wohnung wird der Schlüssel mitgenommen und folgendes Skript ausgelöst:
define keyChristophAway notify SchluesselChristoph:open {
my $Inhalt = "";;
my $Verabschiedung = "Auf wiedersehen Chrisdtof.";;
my $statusFensterBad=(ReadingsVal("FensterBad","state","unkown"));;
my $statusFensterBuero=(ReadingsVal("FensterBuero","state","unkown"));;
my $statusFensterGaesteWC=(ReadingsVal("FensterGaesteWC","state","unkown"));;
my $statusFensterKueche_links=(ReadingsVal("FensterKueche_links","state","unkown"));;
my $statusFensterKueche_rechts=(ReadingsVal("FensterKueche_rechts","state","unkown"));;
my $statusFensterSchlafzimmer=(ReadingsVal("FensterSchlafzimmer","state","unkown"));;
my $statusFensterWohnzimmer_links=(ReadingsVal("FensterWohnzimmer_links","state","unkown"));;
my $statusFensterWohnzimmer_rechts=(ReadingsVal("FensterWohnzimmer_rechts","state","unkown"));;
if ($statusFensterBad eq "opened"){
$Inhalt = $Inhalt . "Bad "};;
if ($statusFensterBuero eq "opened"){
$Inhalt = $Inhalt . "Büro "};;
if ($statusFensterGaesteWC eq "opened"){
$Inhalt = $Inhalt . "Gäste WeeCee "};;
if ($statusFensterKueche_links eq "opened"){
$Inhalt = $Inhalt . "Küche "};;
if ($statusFensterKueche_rechts eq "opened"){
$Inhalt = $Inhalt . "Küche "};;
if ($statusFensterSchlafzimmer eq "opened"){
$Inhalt = $Inhalt . "Schlafzimmer "};;
if ($statusFensterWohnzimmer_links eq "opened"){
$Inhalt = $Inhalt . "Wohnzimmer "};;
if ($statusFensterWohnzimmer_rechts eq "opened"){
$Inhalt = $Inhalt . "Wohnzimmer "};;
if ($Inhalt eq ""){
fhem "set androidTablet ttsSay $Verabschiedung";;}
else{
fhem "set androidTablet ttsSay $Verabschiedung . Es sind noch folgende Fenster offen $Inhalt"}
}


Im Prinzip geh ich alle Fensterkontakte durch, frag deren Status ab und hau, füge wenn ein Fenster offen ist den String zu $Inhalt dazu und haue dann, je nach $Inhalt die entsprechende Verabschiedung raus. Gibt es hier nun die Möglichkeit den Code übersichtlicher bzw. in irgendeiner Form einfacher zu gestalten und keine dämlichen ifs die ganze Zeit zu verwenden? Geschweige denn ein Art "structure" mit Readings?

Eine Idee hab ich zumindest: Machbar wäre natürlich nen SuperDummy, der immer den Status aller Fenster als State hat, d.h. die Fensterkontakte pushen einzeln ihren Namen bei Öffnung rein und löschen ihn wieder sobald sie geschlossen sind. Den könnte man dann auch für die Alarmanlage nutzen und hätte dann auch gleich die geöffneten Fenster.

Ralph

FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

Elektrolurch

Hallo,

mit der Scharfschaltung über PRESENCE -> kann ich auch nur von abraten. Nicht alle Handys sind rund um die Uhr im Netzwerk eingebucht.
Taster an der Tür -> schön und gut. Ich habe ein 8-Kanal Sendemodul FS20 verbaut und da muss man einen Code für das desaktivieren eingeben.
Außerdem hat meine Alarmanlage mehrere Schaltzustände: aus, aktivieren, scharrf, d deaktivieren.
Während "aktivieren" läuft, kann man das Haus verlassen oder die Alarmanlage oder Eingabe des Sicherheitscodes wieder deaktvieren. Während der Deaktivierung kann man sie nicht wieder scharf - schalten (1 Min).
Bei den Fensterkontakten musst Du mal untersuchen, was die wann senden. Die von FHT senden nämlich sowohl "closed", als auch "open", so alle 2 Minuten. Und Du brauchst ja nur das Event "open". Wenn das bei offenem Fenster wiederholt kommt, muss Du das Attribut event-on-change setzen, ansonsten wierd Dein notify ständig getriggert.
Ich setze zusätzlich noch Bewegungsmelder ein, die auch das Treppenhauslicht während "dunkel" einschalten.
Und eigentlich ist es besser, einen potentiellen Einbrecher schon bei der Annäherung ans Haus in die Flucht zu schlagen, d.h. draussen Bewegungsmelder und drinnen Hund bellen lassen oder Rolläden fahren....

Mit readingsGroup kann man dann alle Kontakte ordentlich sortiert mit Status und Öffnungszeiten darstellen lassen und wenn man eine Fritzbox hat, kommt man über VPN auf die fhem-Seite und hat alles auf einen Blick.

Elektrolurch

Elektrolurch
configDB und Windows befreite Zone!