"Erweiterung" des Unifi Moduls (GastWlan schalten und Voucher erstellen)

Begonnen von TottiToad, 20 Oktober 2017, 17:11:59

Vorheriges Thema - Nächstes Thema

Wuehler

Da es mehrere Voucher für eine Gültigkeit geben kann passt das irgendwie auch nicht.
Evtl. könnte man intern am Voucher speichern, wann man einen Voucher abgefragt hat (Sperre). Ausserdem ein Attribut, nach welcher Zeit ein Voucher wieder ausgeliefert werden darf. Dann wird die Sperre entfernt.
Denke aber, dass dieses Vouchercaching eher ein Untermodul sein sollte. Sonst hat man recht viele Konfigurationsattribute.

Gibt es Erfahrungen mit dem enable SSID per php? Wird der Haken im Unifi-Controller gesetzt?

TottiToad

Zitat von: Wuehler am 24 Oktober 2017, 13:17:59

Gibt es Erfahrungen mit dem enable SSID per php? Wird der Haken im Unifi-Controller gesetzt?

Hi,

habe gerade nochmal nachgesehen, bei mir wird der Haken im Unifi-Controller gesetzt !
Wenn Du den Haken bei "Dieses Drahtlosnetzwerk aktivieren meinst" ?
(Klar, ich muss erst die Seite vom Controller aktualisieren, aber es klappt)

Grüße
Totti

Zayccmar

@TottiToad danke für die super Anleitung

eine Frage habe ich noch

kann man irgendwie auch hingehen und den Kommentar per FTUI mit übergeben.

übrigens ich habe noch im ftui folgendes angepasst, dadurch wird nicht immer erst der alte voucher angezeigt.

   Beim Popup 
                       
                <div data-type="link" class="round top-space-3x left-space-2x"
                           data-width="60" data-height="40"
                           data-color="white"
                           data-background-color="green"
                           data-icon="fa-check"
               data-fhem-cmd="set Code_Dummy wird geladen"
                           onclick="$('.dialog-close').trigger('click');"
               >OK</div>
                </div>

jedoch funktioniert dann das onklich nicht sauber also schließen ohne OK klicken.

Wuehler

Meiner Meinung nach müsste ds lles mit dem aktuellen Unifi-Modul auch ohne dummys gehen.
Da gibt es einen (oder mehrere) Voucher-Cache und für jeden Cache auch ein Reading mit dem nächsten Code. Sobald ein get nextVoucher <cache> aufgerufen wird, wird der Voucher intern mit einem Timestamp belegt. Der Timestamp wird nach (glaube ich spontan) 2 Stunden gelöscht. Im Reading ist immer der älteste Timestamp.

Zayccmar

Zitat von: Wuehler am 08 April 2018, 18:17:34
Meiner Meinung nach müsste ds lles mit dem aktuellen Unifi-Modul auch ohne dummys gehen.
Da gibt es einen (oder mehrere) Voucher-Cache und für jeden Cache auch ein Reading mit dem nächsten Code. Sobald ein get nextVoucher <cache> aufgerufen wird, wird der Voucher intern mit einem Timestamp belegt. Der Timestamp wird nach (glaube ich spontan) 2 Stunden gelöscht. Im Reading ist immer der älteste Timestamp.

Hallo Wuehler

das hatte ich auch schon gesehen jedoch noch nicht weiter mit rumexperimentiert.

hast du eine Idee wie man das mit dem Kommentar machen kann, weil ich möchte ungern immer nur crate by FHEM stehen haben im Hotspot Manager sonder ganz gerne auch den verwendungszweck

Gruß

Markus

Wuehler

Du kannst im Modul den Kommentar mitgeben, auch beim VoucherCache. Er darf allerdings keine Leerzeichen enthalten. Lies dir die commandref des Moduls durch. Habe da versucht die Grundlagen zu erklären. Hoffentlich bekommst du genug Hinweise. Wenn nicht bitte melden  ;)
Dann muss ich die commandref vielleicht mal anpassen/erweitern/ verständlicher machen.

In deinem Fall würde ich empfehlen einen oder mehrere VoucherCaches anzulegen mit dem Jeweiligen Verwendungszweck entsprechendem Kommentar/Namen. Über diesen Namen kann man dann Voucher anfordern oder eine gesamte Liste bekommen. Je nachdem wie oft voucher angefordert werden solltest du die Größe des Caches wählen (siehe  commandref ;) ).

Viel Erfolg,
Dirk

Zayccmar

Hallo Dirk

also ich vertshe die Command Ref zwar muss aber gestehen das ich noch nicht weiß wie ich es am besten mit ftui umsetzten kann.

vielleicht stehe ich auch einfach auf dem schlauch ;-) mal ein wenig grübbeln

Wuehler

Moin. Wie per pm besprochen passe ich das Unifi-Modul so an, dass man ein aktuelles Reading mit dem nächsten Code bekommt. Damit sollte eine Umsetzung auf ftui möglich sein. Ich vermute, dass es nicht so einfach mit einer selectbox geht, aber mal sehen.

Über die Mail-Notification müsste man sich auch einrichten könnedn, welche MAC-Adresse wann einen Voucher nutzt. Wenn man sich eine Notiz am Voucher machen möchte, geht das aktuell mit Unifi nicht so einfach über das Modul. Das müsste man über ftui und einen dummy zum Beispiel lösen.

Grüße,
Dirk

Wuehler

Hallo,

ich bin heute endlich mal dazu gekommen, die Anforderung nachzustellen/nachzubauen. Mal sehen, ob ich alles richtig verstanden habe  ;)
Dazu habe ich eine kleine Änderung am Unifi-Modul eingecheckt. Die VC-Readings werden jetzt sofort aktualisiert, wenn man get Unifi voucher <VC> aufruft. Sollte morgen im Update sein.

Meine TabletUI:
<li data-row="1" data-col="1" data-sizex="2" data-sizey="2" class="semitransparent">
  <header>Voucher</header>
  Typ:
  <div data-type="select" data-items='["-VC_2h","-VC_3h"]' data-alias='["2h","3h"]' id="voucherCacheNote" class="notransmit w3x"></div>
  Kommentar:
  <div data-type="input"
    id="comment"
    class="notransmit"></div>
  Code:
  <div data-type="input"
    data-device="Unifi" 
    data-get="#voucherCacheNote"
    id="voucherCode"
    class="notransmit w3x"></div>
  <div data-type="link"
    class="round notransmit"
    onclick="ftui.sendFhemCommand('set voucherComment comment ' + document.getElementById('voucherCode').children[0].value+' ('+document.getElementById('voucherCacheNote').children[0].children[0].options.item(document.getElementById('voucherCacheNote').children[0].children[0].selectedIndex).text+'): '+document.getElementById('comment').children[0].value);
             ftui.sendFhemCommand('get Unifi voucher ' + document.getElementById('voucherCacheNote').children[0].children[0].options.item(document.getElementById('voucherCacheNote').children[0].children[0].selectedIndex).text);
             ">
   OK</div>
</li>


Dazu ein dummy:

defmod voucherComment dummy
attr voucherComment event-on-change-reading comment
attr voucherComment group VoucherCache
attr voucherComment readingList comment
attr voucherComment room z_Server
attr voucherComment setList comment


Und / Oder eine readingshistory bzw. FileLog:
defmod voucherCacheRH readingsHistory voucherComment:comment
attr voucherCacheRH group VoucherCache
attr voucherCacheRH room z_Server
attr voucherCacheRH rows 10

defmod voucherCommentLog FileLog ./log/voucher.log voucherComment:.*
attr voucherCommentLog group VoucherCache
attr voucherCommentLog room z_Server

Zayccmar

Hallo Dirk

ich habe das nun mal implementiert, un dich bekomme nachdem ich die Voucher Cache angelegt habe auch nen Code angezeigt.

Jedoch wenn ich dann auf OK klicke erhalte ich folgendes

Type Error can not read item of undefined.

habe auch deine Dummys angelegt.

mein ftui sieht wie folgt aus

<li data-row="2" data-col="2" data-sizex="2" data-sizey="2" class="semitransparent">
  <header>Voucher</header>
  Typ:
  <div data-type="select" data-items='["-VC_2h","-VC_3h"]' data-alias='["2h","3h"]' id="voucherCacheNote" class="notransmit w3x"></div>
  Kommentar:
  <div data-type="input"
    id="comment"
    class="notransmit"></div>
  Code:
  <div data-type="input"
    data-device="myUnifi" 
    data-get="#voucherCacheNote"
    id="voucherCode"
    class="notransmit w3x"></div>
  <div data-type="link"
    class="round notransmit"
    onclick="ftui.sendFhemCommand('set voucherComment comment ' + document.getElementById('voucherCode').children[0].value+' ('+document.getElementById('voucherCacheNote').children[0].children[0].options.item(document.getElementById('voucherCacheNote').children[0].children[0].selectedIndex).text+'): '+document.getElementById('comment').children[0].value);
             ftui.sendFhemCommand('get myUnifi voucher ' + document.getElementById('voucherCacheNote').children[0].children[0].options.item(document.getElementById('voucherCacheNote').children[0].children[0].selectedIndex).text);
             ">
   OK</div>


Hast du eventuell eine Idee

Gruß

Markus

Wuehler

Welche VoucherCaches hast du im Unifi-Device angelegt? Das musst du im select im ftui ggf. anpassen. Data-items sind die readings im Unifi-Device in denen der nächste freie code eines Vouchers steht. Data-alias ist das was angezeigt werden soll.

Und hast du ein update gemacht? Ansonsten wird das VC-reading erdt durch das regelmäßige update nach Ablauf des Intervalls aktualisiert und nicht sofort nach get voucher.

Zayccmar

ich hatte ein update gemacht und habe extra die gleiche cahes angelegt die du in deinem Beispiel gemacht hast

Gruß

Markus

Wuehler

Dann brauche ich etwas mehr Infos. Kannst du die ftui Seite auf das Wesentliche reduzieren und mal anhängen. Außerdem ein list von myUnifi und voucherComment.

VG, Di k

Zayccmar


Zayccmar