Ankündigung

Einklappen
Keine Ankündigung bisher.

Szenen-Widget mit Aktivstatus

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

    #31
    Zitat von smai Beitrag anzeigen
    Ralf, kannst du mir verraten, wie dein Markup der vertikalen Controlgroup aussieht?
    Mache ich gerne heute abend, bin momentan auf der Arbeit ...

    Kommentar


      #32
      Hier ist der Code, erst der Aufruf
      Code:
                <table width="33%">
                <tr>
                  <td>{{ mydevice.shutter ('dg_rollade_sued', 'Sued', 'Sued.Rollade.AufAb', 'Sued.Rollade.Stop', 'Sued.Rollade.Position' ) }}</td>
                  <td>{{ mydevice.shutter ('dg_rollade_west', 'West', 'West.Rollade.AufAb', 'West.Rollade.Stop', 'West.Rollade.Position', 'West.Rollade.Automatik'  ) }}</td>
                  <td valign="bottom" align="right">
                      {{ basic.button(dg_fenster, 'Fenster.Rolladenautomatik', '', 'time_automatic.svg', 1, 'mini') }}
                  </td>
                </table>
      und hier die aufgerufene Funktion
      Code:
      {% macro shutter (id, txt, gad_move, gad_stop, gad_pos, gad_auto) %}
          {% import   "basic.html" as basic %}
      
          /** Design */
          <div class="blind">
              <table width="125" cellspacing="5" cellpadding="0">
              <tr>
                  <td valign="top" align="center">
                       {% if gad_auto %}
                          {{ basic.symbol(id|_('auto_on'), gad_auto, '', 'fts_shutter_automatic.svg') }}
                          {{ basic.symbol(id|_('auto_off'), gad_auto, '', 'fts_shutter_manual.svg', 0, 'or', 'icon1') }}
                       {% else %}
                          <img class="icon" src="{{ icon0 }}fts_shutter_40.svg" />
                       {% endif %}
                  </td>
                  <td rowspan="3" align="left" class="pos">
                      {{ basic.slider(id|_('pos'), gad_pos, 0, 255, 5, 'vertical') }}
                  </td>
                  <td rowspan="3" align="left" class="pos"></td>
              </tr>
              <tr>
                  <td valign="top" align="center">
                     {{ txt }}
                  </td>
              </tr>
              <tr>
                  <td valign="buttom" align="center">
                       <span data-role="controlgroup" data-type="vertical">
                          {{ basic.button(id|_('up'), gad_move, '', 'control_arrow_up.svg', 0, 'mini') }}
                          {% if gad_stop %} {{ basic.button(id|_('stop'), gad_stop, '', 'audio_stop.svg', 1, 'mini') }} {% endif %}
                          {{ basic.button(id|_('down'), gad_move, '', 'control_arrow_down.svg', 1, 'mini') }}
                       </span>
                  </td>
              </tr>
              </table>
          </div>
      {% endmacro %}
      Läuft unter 2.9, der Screenshot weiter oben ist der passende.

      Ralf.

      Kommentar


        #33
        Ok, danke.
        Dann liegt das unerwartete Funktionieren wohl an der Tabelle.

        Kannst du mir noch erklären, wieso das id|_('down') funktioniert bzw. woher du das hast, diese Syntax habe ich noch nie gesehen. Ist das offiziell möglich in Twig?

        Kommentar


          #34
          So, basic.select ist im develop committed. Danke ralf9000 für die Grundidee und ivande für die Implementierung mit stateswitch.

          Weil das widget verschiedene Modi unterstützt, ist der Aufruf ist noch etwas erweitert:
          Code:
          {{ basic.select(id, item, type, value, icon, text, color_on, group) }}
          id: unique id for this widget (optional)
          item: a gad/item
          type: 'menu', 'micro', 'mini', 'midi', 'icon' (optional, default: menu)
          value: list of values (optional, default [0,1])
          icon: list of icons for every button (optional) - not supported for type 'menu'
          text: list of texts for every menu entry or button (optional)
          color_on: the color for the on state of the buttons (optional, default: icon1) - not supported for type 'menu'
          group: orientation of the controlgroup: 'horizontal', 'vertical' or 'none' for seperate buttons (optional, default: 'horizontal') - not supported for type 'menu'
          Das sieht dann z.B. so aus (in der Inline-Hilfe zu finden):
          screenshot.png

          Bitte testen und berichten.

          Kommentar


            #35
            Zitat von smai Beitrag anzeigen
            Weil das widget verschiedene Modi unterstützt, ist der Aufruf ist noch etwas erweitert:
            Sieht super aus!

            Zitat von smai Beitrag anzeigen
            Bitte testen und berichten.
            Anfängerfrage: Will gerne testen, aber wie holt man sich den den Update, wenn man vorher mit
            Code:
            git clone -b develop https://github.com/Martin-Gleiss/smartvisu.git
            sich das Developer-Zeug geholt hat? Will nicht wieder alles holen ...
            Zuletzt geändert von ralf9000; 08.03.2017, 18:04.

            Kommentar


              #36
              Ganz einfach:
              Code:
              git pull

              Kommentar


                #37
                Danke, war zu blöd, stand nicht auf dem Verzeichnis und die Fehlermeldung hat mir nix gesagt

                Kommentar


                  #38
                  ... habe das jetzt mal gegen mein altes laufen lassen:

                  Code:
                  {{ mydevice.scenes('szene', 'Szene', [1, 31, 4, 19, 6], 0 , ['scene_day.svg', 'scene_night.svg', 'scene_party.svg', 'scene_sleeping.svg', 'light_light_dim_100.svg' ] ) }} <br></br>
                  {{ basic.select('szene_neu',  'Szene', 'midi', [1, 31, 4, 19, 6], ['scene_day.svg', 'scene_night.svg', 'scene_party.svg', 'scene_sleeping.svg', 'light_light_dim_100.svg' ], '', 'icon1') }}
                  Wenn man auf der GUI drückt, ist alles zwischen beiden Funktionen gleich, egal was man macht. Wenn Szenenwerte vom KNX-Bus in schneller Folge kommen, kommt das Neue aus dem Tritt und vergißt manchmal den Status zu "löschen", dann kann man auch solche Zustände erreichen, die auch mit Warten nicht weg gehen: dings.jpg



                  Nachtrag: Habe mir das mal auf dem KNX-Bus angeguckt, es wird beim Drücken eines der unteren Buttons zweimal die GA von smarthome.py gesendet. Kommt dazwischen eine Meldung von einem Taster, also gesendet zu smarthome.py kommt irgendwas durcheinander. Wenn ich "enforce_updates = yes" weg nehme, stimmt es wieder. Aber "enforce_updates = yes" brauche ich bei Szenen. ....

                  Weitere Beobachtung: es kommt auch zu dem Verhalten, wenn von zwei Browsern gleichzeitig und kurz hintereinander gedrückt wird, bevor die Rückmeldung da ist. Nach Refresh ist immer nur ein Buttom orange.

                  Habe auch mein Widget rausgebaut, daran liegt es nicht. Die GA und das SH-Item ist auch nun nur alleine von dem Widget in Gebrauch.
                  Zuletzt geändert von ralf9000; 08.03.2017, 20:09.

                  Kommentar


                    #39
                    hab SmartVISU gepullt und das neue Widget eingepflanzt. Da die Rundung am Linken Rand immer noch fehlte, und orientierung vertical nicht funktionierte musste ich zuerst in den Einstellungen den Cache leeren, obwohl Cache auf OFF steht..

                    Hab auf die schnelle type, color und group ein wenig getestet (gespielt), und bis jetzt scheint (fast) alles zu passen: SzenenWidgetSzene0.jpg



                    Wenn ich im text-Parameter eine '0' eingebe, erscheint der Text in der Mitte des Buttons/Rechtsbündig nicht wie die anderen Zahlen Unten und Zentriert.

                    Zuletzt geändert von ivande; 08.03.2017, 21:33.

                    Kommentar


                      #40
                      Danke für euer Feedback.

                      ralf9000 ich fürchte, dass dies auch beim nirmalen stateswitch auftreten könnte, da es sich ja einfach um mehrere stateswitch handelt. Ich versuche mal, ob ich das nachvollziehen kann.

                      ivande bei cache=off wird in der smartVISU definitiv nichts aus dem Pagecache gelesen. Ich denke eher, dass dein Browsercache schuld war. Ctrl+F5 hilft in solchen Fällen.
                      Das mit der 0 ist sehr speziell. Liegt es evtl. daran, dass diese im ersten Button der Gruppe steht?

                      Kommentar


                        #41
                        Hallo smai,
                        auch wenn ich in andere Buttons eine 0 schreibe..

                        SzenenWidgetSzene00.jpg

                        Kommentar


                          #42
                          Ok, echt irritierend. Ich teste das mal, habe aber einen Verdacht.
                          Wahrscheinlich prüfe ich irgendwo auf if text statt auf if text is empty. Eine 0 wird dann wohl zu false.

                          Kommentar


                            #43
                            SzenenWidgetSzeneKochenEssen.jpg
                            und so sieht das ganze mit Text aus

                            Kommentar


                              #44
                              Meine Vermutung oben war richtig, ist bereits korrigiert und committed.

                              Kommentar


                                #45
                                Zitat von smai Beitrag anzeigen
                                ich fürchte, dass dies auch beim nirmalen stateswitch auftreten könnte, da es sich ja einfach um mehrere stateswitch handelt. Ich versuche mal, ob ich das nachvollziehen kann.
                                Habe jetzt nochmal eine neue Installation mit 2.9. aus dem Nichts aufgezogen, es ist das gleiche Verhalten wieder.

                                Das Argument mit dem stateswitch könnte ich verstehen, aber es laufen ja beide Funktionen gleichzeitig, die eine, die nur "Taster-Funktionalität" (neu ein value) von stateswitch nutzt, die andere die die "Schalter-Funktionalität" (zwei values, die gleich sind) verwendet.

                                Übrigens die Verschluckerwahrscheinlichkeit wird deutlich größer je langsamer die VM bei mir eingestellt ist. Es scheint also eine instabile Zeitspanne zu geben, wo auf dem Item nichts passieren darf, um ein stabiles Verhalten zu gewährleisten.

                                Kommentar

                                Lädt...
                                X