Ankündigung

Einklappen
Keine Ankündigung bisher.

Item Array

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

    Item Array

    Hallo,

    vielleicht habe ich irgendwas übersehen, aber wie kann ich mehrer Items auf einmal ansprechen ohne wieder
    zig Gruppenadressen zu vergeben?

    Es soll mit dem USZU alle Rollladen im Schlafzimmer betätigt werden:

    Code:
    rollladen_uszu:
                            type: dict
                            uszu_item: [dg.schlafen.rollladen1(), dg.schlafen.rollladen2(), dg.schlafen.rollladen3()]
                            visu_acl: true
                            cache: true
    RaspberryPi B+ und Pi2, Enertex KNXnet/IP Interface u TULIP, XS1-FS20, QNap TS-212, OpenELEC, Asterisk TK

    #2
    Such mal nach on_update
    uzsu item wäre dann ein „dummy“ das seinen wert an items weitergibt
    Zuletzt geändert von Onkelandy; 12.05.2018, 12:13.

    Kommentar


      #3
      Verstehe ich nicht ganz mit on_update,
      Wie sähe das dann nach meinem obigen beispiel aus?
      RaspberryPi B+ und Pi2, Enertex KNXnet/IP Interface u TULIP, XS1-FS20, QNap TS-212, OpenELEC, Asterisk TK

      Kommentar


        #4
        Gemeint ist ein (1) zentrales Steueritem, das bei Veränderung mittels on_update den Wert ('value') an die eigentlichen Rollladen-Items weiterleitet. Wie das aufzubauen ist, ist in der shNG Doku beschrieben.
        /tom

        Kommentar


          #5
          Code:
          rolladen_control:
            type: foo
            on_update:
              - dg.schlafen.rollladen1 = value
              - etc.
          
              rolladen_uzsu:
                  type: dict
                  uszu_item: rolladen_control
                  visu_acl: true
                  cache: true

          Kommentar


            #6
            Zitat von Tom Bombadil Beitrag anzeigen
            Wie das aufzubauen ist, ist in der shNG Doku beschrieben.
            ... oder man hat einen netten Onkelandy ...
            /tom

            Kommentar


              #7
              Ok vielen Dank dafür.
              Doch leider finde ich in dem Log keine Hinweise was ich falsch gemacht habe, die UZSU will einfach nicht losrennen:

              HTML Smartvisu2.9:

              Code:
              {{ device.uzsuicon('allgemein.uszu.rollladen_dg.rollladen_uszu', 'allgemein.uszu.rollladen_dg.rollladen_uszu', 'USZU Alle Rollladen', '', '', 'bool', ['Runter','Hoch'], '', '') }}
              item.yaml
              Code:
                      uszu:
                          rollladen_dg:
                              name: Rollladen DG USZU
                              type: foo
                              on_update:
                                - dg.schlafen.rollladen1.pos = 0
                                - dg.schlafen.rollladen2.pos = 0
                                - dg.schlafen.rollladen3.pos = 0
                                - dg.arbeiten.rollladen1.pos = 0
              
                              rollladen_uszu:
                                  type: dict
                                  uszu_item: allgemein.uszu.rolladen_dg
                                  visu_acl: true
                                  cache: true
              Logfile nur Eintrag bei Änderung:
              Code:
              [LIST=1][*]192.168.178.124:50786 sent '{"cmd":"item","id":"allgemein.uszu.rollladen_dg.rollladen_uszu","val":{"active":true,"list":[{"delayedExec":{"type":"String","deviceString":"","value":"","active":false},"timeMax":"","time":"13:20","holiday":{"weekend":false,"workday":false},"event":"time","value":"1","condition":{"type":"String","deviceString":"","value":"","active":false},"timeCron":"13:20","timeMin":"","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","timeOffset":"","active":true}]}}'[*]2018-05-10 13:18:26 DEBUG Main Item allgemein.uszu.rollladen_dg.rollladen_uszu = {'list': [{'delayedExec': {'type': 'String', 'deviceString': '', 'active': False, 'value': ''}, 'timeMax': '', 'time': '13:20', 'event': 'time', 'value': '1', 'holiday': {'weekend': False, 'workday': False}, 'timeCron': '13:20', 'timeMin': '', 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'timeOffset': '', 'condition': {'type': 'String', 'deviceString': '', 'active': False, 'value': ''}, 'active': True}], 'active': True} via Visu 192.168.178.124:50786 None[/LIST]
              Zuletzt geändert von bmx; 10.05.2018, 15:27.
              RaspberryPi B+ und Pi2, Enertex KNXnet/IP Interface u TULIP, XS1-FS20, QNap TS-212, OpenELEC, Asterisk TK

              Kommentar


                #8
                Naja, schau mal die Tippfehler an:
                - oben steht rollladen_dg, also ein l zuviel
                - das uzsu_item ist falsch, dort steht allgemein.uszu.rolladen_dg, allgemein und uszu müßte dann vertauscht werden
                - evtl. enforce_updates: true spendieren, sonst triggert das item nicht wenn es schon den richtigen Wert hat
                - uzsu = Universal Zeit Schalt Uhr ich weiß nicht, was Du mit uszu meinst...

                Kommentar


                  #9
                  Hi,

                  und Dein rollladen_dg sollte den richtigen Typ haben, ich bin mir nicht sicher, ob ein on_update mit einem type foo überhaupt was macht.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Ich glaube der absolute Blocker ist, dass du auch im yaml uszu_item geschrieben hast. So macht die UZSU gar nichts.

                    Kommentar


                      #11
                      Sorry, bin etwas IntelliSense verwöhnt , aber immer noch kein Erfolg ...

                      Code:
                      yaml
                      
                      allgemein:
                              uzsu:
                                  rollladen_dg:
                                      name: Rollladen DG UZSU
                                      type: foo
                                      enforce_update: true
                                      on_update:
                                        - dg.schlafen.rollladen1.pos = 0
                                        - dg.schlafen.rollladen2.pos = 0
                                        - dg.schlafen.rollladen3.pos = 0
                                        - dg.arbeiten.rollladen1.pos = 0
                      
                                      rollladen_uzsu:
                                          type: dict
                                          uzsu_item: allgemein.uzsu.rollladen_dg
                                          visu_acl: true
                                          cache: true
                      
                      HTML
                      {{ device.uzsuicon('allgemein.uzsu.rollladen_dg.rollladen_uzsu', 'allgemein.uzsu.rollladen_dg.rollladen_uzsu', 'UZSU Alle Rollladen', '', '', 'bool', ['Runter','Hoch'], '', '') }}
                      
                      LOG
                      2018-05-11 10:28:44 DEBUG    item         Main         Item allgemein.uzsu.rollladen_dg.rollladen_uzsu = {'active': True, 'list': [{'timeMin': '', 'active': True, 'delayedExec': {'type': 'String', 'value': '', 'deviceString': '', 'active': False}, 'event': 'time', 'timeOffset': '', 'condition': {'type': 'String', 'value': '', 'deviceString': '', 'active': False}, 'timeCron': '10:30', 'value': '1', 'timeMax': '', 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'time': '10:30', 'holiday': {'weekend': False, 'workday': False}}]} via Visu 192.168.178.144:50275 None -- item.py:__update:707

                      bmx Hatte das allgemein bei der dem letzten Code nicht mitgepostet müsste doch so stimmen wie in dem Beispiel von onkelandy oder?
                      RaspberryPi B+ und Pi2, Enertex KNXnet/IP Interface u TULIP, XS1-FS20, QNap TS-212, OpenELEC, Asterisk TK

                      Kommentar


                        #12
                        Da steht immer noch das Attribut uszu_item: unter rollladen_uzsu

                        Kommentar


                          #13
                          Sorry, der USZU / UZSU fehler hat wohl alles durcheinander gebracht!

                          Code:
                          2018-05-11 10:45:00 DEBUG    item         uzsu_allgemein.uzsu.rollladen_dg.rollladen_uzsu Item allgemein.uzsu.rollladen_dg = 1 via UZSU None None -- item.py:__update:707
                          Aber ich kann das ganze noch mal kurz zum Versändniss:

                          Ich habe das Item: rollladen_uzsu als dict, welches mir das allgemein.uzsu.rollladen_dg nach dem
                          in der dict variablen gespeicherten Funktion nach Tag u. Zeit triggert.
                          In der dict ist die Variable wie in der smartvisu ein bool
                          das allgemein.rollladen_dg ist vom typ: foo also alles möglich

                          wie drehe ich das ganze nun bei true = hoch = dg.schlafen.rollladen1.pos = 0 und
                          bei false = runter = dg.schlafen.rollladen1.pos = 250 zu bekommen?

                          Oder anders: wird das allgemein.uzsu.rollladen_dg jetzt getrigger, muss doch bei egal was
                          bei einem on_update:
                          - dg.schlafen.rollladen1.pos = 0 das Rollo auf Pos0 fahren, oder?
                          Zuletzt geändert von schorge; 11.05.2018, 09:59.
                          RaspberryPi B+ und Pi2, Enertex KNXnet/IP Interface u TULIP, XS1-FS20, QNap TS-212, OpenELEC, Asterisk TK

                          Kommentar


                            #14
                            Hi, ich würde den Foo gegen bool ersetzen, wobei ich einfach nur nicht sicher bin, ob Foo überhaupt triggert. Ich weiß nur, dass wenn ein type fehlt, dann nicht getriggert wird.
                            Gruß Waldemar
                            OpenKNX www.openknx.de

                            Kommentar


                              #15
                              Was auf jeden Fall funktionieren sollte ist das Item_Array.. praktisch wie oben beschrieben, hier nochmals zum 1:1 kopieren/teste. Achtung = value muss = value bleiben und nicht 0!

                              Code:
                              rolladen1.updown:
                                type: bool
                                visu_acl: true
                              
                              rolladen2.updown:
                                type: bool
                                visu_acl: true
                              
                              rolladen_control_bool:
                                type: bool
                                on_update:
                                  - rolladen1.updown = value
                                  - rolladen2.updown = value
                              
                              rolladen1.pos:
                                type: num
                                visu_acl: true
                              
                              rolladen2.pos:
                                type: num
                                visu_acl: true
                              
                              rolladen_control_num:
                                type: num
                                on_update:
                                  - rolladen1.pos = value
                                  - rolladen2.pos = value
                              Wenn du jetzt rolladen_control auf True setzt, gehen rolladen1 und rolladen2 auch auf True. Wenn du's auf 250 setzt, gehen sie auf 250. Aber nur, wenn deren type num ist. Bool oder foo scheint zumindest beim develop egal zu sein.

                              Wenn du direkt eine Position ansprechen willst, nutzt du bei der UZSU besser einen NUM wert statt ein bool und die "pos"-Items aus dem Beispiel.
                              Wenn du KNX Aktoren hast, machst du sowieso mehrere Items pro Rolladen. Kurzdrück=step (bool), Langdrück=auf/ab (bool), Position (num)

                              Kommentar

                              Lädt...
                              X