FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Tommy82 am 27 September 2018, 21:00:12

Titel: [GELÖST] FTUI Alarm Modul
Beitrag von: Tommy82 am 27 September 2018, 21:00:12
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="&lt;" 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
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 01 Oktober 2018, 18:53:27
Hi, keiner eine tip was ich falsch gemacht habe?


Gesendet von iPhone mit Tapatalk
Titel: Antw:FTUI Alarm Modul
Beitrag von: Prof. Dr. Peter Henning am 02 Oktober 2018, 19:20:50
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="&lt;" 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
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 02 Oktober 2018, 20:19:47
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 "";; }
Titel: Antw:FTUI Alarm Modul
Beitrag von: Prof. Dr. Peter Henning am 02 Oktober 2018, 20:33:29
{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
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 02 Oktober 2018, 20:40:23
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.
Titel: Antw:FTUI Alarm Modul
Beitrag von: Prof. Dr. Peter Henning am 02 Oktober 2018, 20:53:27
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
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 02 Oktober 2018, 21:40:12
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
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 03 Oktober 2018, 07:25:18
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 "";; }
Titel: Antw:FTUI Alarm Modul
Beitrag von: Prof. Dr. Peter Henning am 03 Oktober 2018, 09:11:29
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
Titel: Antw:FTUI Alarm Modul
Beitrag 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 ","
Zitatattr AAA.key readingList key inputPin fails unlockPin
Titel: Antw:FTUI Alarm Modul
Beitrag von: Tommy82 am 10 November 2019, 19:52:29
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