Neues Modul für Alarmanlage

Begonnen von Prof. Dr. Peter Henning, 08 September 2014, 20:43:06

Vorheriges Thema - Nächstes Thema

iHome

DANKE plin für die schnelle Antwort. Ein Teil gelöst - Zweiter noch offen

Dein Hinweis hat geholfen was die Auslösung (Fenster.Buero) angeht. Im Printscreen sieht man nicht den ganzen Text: Wäre "Fenster.Buero offen" gewesen.
und ich hätte schwören können das ich dies so "Fenster.Buero:offen" eingegeben hatte (steht ja im Wiki auch so drin. Doch dann hab ich dies mit dem blank probiert, da im Eventmonitor ja auch kein Doppelpunkt ersichtlich war. Na ja etwas dazugelernt.

Das Ein- und Ausschalten der Alarmanlage geht aber noch nicht
Eingang.Wandschalter.Bt01:trigger  (laut Wiki) geht nicht
Eingang.Wandschalter.Bt01:contact.*open.*
Eingang.Wandschalter.Bt01:contact.*trigger.*
gehen leider nicht.

Im Eventmonitor wird folgendes übertragen:
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter battery: ok
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter CMDs_done
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter Eingang.Wandschalter.Bt01 Short
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 Short (to Vact_dev)
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 trigger: Short_58
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 triggerTo_Vact_dev: Short_58
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 trigger_cnt: 58

Besten Dank

iHome

So jetzt gehts auch bei mir mit dem Ein und Ausschalten der Alarmanlage
Notify on regExp muss heissen:
Eingang.Wandschalter.Bt01.*trigger.*

Muss mich wohl mal intensiver mit den RegExp auseinandersetzen.

Vielen Dank für den richtigen Schubser...



mumpitzstuff

Zitat von: mumpitzstuff am 09 März 2017, 00:13:12
Gibt es eine Möglichkeit ein | irgendwie zu Escapen, wenn man es bei den Actors als Set Action verwenden möchte? Konkret wollte ich eine pushbullet Nachricht mit einem Titel verschicken. Dummerweise ist bei pushbullet | das Trennezichen für den Titel und für das Device. Sobald man das aber innerhalb der Action verwendet, wird die gesamte Action verworfen.

Vielleicht gehts mit cmdalias, das ich grad entdeckt habe. Ich teste das vielleicht heute Abend. Außerdem kann man damit im Verbund mit andFhem über Google die Alarmanlage mit Sprachbefehlen an und ausschalten.

Nogga

Wie kann man das Modul wieder restlos entfernen?

Prof. Dr. Peter Henning

 ::)
Indem man die FHEM-Anfängerdokumentation liest.

pah

Nogga

Vielen Dank für die aufschlussreiche Antwort.
Ich habe die Anleitung vor längerer Zeit einmal komplett durchgelesen (aber das meiste aufgrund der Menge schon wieder vergessen).

Jetzt habe ich nochmal im PDF nachgeschlagen - leider finde ich aber die relevante(n) Passage(n) zum Entfernen eines/des Moduls nicht...

Beetle2003

Hallo,

ich benötige einmal Eure Hilfe.
Sicherlich steht es irgendwo, habe es nicht gefunden!

Ich habe mich über Ostern mit diesem tollen Modul beschäftigt. Hätte ich es früher gefunden, wäre mir viel manuelle Konfiguration erspart geblieben.
So nun zu meiner Frage:
Was mache ich falsch? Ich habe einen RFID Chip mit Adruino und Homematic Schalter zum aktivieren und deaktivieren verwendet. Über Dummys funktioniert das schalten. Nun stelle ich fest, dass jedes aktivieren und deaktivieren dazu führt, dass die .cfg Dateien neu geschrieben werden und das System ein Save Config haben möchte. Das kann so doch nicht richtig sein! Wo liegt mein Fehler?

Danke Euch

mumpitzstuff

Das ist aktuell leider das normale Verhalten.

Prof. Dr. Peter Henning

Natürlich ist das richtig, und durchaus gewollt.

Aus Sicherheitsgründen (und davon werde ich mich auch nicht abbringen lassen) wird der Aktivierungszustand in einem Attribut gespeichert. Ändert man den Aktivierungszustand, wird also das Attribut geändert. Und natürlich merkt FHEM das und zeigt eine Konfigurationsänderung an.

Das bedeutet nicht, dass "das System ein Save Config haben möchte" - und wer will, kann das Fragezeichen einfach ignorieren oder unterdrücken (-> Forumssuche).

Wenn ich mal viel Zeit habe (so um 2038), werde ich eine eigene Konfigurationsdatei für das Alarmmodul definieren.

LG

pah

NilsB

Zitat von: Prof. Dr. Peter Henning am 19 April 2017, 08:37:08
(...) Wenn ich mal viel Zeit habe (so um 2038), werde ich eine eigene Konfigurationsdatei für das Alarmmodul definieren. (...)

Hallo pah,

ich möchte gar nichts davon in Frage stellen, wir hatten es ja schon durch hier. Damals hatten wir allerdings auch über die alternative Möglichkeit gesprochen, die Schärfungszustände "nur" als Reading zu speichern und unter dem Aspekt "Sicherheit" einen default-Zustand je Alarmlevel nach FHEM-Start zu definieren.

Das nur als Erinnerung, falls es keine aktive Entscheidung war, sondern eine mangels Erinnerung an alle Optionen :)

Ich kann mit beiden Varianten gut leben.

Grüße
Nils

stebar_

Hallo Zusammen,
ich möchte gerne bei der Wait Action, Arm Action, Disarm Action und Cancel Action jeweils den Namen des Alarm Level in der erzeugten "Meldung" aufnehmen. Mithilfe von $NAME oder $EVENT ist mir das nicht gelungen. Die Variable wird nicht durch Message Part II (Name Alarm Level) ersetzt.

Kennt jemand eine Lösung?

Vielen Dank  :)

Tresuno

Hallo,
ich hätte auch eine Frage dazu. Ich habe mich mal ein wenig mit dem Alarmmodul beschäftigt und einen Alarm definiert.
Später wollte ich das rückgängig machen und habe den Alarm mit delete gelöscht. Allerdings werden weiterhin unter "Everything" die Alarm Settings angezeigt. Und unter dem TabletUI eintrag in der Navigation befindet sich auch immer noch der Eintrag "Alarm".
Kann man das rückstandslos entfernen?
Danke und LG

Damu

#823
Hallo

Habe mich mit diesem Modul beschäftigt.
Ist sehr gut durchdacht.

Ich habe aber Probleme mit der HouseOpen Sub.
Ich habe da mal zwei Fenster und zwei Tür Sensoren eingetragen.
Ich erhalte beim ausführen der sub aber immer die selbe Antwort und die Dummys werden auch immer mit den gleichen Antworten gefüllt.
Im Dummy TFOpen.warn stehen immer alle Tür und Fenstersensoren die ich in der Sub auch eingetragen habe.
Und im Dummy TFClose.warn steht immer no.
Auch wenn zb beide Fenster offen sind und ich die Sub ausführe.
Habe ich da was falsch verstanden?
sub HouseOpen()
{
my $kfo = 0;
my $kfs = "";
my $kto = 0;
my $kts = "";
my $str = "";
if( $main::value{'BK.F'} ne "Closed" ){
   $kfo++;
   $kfs = "BK/";
}
if( $main::value{'WK.F'} ne 'Closed' ){
   $kfo++;
   $kfs = $kfs."WK/";
}
if( $main::value{'VK.T'} ne "Closed" ){
   $kto++;
   $kts = "VK/";
}
if( $main::value{'WZ.T'} ne 'Closed' ){
   $kto++;
   $kts = $kts."WZ/";
}
if( ($kfo >= 1) && ($kto == 0) ){
   $kfs = substr($kfs,0,-1);
   fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kfs Fenster");
   fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo == 0) && ($kto >= 1) ){
   $kts = substr($kts,0,-1);
   fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür");
   fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo >= 1) && ($kto >= 1)){
    $kts = substr($kts,0,-1);
    $kfs = substr($kfs,0,-1);
    $str = "$kts Tür + $kfs Fenster";
    fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts T / $kfs F");
    fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}else{
    fhem("set TFOpen.warn none");
    fhem("set TFClose.warn yes");
}
return $str;
}




Damu

#824
Hallo

Habs die Sub mal etwas geändert:
Zitatsub HouseOpen()
{
  my $kfo = 0;
  my $kfs = "";
  my $kto = 0;
  my $kts = "";
  my $str = "";
     if (ReadingsVal('SE_Fenster_Wohnung_Freisitz', 'state', 'closed') ne 'closed' ){
    $kfo++;
    $kfs = "Wohnung_Freisitz/";
      }
     if (ReadingsVal('SE_Fenster_Wohnung_Parkplatz', 'state', 'closed') ne 'closed' ){
    $kfo++;
    $kfs = $kfs."Wohnung_Parkplatz/";
   }
   if (ReadingsVal('SE_Fenster_Kueche_gross', 'state', 'closed') ne 'closed' ){
    $kfo++;
    $kfs = $kfs."Kueche_gross/";
   }
   if (ReadingsVal('SE_Fenster_Kueche_klein', 'state', 'closed') ne 'closed' ){
    $kfo++;
    $kfs = $kfs."Kueche_klein/";
   }
     if (ReadingsVal('SE_Tuere_Heizung', 'state', 'closed') ne 'closed' ){
     $kto++;
    $kts = "Heizung/";
   }    
     if (ReadingsVal('SE_Tuere_Freisitz', 'state', 'closed') ne 'closed' ){
    $kto++;
   $kts = $kts."Freisitz/";
  }
  if( ($kfo >= 1) && ($kto == 0) ){
    $kfs = substr($kfs,0,-1);
   $str = "$kfs Fenster";
    fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kfs Fenster");
    fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
  }elsif( ($kfo == 0) && ($kto >= 1) ){
    $kts = substr($kts,0,-1);
   $str = "$kts Tür";
    fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür");
    fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
  }elsif( ($kfo >= 1) && ($kto >= 1)){
     $kts = substr($kts,0,-1);
     $kfs = substr($kfs,0,-1);
     $str = "$kts Tür + $kfs Fenster";
     fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür / $kfs Fenster");
     fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
  }else{
     fhem("set TFOpen.warn none");
     fhem("set TFClose.warn yes");
  }
return $str;
}

Bein check habe ich jetzt das oder die offenen Fenster und Türe in der Ausgabe, und nach einer verzögerung von 30 Sek wird das auch in den Dummy TFOpen.warn geschrieben.