Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Könnte er sicher - dann fragt mal den Modulautor (ohne h), der diese Meldung in das Modul 98_fhemdebug eingebaut hat.


pah

KölnSolar

Geht doch  ;)

Ich bin derAussage mal etwas nachgegangen. Sie scheint mir  falsch zu sein. fhemdebug ist ja gar nicht eingeschaltet u. dürfte demnach auch nicht die Meldung produzieren. Es muss irgendwo anders aus den Tiefen von FHEM kommen.

Vermutlich liegt es an irgendeiner userseitig nicht vollständigen(aus Modulsicht unplausiblen) Definition im Alarm-Modul, die dem User mangels Plausiprüfung aber nicht auffällt.

Ich hab dann meinen obigen Post treffender geändert.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Prof. Dr. Peter Henning

grep "has no TYPE" *

im FHEM-Verzeichnis liefert genau einen Ort, an dem dieser String vorkommt.

LG

pah

nuart

Nach einem neuerlichen Update bleibt nur noch folgende Warnung:
2017.12.31 09:29:48 1: PERL WARNING: "my" variable $xval masks earlier declaration in same scope at ./FHEM/95_Alarm.pm line 1312, <$fh> line 365.

Prof. Dr. Peter Henning

Nur abgesehen davon, dass dies harmlos ist: Bei jedem Bezug auf das Modul sollte die Versionsnummer angegeben werden. Mit einem Begriff wie "neuerliches Update" kann ich ohne Kristallkugel nichts anfangen.

LG

pah

nuart

Hier die Versionsangaben:

Latest Revision: 15733

File                  Rev   Last Change
95_Alarm.pm           15633 2017-12-17 16:50:35Z phenning

die ursprünglich von mir gemeldeten perl warnings sind übrigens immer noch da, hab ich vorher übersehen. Aber wenn es harmlos ist soll es mir recht sein, dachte vielleicht interessiert es auch den Entwickler. Im übrigen Respekt und Dank an den Entwickler des Moduls, ist ein wesentlicher Teil in meiner "Smart Home" Lösung.
lg leo

Prof. Dr. Peter Henning

Bitte CommandRef lesen. Die Version ist das, was man mit
get <alarmdevice> version
erhält.

LG

pah

nuart

ok, also dann:

Alarm.version => 3.12

lg leo

darkon

Ich beziehe mich nochmal auf schon andere Posts die noch nicht beantwortet wurden.

Ist es im Alarm Modul nicht möglich einen Sensor für zwei Aktionen zu nutzen? Ich würde gerne einen Switch nutzen, der den Alarm scharf und unscharf schaltet. Ist in meinen Augen die schönste Lösung um dieses im UI darzustellen und vor allem um den Status direkt über den Switch anzuzeigen.

Wie habt ihr das gelöst?

ToM_ToM

ZitatIst es im Alarm Modul nicht möglich einen Sensor für zwei Aktionen zu nutzen? Ich würde gerne einen Switch nutzen, der den Alarm scharf und unscharf schaltet.
Soweit ich weiß, nein.

Ich verwende hierfür einen Dummy.

FHEM-Config


define AlarmKeypadDummy dummy
attr AlarmKeypadDummy DbLogExclude .*
attr AlarmKeypadDummy alarmDevice Sensor
attr AlarmKeypadDummy alarmSettings alarm0,alarm1,alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|AlarmKeypadDummy:.unlocked|unlocked|off
attr AlarmKeypadDummy event-on-change-reading state,inputPin
attr AlarmKeypadDummy event-on-update-reading key
attr AlarmKeypadDummy group Alarmanlage
attr AlarmKeypadDummy readingList key,inputPin,fails,unlockPin
attr AlarmKeypadDummy room Allgemein
attr AlarmKeypadDummy setList unlockPin
attr AlarmKeypadDummy userReadings inputPin:key:.[0-9] { return ReadingsVal($NAME, "inputPin", "*") . ReadingsVal($NAME, "key", "0");; },\
fails:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return ReadingsVal($NAME, "fails", 0)+1;; } else { return 0;; } },\
state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } },\
inputPin:key:.[\<] { my $inputVal = ReadingsVal($NAME, "inputPin", "0");; chop($inputVal);; return $inputVal;; },\
inputPin:key:.# { return "";; }

define notify_AlarmanalageUnlocked notify AlarmKeypadDummy:unlocked set Alarmanlage disarmed 0
attr notify_AlarmanalageUnlocked DbLogExclude .*
attr notify_AlarmanalageUnlocked group Alarmanlage
attr notify_AlarmanalageUnlocked room Allgemein

define alarm0.off.N notify (AlarmKeypadDummy:.unlocked) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","off")}
attr alarm0.off.N DbLogExclude .*
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm


FTUI


<!-- Alarmanlage Keypad -->
<div data-type="popup" data-device="AlarmKeypadDummy" data-get-on="locked" data-get-off="unlocked" data-width="400px" data-height="500px" class="interlock">
<div class="red bold top-space-2x"></div>
<div class="dialog">
<header>Alarm deaktivieren</header>
<div data-type="label" class="cell big top-space-2x wider">Alarm unscharf schalten (PIN-Code)</div>
<div class="inline big top-space">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="1" onclick="playTouchSound();">1</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="4" onclick="playTouchSound();">4</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="7" onclick="playTouchSound();">7</div>
  <div data-type="push" data-icon="fa-long-arrow-left" data-device="AlarmKeypadDummy" data-set="key" data-set-on="<" onclick="playTouchSound();"></div>
</div>
<div class="inline big">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="2" onclick="playTouchSound();">2</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="5" onclick="playTouchSound();">5</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="8" onclick="playTouchSound();">8</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="0" onclick="playTouchSound();">0</div>
</div>
<div class="inline big">
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="3" onclick="playTouchSound();">3</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="6" onclick="playTouchSound();">6</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="9" onclick="playTouchSound();">9</div>
  <div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="#" onclick="playTouchSound();">#</div>
</div>
<div class="bg-lightgray border-white top-space centered" style="width:280px; height:50px;">
<div data-type="label" data-device="AlarmKeypadDummy" data-get="inputPin" class="tall"></div>
</div>
</div>
</div>

Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

theophilou85

Hallo

Habe auch zwei Fragen zum Alarmmodul. Zum einen eine ähnliche wie die Vorposter: Ich würde gerne das Residenzmodul für das scharf/unscharf stellen der Alarmanlage verwenden.
Dazu müsste ich res:home als "arm" und res:absent und gone als "disarm" verwenden.
Lässt sich das nicht irgendwie hier dazu einbauen
attr res alarmSettings alarm0,|res:absent||arm
Mit Dummy weiß ich wie, finde ich aber sehr unsauber. Ich denke es gibt nicht viele da draußen, die zwei unterschiedliche Devices nutzen, um eine Alarmanlage scharf/unscharf zu stellen. Ein Doppeltaster vielleicht.

Des weiteren hätte ich gerne unterschiedliche Pushnachrichten, je nachdem wo eingebrochen wird. Aber auch mein Device "push" kann ich nach aktuellem Wissensstand nur einmal als Aktor verwenden.


Esjay

Zitat von: theophilou85 am 08 Januar 2018, 13:16:30
Hallo

Habe auch zwei Fragen zum Alarmmodul. Zum einen eine ähnliche wie die Vorposter: Ich würde gerne das Residenzmodul für das scharf/unscharf stellen der Alarmanlage verwenden.
Dazu müsste ich res:home als "arm" und res:absent und gone als "disarm" verwenden.
Lässt sich das nicht irgendwie hier dazu einbauen
attr res alarmSettings alarm0,|res:absent||arm
Mit Dummy weiß ich wie, finde ich aber sehr unsauber. Ich denke es gibt nicht viele da draußen, die zwei unterschiedliche Devices nutzen, um eine Alarmanlage scharf/unscharf zu stellen. Ein Doppeltaster vielleicht.

Des weiteren hätte ich gerne unterschiedliche Pushnachrichten, je nachdem wo eingebrochen wird. Aber auch mein Device "push" kann ich nach aktuellem Wissensstand nur einmal als Aktor verwenden.

Zu 1. = I don`t know, da bei mir, um es mit deinen Worten zu sagen, Unsauber implementiert.

Zu 2. = Userreading für die einzelnen Empfänger, und dann über readingsproxy.

Grüße

theophilou85

Könntest du 2. ein Bisschen ausführen, ich verstehe nur Bahnhof ;)

Prof. Dr. Peter Henning

ZitatUnsauber implementiert.
;D ;D

Esjay

Zitat von: theophilou85 am 08 Januar 2018, 15:30:58
Könntest du 2. ein Bisschen ausführen, ich verstehe nur Bahnhof ;)

Userreading
ZitatuserReadings
Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat folgendes Format:

    <reading>[:<trigger>] [<modifier>] { <perl code> }

Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt,
indem das spezifizierte perl code { <perl code> } ausgeführt wird, und dessen Wert dem Reading zugewiesen wird.
Falls <trigger> spezifiziert ist, dann findet diese Ausführung nur dann statt,
falls einer der aktualisierten Readings dem regexp <trigger> entspricht (matched).

readingsproxy

https://wiki.fhem.de/wiki/ReadingsProxy

Wenn du dir die ReadingsProxy`s angelegt hast, kannst du dir diese als Aktoren eintragen!

Alles weitere wäre zu viel Offtopic.

Zitat von: Prof. Dr. Peter Henning am 08 Januar 2018, 16:22:14
  ;D ;D

Das verstehe ich nicht!!!  ;D ;)