Ankündigung

Einklappen
Keine Ankündigung bisher.

items in anderer Datei definieren, wie geht das richtig?

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

    items in anderer Datei definieren, wie geht das richtig?

    Hallo Allen,
    ich überarbeite meine Seiten der Smartvisu (noch 2.9 und nutze die automatische Erstellung) und wollte alle Item Definitionen in einer separaten Datei abspeichern. (Also wo die Gruppenadressen den Items zugweisen werden usw.)
    z.B. liegt die Datei items.yaml unter smarthome/items
    items.yaml
    Code:
    %YAML 1.1
    ---
    
    eg:
        licht:
            
            wz_wand: #Wohnzimmer
                type: bool
                knx_dpt: 1
                knx_send: 1/0/27
                knx_listen: 1/0/27
                knx_init: 1/0/27
                visu_acl: rw
    
            kue_decke: #Kueche
                type: bool
                knx_dpt: 1
                knx_send: 1/0/30
                knx_listen: 1/0/30
                knx_init: 1/0/30
                visu_acl: rw
    
    .... usw
    
        jal:
            wz_ost:#Wohnzimmer Ost
            move:
                type: num
                enforce_updates: 'on'
                visu_acl: rw
                knx_dpt: 1
                knx_send: 1/1/33
    
            stop:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 1
                knx_send: 1/1/32
    
            pos:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 5
                knx_send: 1/1/32
                knx_cache: 1/1/33
    
            wz_sued: #Wohnzimmer Süd
            move:
                type: num
                enforce_updates: 'on'
                visu_acl: rw
                knx_dpt: 1
                knx_send: 1/1/35
    
            stop:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 1
                knx_send: 1/1/34
    
            pos:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 5
                knx_send: 1/1/34
                knx_cache: 1/1/35
    
            kue: #Küche
            move:
                type: num
                enforce_updates: 'on'
                visu_acl: rw
                knx_dpt: 1
                knx_send: 1/1/37
    
            stop:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 1
                knx_send: 1/1/36
    
            pos:
                type: num
                visu_acl: rw
                enforce_updates: 'on'
                knx_dpt: 5
                knx_send: 1/1/36
                knx_cache: 1/1/37
    nun wollte ich die Codegenerierung durch eine weitere Datei machen lassen:
    erdgeschoss.yaml
    Code:
    %YAML 1.1
    ---
    erdgeschoss:
        name: Erdgeschoss
        sv_page: room
        sv_img: control_building_s_okg_eg.svg
        
        Wohnzimmer:
            name: Wohnzimmer
            sv_widget: "{{ device.shutter ('eg.jal.wz_ost', 'Wohnzimmer Ost', 'eg.jal.wz_ost.move', 'eg.jal.wz_ost.stop', 'eg.jal.wz_ost.pos','', '') }}
                        {{ device.shutter ('eg.jal.wz_sued', 'Wohnzimmer Süd', 'eg.jal.wz_sued.move', 'eg.jal.wz_sued.stop', 'eg.jal.wz_sued.pos','', '') }}
                        <div align='right'> Licht  {{ basic.flip('eg.licht.wz_wand', 'eg.licht.wz_wand') }}</div><p>"
            
        Kueche:
            name: Küche
            sv_widget: "{{ device.shutter ('eg.jal.kue', 'Küche', 'eg.jal.kue.move', 'eg.jal.kue.stop', 'eg.jal.kue.pos','', '') }}
                        <div align='right'> Licht               {{ basic.flip('eg.licht.kue_Decke', 'eg.licht.kue_decke') }}</div><p>
                        <div align='right'> TV                  {{ basic.flip('eg.switch.kue_wand', 'eg.switch.kue_wand')  }}</div><p>
                        <div align='right'> Schalter 1          {{ basic.flip('eg.switch.kue1', 'eg.switch.kue1') }} </div><p>
                        <div align='right'> Schalter 2          {{ basic.flip('eg.switch.kue2', 'eg.switch.kue2') }}</div><p>"
    Log sagt nun
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_ost.move
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_ost.pos
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_ost.stop
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_sued.move
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_sued.pos
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.jal.wz_sued.stop
    2021-01-31 13:24:02 WARNING plugins.visu_websocket Client 192.168.0.5:62925 requested invalid item: eg.licht.wz_wand
    usw.


    Anzeige geht aber nach dem ersten Aufruf im Browser kommen die Fehler weil die Items nicht gefunden werden. Die Datei items.yaml wird vor der Datei erdgeschoss ausgeführt, so müssten doch die Items definiert sein oder?
    Müssen die immer in der gleichen Datei geschrieben werden? Oder hab ich hier einen Denkfehler?
    Was mache ich falsch?


    Danke Gruß Haxley

    #2
    Deine Einrückungen stimmen nicht. Die Einträge unterhalb von wz_ost/wz_sued müssen noch eine Ebene eingerückt werden.

    Das gibt doch bestimmt auch Einträge im Log beim Starten von shng, oder nicht?

    Kommentar

    Lädt...
    X