Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Wert eines Items ändern, durch einen Seitenaufruf

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - Wert eines Items ändern, durch einen Seitenaufruf

    Gibt es eine Möglichkeit den Wert eines Items (GAD) zu ändern, automatisch beim Aufruf einer Visu-Seite? Ohne erneut einen "Schalter" oder "Button" zu drücken?
    Es laufen smartvisu und smarthome zusammen.

    Hintergrund der Frage:
    Ich möchte beim Seitenaufruf eine Logik (smarthome) triggern.

    Gruß
    M.S.

    #2
    Ich antworte mir selbst, soweit ich es dem Thema
    "Logic Verständnis / Einbindung in Visu"
    und seinen Antworten verstanden habe:

    Nein, es geht wohl nicht...


    Hier noch das Zitat aus dem o.g. Thema:

    Zitat von mknx Beitrag anzeigen
    Hallo René,
    .......
    Moment kann man keine Logiken direkt aus der smartVISU triggern. Da müsst Apollo ein kleines Widget beisteuern. Die Schnittstelle von SH.py kann das schon lange.
    ........
    hth
    Marcus

    Kommentar


      #3
      Hi Michel,

      doch das müsste schon klappen.

      Man kann über JavaScript den Wert eines Items ändern und damit eine Logik triggern. Das JS müsste halt beim laden der Seite aufgerufen werden.

      Bis bald

      Marcus

      Kommentar


        #4
        Vielen Dank für den Hinweis.
        Da reichen aber meine Kenntnisse leider nicht aus (java).
        Ein kleiner Tipp wäre nett.
        Gruß
        Michael

        Kommentar


          #5
          Ist eigentlich kein größeres Problem:
          - Ein widget erstellen
          - im Javascript-Code zum Widget die 'init' Funktionalität verwenden um einen io.write auszulösen.

          Ein Problem wird nur sein, daß die Seite im DOM gechached wird, was das 'init' nur einmal triggert. Wenn das gewollt ist ists ok, wenn nicht müsste man auf 'pageshow' (wird bei jedem Seitenaufruf getriggert) hören.

          Gruss
          Join smartVISU on facebook. Web: smartvisu.de.
          Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

          Kommentar


            #6
            In der Tat sollte bei jedem (erneuten) Seitenaufruf (erneut) getriggert/geändert werden.
            Nicht nur 1x bei "init".

            An anderer Stelle wurde das Thema wohl so ähnlich auch schon diskutiert.
            Bsp.: Aktualisieren der Telefonliste oder (Google-)Kalendereinträge.

            Ich versuche mich damit auseinander zu setzen....

            Gruß
            M.S.

            Kommentar


              #7
              Wert eines Items ändern, durch einen Seitenaufruf

              "pageshow" sollte gehen, verwende ich auch um die höhe der Plots zu berechnen.
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #8
                Folgendes habe ich "zu Tage gefördert":

                1. Im Projektverzeichnis ".../smartvisu/pages/mein_projekt" das folgende Widget erstellen:
                Name: widget_trigger_item.html
                Inhalt:
                Code:
                /** 
                 * Set the value of an gad/item = 1 
                 *   
                 * @param       id  = unique id for this widget 
                 * @param       gad = the (knx) gad (groupaddress) to be set =1
                 */  
                {% macro triggerbool(id, gad) %}
                    <script type="text/javascript"> 
                       $('#{{ page }}').on('pageshow', function(){
                           io.write("{{gad}}", 1);
                       });
                    </script> 
                {% endmacro %}
                2. Dann auf der Seite, von der aus das Item / die GAD geändert werden soll, den obigen Code-Schnipsel importieren:
                Code:
                {% import "widget_trigger_item.html" as triggeritem %}
                {{ triggeritem.triggerbool ('ID','Item') }}
                3. Was noch ...
                Das "Item" muss in smarthome (items.conf) angelegt sein.
                Die "ID" ist zwar drin, wird aber nicht benutzt.

                4. Damit können nun Logiken (smarthome) getriggert werden (mittels watch_item).
                Beispiel: Aktualisieren von Daten, die von einem externen Server geholt werden; zum Zeitpunkt der Seitenanwahl

                Gruß
                Michael

                Kommentar


                  #9
                  Hi Michael,

                  sauber! Das ging ja gut voran.

                  Viele Spaß noch

                  Marcus

                  Kommentar

                  Lädt...
                  X