Pagetab mit data-fhem-cmd

Begonnen von Mundus, 03 Mai 2017, 23:17:17

Vorheriges Thema - Nächstes Thema

Mundus

Hallo,

ich würde mich freuen, wenn ihr ein paar Anregungen oder Lösungen zu meinem nachfolgenden Problemen habt   ;). Zunächst versuche ich das Problem zu skizzieren und meine Ansätze, die leider noch nicht den Erfolg bringen, zu erklären.

Ich habe ein dummy, in dem ich die verpassten Anrufe zähle. Jetzt würde ich gerne im TabletUI die Anzahl der verpassten Anrufe anzeigen und bei Klick auf das Icon eine neue Seite laden und den Zähler des Dummys wieder auf null setzen. Der vielversprechenste Ansatz ist bislang dieser<div data-type="pagetab"
                        data-url="mainpage.html"
                        data-device="dAnzahlAnrufe"
                        data-get="state"
                        data-get-on='["0","1"]'
                        data-icons='["fa-phone","fa-phone warn"]'>
</div>
Leider gelingt es mir aber nicht, hier einen Befehl wie data-fhem-cmd="set dAnzahlAnrufe 0" einzubinden. Auch Varianten mit Link, Push oder Switch waren nicht erfolgreich, daher wäre ich sehr dankbar für einen Lösungsansatz.

Die zweite Frage, die sich für mich ergibt, welchen Performance-Unterschied haben "pagetab" und "pagebutton"? Im wiki selbst steht nur der bekannte Hinweis und die Forenbeiträge erwecken bei mir den EIndruck, dass Pagebutton zu präferieren ist. Oder?


Gruß

Mundus

Mundus

Hi,

leider bin ich noch nicht weiter. WIe beschrieben, mit einem Klick möchte ich zwei Befehle ausführen, nämlich
1. den Zähler zurücksetzen
2. Eine andere Webseite laden.

Meine bisherigen Versuche seht ihr in dem folgenden Code, leider nichts im Sinne der oben beschrieben Anforderung erfolgreich :-X
<!--############################# Test Button/push/usw ###########################################-->
<li data-row="9" data-col="2" data-sizex="7" data-sizey="2">
        <header class="big bg-gray">Test Bereich Telefon</header>
        <div class="row">
                <div class="col">
                        <header class="small bg-gray">Symbol</header>
                        <div data-type="symbol"
                                data-device="dAnzahlAnrufe"
                                data-states='["0","Recount","off","[1-9]","[1-9][0-9]"]'
                                data-icons='["fa-phone","fa-phone","fa-phone","fa-phone warn","fa-phone warn"]'
                                data-colors='["gray","gray","gray","orange","orange"]'>
                        </div>
                </div>
                <div class="col">
                        <header class="small bg-gray">Push</header>
                        <div data-type="push"
                                data-icon="fa-bell"
                                data-get="state"
                                data-get-off="0|Recount"
                                data-get-on='["[1-9]","[1-9][0-9]"]'
                                data-device="dAnzahlAnrufe"
                                data-warn="state"
                                data-background-icon="fa-none"
                                data-set-off="Recount"
                                data-set-on="">
                                <div data-type="link"
                                        data-url="#mainpage.html"
                                        data-icon="fa-none">
                                </div>
                        </div>
                </div>
<div class="col">
                        <header class="small bg-gray">Switch</header>
                        <div data-type="switch"
                                data-get="state"
                                data-get-off="0|Recount"
                                data-get-on='["[1-9]","[1-9][0-9]"]'
                                data-device="dAnzahlAnrufe"
                                data-warn="state"
                                data-set-off="Recount"
                                data-set-on="">
                        </div>
                </div>
                <div class="col">
                        <header class="small bg-gray">Sw Link</header>
                        <div>
                                <div data-type="switch"
                                        data-get="state"
                                        data-get-off="0|Recount"
                                        data-get-on='["[1-9]","[1-9][0-9]"]'
                                        data-device="dAnzahlAnrufe"
                                        data-warn="state"
                                        data-set-off="Recount"
                                        data-set-on="">
                                        <div data-type="pagetab"
                                                data-url="mainpage.html"
                                                data-icon="fa-none">
                                        </div>
                                </div>
                        </div>
                </div>
<div class="col">
                        <header class="small bg-gray">Pagetab</header>
                        <div data-type="pagetab"
                                data-url="mainpage.html"
                                data-device="dAnzahlAnrufe"
                                data-get="state"
                                data-get-on='["[1-9]","[1-9][0-9]"]'
                                data-get-off="!on"
                                data-states='["0","[1-9]","[1-9][0-9]"]'
                                data-icons='["fa-phone","fa-phone warn","fa-phone warn"]'
                                data-colors='["gray","orange","orange"]'
                                data-set="0">
                        </div>
                </div>
</div>
</li>
<!--############################# Ende Test Button/push/usw ###########################################-->

Standarduser

Hi,

Du könntest vielleicht mal versuchen, Deinen Zähler per JavaScript zurückzusetzen, wenn die entsprechende Seite geladen wird.

Soll heißen:
Du lädst die Unterseite ganz normal, per Pagetab, Link, Wasauchimmer, und rufst innerhalb der geladenen Seite ein Script auf, das den Zähler zurücksetzt.

Ein möglicher Stolperstein, der mir dazu einfällt:
Wenn das Script einfach beim Laden der Seite ausgeführt wird, könnte es passieren, dass der Zähler schon beim Precaching auf 0 gesetzt wird.
Um das zu verhindern, müsste entweder auf Caching verzichtet werden, oder das Script darf nur aktiv werden, wenn die Seite auch eingeblendet wird.

Wie man so etwas konkret umsetzt kann ich Dir grad auch nicht sagen, aber theoretisch könnte es funktionieren.


Falls Du gerade nicht weißt was ich meine, mal ein kleines Beispiel:
Öffnet man einen Link zu YouTube in einem neuen Tab im Hintergrund, dann öffnet sich der Tab und lädt die Seite. Das Video startet aber erst, wenn man den Tab in den Vordergrund holt. So in etwa stell ich mir das vor.

amenomade

Was geht mit dem Push/Link nicht?
<div data-type="push"
                                data-icon="fa-bell"
                                data-get="state"
                                data-get-off="0|Recount"
                                data-get-on='["[1-9]","[1-9][0-9]"]'
                                data-device="dAnzahlAnrufe"
                                data-warn="state"
                                data-background-icon="fa-none"
                                data-set-off="Recount"
                                data-set-on="">
                                <div data-type="link"
                                        data-url="#mainpage.html"
                                        data-icon="fa-none">
                                </div>
</div>

Vielleicht noch mit data-fhem-cmd="set dAnzahlAnrufe 0" noch im Link Widget?

EDIT: ahja, und noch data-load= statt data-url=.


Gruß
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Mundus

Zitat von: amenomade am 13 Mai 2017, 00:03:23
Was geht mit dem Push/Link nicht?
...
Es funktioniert leider weder eine vernünftige Darstellung -das Symbol wird doppelt dargestellt und überlagert sich dabei- noch wird der Link Befehl abgearbeitet. Das Dummy wird ordnungsgemäß auf 0 zurückgesetzt aber leider der Link nicht aufgerufen. Dabei ist es egal ob ich data-load oder data-url verwende.

Es muss doch eine Lösung geben oder habe ich als einziger das Problem....

Zitat von: Standarduser am 12 Mai 2017, 17:35:57
Du könntest vielleicht mal versuchen, Deinen Zähler per JavaScript zurückzusetzen, wenn die entsprechende Seite geladen wird.
Die Idee hört sich spannend an, kann ich aber nicht umsetzen, da ich keine Vorstellung habe, wie das realisieren kann und zur Zeit zu viele Baustellen gleichzeitig bediene.

Gruß

Mundus

airbeat92

Ich weiß zwar nicht wie sauber die Lösung ist, aber du könntest eventuell das div "push" als link definieren.
Also so:
<div data-type="push"
                                data-icon="fa-bell"
                                data-get="state"
                                data-get-off="0|Recount"
                                data-get-on='["[1-9]","[1-9][0-9]"]'
                                data-device="dAnzahlAnrufe"
                                data-warn="state"
                                data-background-icon="fa-none"
                                data-set-off="Recount"
                                data-set-on="">
<a href="#mainpage.html"></a>
</div>

habs selber so noch nicht getestet aber eine ähnliche Variante gewählt.

Mundus

Zitat von: airbeat92 am 16 Mai 2017, 13:29:57
Ich weiß zwar nicht wie sauber die Lösung ist, aber du könntest eventuell das div "push" als link definieren.
Leider funktioniert diese Variante auch nicht. Sofern ein Anruf eingegangen ist, kann ich mit "drücken" auf das Icon recounten. Beim zweiten "drücken" wird dann auch die entsprechende Seite geladen. Wie gesagt, es sind jedoch zwei klicks.
Außerdem komme ich nicht auf den Link, wenn kein Anruf eingegangen ist.

Gibt es noch weitere Möglichkeiten, die ich mit den TabletUI-Bordmitteln umsetzen kann?