Hi,
ich wollte wie hier https://wiki.fhem.de/wiki/Alarm_und_FTUI beschrieben das Keypad in meine FTUI einbinden, dazu habe ich den folgenden Dummy angelegt.
Internals:
CFGFN
NAME Alarmanlage_Dummy
NR 600
STATE ???
TYPE dummy
READINGS:
2018-09-27 20:17:01 unlockPin 4711
Attributes:
alarmDevice Sensor
alarmSettings alarm0,|||arm
event-on-change-reading state,inputPin
event-on-update-reading key
readingList key,inputPin,fails,unlockPin
room Alarm
setList unlockPin
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 "";; }
und das entsprechende notify dazu:
Internals:
CFGFN
DEF Alarmanlage_Dummy:unlocked set Alarmanlage_Dummy disarmed 0
NAME Alarmanlage_Dummy.disarmed.N
NOTIFYDEV Alarmanlage_Dummy
NR 1287
NTFY_ORDER 50-Alarmanlage_Dummy.disarmed.N
REGEXP Alarmanlage_Dummy:unlocked
STATE active
TYPE notify
Helper:
DBLOG:
state:
myDbLog:
TIME 1538073355.97618
VALUE active
READINGS:
2018-09-27 20:35:55 state active
Attributes:
room Alarm
Anschließend die FTUI Seite gebaut
<!-- ========= Einbruchmeldeanlage ========== -->
<!-- ====================================== -->
<li data-row="4" data-col="2" data-sizex="2" data-sizey="2">
<header class="headerTransparent">Einbruchmeldeanlage</header>
<div data-type="popup" data-device="Alarmanlage_Dummy" data-get-on="locked" data-get-off="unlocked" data-width="400px" data-height="500px" class="interlock">
<div class="red bold top-space-2x"/>
<div class="dialog">
<div data-type="label" class="cell big top-space-2x wider">PIN-Code</div>
<div class="inline big top-space">
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="1" onclick="">1</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="4" onclick="">4</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="7" onclick="">7</div>
<div data-type="push" data-icon="fa-long-arrow-left" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="<" onclick=""/>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="2" onclick="">2</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="5" onclick="">5</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="8" onclick="">8</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="0" onclick="">0</div>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="3" onclick="">3</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="6" onclick="">6</div>
<div data-type="push" data-icon="" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="9" onclick="">9</div>
<div data-type="push" data-off-color="green" data-icon="fa-unlock" data-device="Alarmanlage_Dummy" data-set="key" data-set-on="#" onclick=""/>
</div>
<div class="bg-lightgray border-white top-space centered" style="width:280px; height:50px;">
<div data-type="label" data-device="AAA.key" data-get="inputPin" class="tall"/>
</div>
</div>
</div>
</li>
Allerdings sehe ich dann in der FTUI nicht mehr wie ein schwarzes Feld, wie auf dem Bild zusehen, wo habe ich den Fehler gemacht?
Danke
Hi, keiner eine tip was ich falsch gemacht habe?
Gesendet von iPhone mit Tapatalk
Hm, es ist etwas zeitraubend, den unkommentierten Code von Anderen zeichenweise durchzugehen....
Bei mir sieht das so aus
<!-- Alarmanlage Keypad -->
<div data-type="popup" data-device="AAA.key" data-get-on="locked" data-get-off="unlocked"
data-width="400px" data-height="500px" class="interlock"
style="position: fixed; left: 0px; top: 0px;">
<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">PIN-Code</div>
<div class="inline big top-space">
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="1"
onclick="">1</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="4"
onclick="">4</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="7"
onclick="">7</div>
<div data-type="push" data-icon="fa-long-arrow-left" data-device="AAA.key" data-set="key"
data-set-on="<" onclick=""></div>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="2"
onclick="">2</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="5"
onclick="">5</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="8"
onclick="">8</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="0"
onclick="">0</div>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="3"
onclick="">3</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="6"
onclick="">6</div>
<div data-type="push" data-icon="" data-device="AAA.key" data-set="key" data-set-on="9"
onclick="">9</div>
<div data-type="push" data-off-color="green" data-icon="fa-unlock" data-device="AAA.key"
data-set="key" data-set-on="#" onclick=""></div>
</div>
<div class="bg-lightgray border-white top-space centered" style="width:280px; height:50px;">
<div data-type="label" data-device="AAA.key" data-get="inputPin" class="tall"></div>
</div>
</div>
</div>
Internals:
NAME AAA.key
NR 166
STATE unlocked
TYPE dummy
READINGS:
2018-09-22 09:43:56 fails 0
2018-09-22 09:44:36 inputPin 00
2018-09-22 09:44:36 key 0
2018-10-02 19:19:19 state unlocked
2018-09-22 09:34:41 unlockPin XXXX
Attributes:
alarmDevice Sensor
devStateIcon locked:locked2.svg locked.*uncertain.*:pah_locked-uncertain.29 set_unlock:pah_set-unlocked:locked.svg@red unlocked:unlocked.svg@green unlocked.*uncertain.*:pah_unlocked-uncertain.29 set_lock:pah_set-locked.29
event-on-change-reading state,inputPin
event-on-update-reading key
group Control
readingList key,inputPin,fails,unlockPin
room Haus
setList unlockPin
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 "";; }
Internals:
DEF AAA.key:unlocked {fhem90Cmd("set AAA disarmed 6")}
NAME AAA.N
NOTIFYDEV AAA.key
NR 167
NTFY_ORDER 50-AAA.N
REGEXP AAA.key:unlocked
STATE active
TYPE notify
READINGS:
2018-09-23 11:48:14 state active
Attributes:
group Control
room Haus
LG
pah
Hallo pah, erstmal Danke für deinen Code, hab diesen jetzt mal mit meinem Verglichen und außer der anderen Device Bezeichnung konnte ich keinen wirklichen UNterschied entdecken, außer beim notify, da hatte ich glaub ich einen Fehler drin, wenn ich deine definition richtig verstehe, ist
AAA.key:unlocked
dein Dummy, und
AAA
deine Alarmanlage und der Level 6 wird geprüft?
ZitatDEF AAA.key:unlocked {fhem90Cmd("set AAA disarmed 6")}
Das habe ich dann bei mir mal entsprechend geändert:
Alarmanlage_Dummy:unlocked {fhem90Cmd("set Alarmanlage disarmed 0")}
Allerdings funktioniert es trotzdem nicht, der Dummy bekommt auch keinen State:
Internals:
NAME Alarmanlage_Dummy
NR 370
STATE ???
TYPE dummy
READINGS:
2018-10-02 20:04:45 unlockPin 0815
Attributes:
alarmDevice Sensor
alarmSettings |||on
devStateIcon locked:locked2.svg locked.*uncertain.*:pah_locked-uncertain.29 set_unlock:pah_set-unlocked:locked.svg@red unlocked:unlocked.svg@green unlocked.*uncertain.*:pah_unlocked-uncertain.29 set_lock:pah_set-locked.29
event-on-change-reading state,inputPin
event-on-update-reading key
readingList key,inputPin,fails,unlockPin
room Alarm
setList unlockPin
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 "";; }
{fhem90Cmd("set Alarmanlage disarmed 0")}
muss natürlich auch geändert werden - das ist mein Perl-Aufruf für das Steuern eines entfernten FHEM.
Fürs Nachvollziehen Deines Code hab ich leider heute abend keine Zeit, sorry.
LG
pah
Ok, das hatte ich übersehen, dann kann es bei mir ja nicht funktionieren, hab es jetzt so geändert:
Alarmanlage_Dummy:unlocked set Alarmanlage disarmed 0
Heut abend kein Problem, morgen früh reicht :-)
Aber im ernst, erstmal vielen Dank, keinen Stress.
1. Tipp: Im Browser die Web-Konsole einschalten und nachsehen, ob irgendwo ein JavaScript-Fehler den Aufruf von "set Alarmaanlage_dummy X" verhindert.
2. Tipp: Nicht mit einem äußeren Popup arbeiten, sondern erst einmal mit einer statischen div.
LG
pah
Zu 1.
es gibt keine Error Meldung, weder in Opera, noch in Chrome noch in FF.
zu 2.
hab den data-type mal auf switch gesetzt, aber keine änderung
Ich glaube das in meinem Dummy etwas nicht passt, da er kein STATE erhält, ist immer noch ???
Internals:
NAME Alarmanlage_Dummy
NR 370
STATE ???
TYPE dummy
READINGS:
2018-10-02 20:04:45 unlockPin 1905
Attributes:
alarmDevice Sensor
alarmSettings alarm0,|||on
devStateIcon locked:locked2.svg locked.*uncertain.*:pah_locked-uncertain.29 set_unlock:pah_set-unlocked:locked.svg@red unlocked:unlocked.svg@green unlocked.*uncertain.*:pah_unlocked-uncertain.29 set_lock:pah_set-locked.29
event-on-change-reading state,inputPin
event-on-update-reading key
readingList key,inputPin,fails,unlockPin
room Alarm
setList unlockPin
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 "";; }
state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } },
besagt aber, dass state erst gesetzt wird, wenn key einen Wert bekommt.
LG
pah
Hi Tommy82,
ich glaube, du bist genau wie ich dem Tutorial gefolgt, da fehlt das Notify für den Lock. Im Forum ist es drin, im Wiki nicht. Ich weiß, dass das schon eine Weile her ist, aber vielleicht hilft es jemand anderem. Einfach noch ein Device ähnlich dem Unlock bloß für Lock anlegen:
defmod AAA.armed.N notify AAA:level1:.armed set AAA.key locked
attr AAA.armed.N room Alarm
Grüße
edit: Das Wiki ist nicht mehr aktuell, du musst ebenfalls so abändern, es fehlt: das komma ","
Zitatattr AAA.key readingList key inputPin fails unlockPin
Zitat von: yep_DD am 02 Juni 2019, 18:47:53
Hi Tommy82,
ich glaube, du bist genau wie ich dem Tutorial gefolgt, da fehlt das Notify für den Lock. Im Forum ist es drin, im Wiki nicht. Ich weiß, dass das schon eine Weile her ist, aber vielleicht hilft es jemand anderem. Einfach noch ein Device ähnlich dem Unlock bloß für Lock anlegen:
defmod AAA.armed.N notify AAA:level1:.armed set AAA.key locked
attr AAA.armed.N room Alarm
Grüße
edit: Das Wiki ist nicht mehr aktuell, du musst ebenfalls so abändern, es fehlt: das komma ","
HI,
danke für deinen Tip, vieleicht korrigierst du das dann auch direkt im WIKI :-)
Ich hab mein Problem seinerzeit mit hilfe des Pinpad Widgets und einem Dummy und notify gelöst
https://forum.fhem.de/index.php/topic,79283.0.html