Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik Nachdimmen von Leuchten

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

    Logik Nachdimmen von Leuchten

    Hallo zusammen,

    hat jemand unter dem aktuellen Image 1.8.2 die Logik "Nachdimmen von Leuchten" aus der Anwenderdokumentation 1.8.2.d Logiken Einfache Beispiele am laufen?

    Das treibt mich in die Verzweifelung und ich hab schon viel in der Doku und hier im Forum gelesen. Das ganze hat in 1.7.1 wunderbar funktioniert.

    Das Grundproblem scheint mit dem Item Attribut zu tun zu haben. Ich bekome die Meldung:

    Item 'EG.Schlafzimmer.Licht_Decke', attribute 'nachdimm_wert': Attribute is undefined and has value '50' (defined in eg.yaml)

    Mein Item habe ich genauso wie in 1.7.1 definiert:

    Schlafzimmer:
    name: Schlafzimmer
    Licht_Decke:
    type: bool
    autotimer: 120m = 0
    knx_dpt: 1
    knx_send: 1/1/115
    knx_listen: 1/1/116
    nachdimm_wert: 50
    nachdimmen:
    type: bool
    uzsu:
    type: dict
    uzsu_item: EG.Schlafzimmer.Licht_Decke.nachdimmen
    cache: True


    Ausgelöst wird die Logik über watch_item: '*:nachdimm_wert'

    Da aber das Item nachdimm_wert nicht akzeptiert wird, löst die Logik auch nicht aus. Ich stehe gerade echt auf dem Schlauch.

    Vielen Dank für die Hilfe und echt tolles Projekte. Nutze SmarthomeNG schon viele Jahre und schön, dass es immer weiter geht.
    Zuletzt geändert von z1marco; 10.11.2021, 16:28.

    #2
    Du müsstest nachdimm_wert als Unteritem definieren, das gibt es nicht als Attribut. Ich wüsste jedenfalls nicht, dass man selbst "einfach so" Attribute definieren kann, die dann auch nutzbar sind.

    Also:

    Code:
    ...
    nachdimm_wert:
        type: num
        initial_value: 50
    nachdimmen:
        type: bool
    ...
    Achso, und zwei Themen zum selben Problem ist auch doof...

    Kommentar


      #3
      Leider geht es auch mit dem Hinweis nicht.

      Ich hab nochmal das alte Image hochgefahren. Dort gab es nicht die Fehlermeldung aber auch das Item nachdimm_wert war nicht im Admin Interface zu sehen:

      Item 'EG.Schlafzimmer.Licht_Decke', attribute 'nachdimm_wert': Attribute is undefined and has value '50' (defined in eg.yaml)

      Trotzdem funktioniert das Nachdimmen mit 1.8.2 nicht mehr.

      Ich hab das Beispiel (https://www.smarthomeng.de/user/beis...ght=nachdimmen) ja aus der Anwenderdokumentation genommen und bin gerne auch behilflich diese zu korrigieren. Allerdings hab ich noch so meine Verständnisschwierigkeiten.

      Im Beispiel wird folgende Konfiguration für die Logik vorgeschlagen:


      nachdimmen:
      filename: nachdimmen.py
      watch_item: '*:nachdimm_wert'


      Was soll *:nachdimm_wert denn eigentlich bedeuten? In der 1.7.1 funktioniert der und löst aus wenn ich das Licht anschalte. In der 1.8.2 geht das nicht mehr. Hat sich hier im Core evtl. etwas verändert?

      Die uzsu ist gesetzt und dort liegt nicht der Grund.

      Ich wäre Euch sehr dankbar, wenn mir jemand hier helfen könnte oder einen Tip wie ich das Problem weiter eingrenze. Ich hab ein Log in die Logik eingebaut. Unter 1.7.1 sehe ich dass die Logik aufgerufen wird und bei der 1.8.2 leider nicht.

      Kommentar


        #4
        Im Core hat sich ganz sicher was verändert wie ich schon im anderen Thread geschrieben habe. Dadurch das Msinn die Parameterprüfung für die Plugin Attribute und Werte eingebaut hat ist da einiges geschraubt worden.
        Offensichtlich ist das aber ausser Dir seit dem Erscheinen von 1.8.2 noch niemand aufgefallen. Aber da ist nicht mit zu rechnen das da schnell ein Fix aus dem Ärmel fällt.
        Es müsste im Admin Interface eine Änderung bei den Logiken und dem Watch gemacht werden. Das hat IMHO psilo mal implementiert. So kann man das watch item * mit Attribut nachdimm_wert gar nicht eingeben.

        Und im Core bei den Items hat Msinn den Überblick und kann am ehesten was dazu sagen.
        Zuletzt geändert von bmx; 11.11.2021, 16:17.

        Kommentar


          #5
          Zitat von z1marco Beitrag anzeigen
          Leider geht es auch mit dem Hinweis nicht.
          Wie sieht denn die Item-Konfiguration bei dir aus? (am besten Schlafzimmer komplett wie im 1. Beitrag)

          Zur Doku: ich habe da gerade keinen Einblick, aber ich kann mir vorstellen, dass das Beispiel schon seit einer Weile mitgeschleppt wird. Was ggf. wann geändert wurde, müsste man dann im Detail prüfen...
          Zuletzt geändert von Morg; 11.11.2021, 23:07.

          Kommentar


            #6
            Meine Item Konfiguration sieht so aus wie im 1. Beitrag:

            Schlafzimmer:
            name: Schlafzimmer
            Licht_Decke:
            type: bool
            autotimer: 120m = 0
            knx_dpt: 1
            knx_send: 1/1/115
            knx_listen: 1/1/116
            nachdimm_wert:
            type: num
            initial_value: 50
            nachdimmen:
            type: bool
            uzsu:
            type: dict
            uzsu_item: EG.Schlafzimmer.Licht_Decke.nachdimmen
            cache: True
            level:
            type: num
            knx_dpt: 5
            knx_send: 1/1/119
            knx_cache: 1/1/119
            knx_listen: 1/1/120

            Kommentar


              #7
              Hast du

              Code:
              watch_item: '*:nachdimm_wert'
              angepasst zu

              Code:
              watch_item: '*.nachdimm_wert'
              ?

              Ist ja jetzt kein Attribut mehr, sondern ein Unteritem...?

              Kommentar


                #8
                Hallo,

                ich hab gerade den Code

                watch_item: '*.nachdimm_wert'
                und
                watch_item: '*.*.nachdimm_wert'
                ausprobiert

                Das funktioniert auch nicht. Ich glaube Ihr versteht mein Problem noch nicht.

                Ich hab damals einfach das Beispiel aus der Anwenderdokumentation genommen und mir wenig Gedanken über die Implementierung gemacht. Ich verstehe auch nicht warum
                Code:
                watch_item: '*:nachdimm_wert'
                im alten Image funktioniert hat. Was hat früher '*:nachdimm_wert' bedeutet? Dieser Wert ist ja immer konstant auf dem Nachdimmwert und ich denke die Logik sollte nur auslösen, wenn es ein Item gibt indem auch ein nachdimm_wert existiert.

                Ich habe die Logik zum testen mal auf das Lichtobjekt Schlafzimmer.Licht_Decke gesetzt und da klappt es. Allerdings nur für den einen Raum und es war ja gedacht, dass es für alle Räume geht ohne jeden Raum ins watch_item Objekt aufzunehmen.

                Ich kann mir das irgendwie sicherlich hinbasteln aber es wäre doch schön, wenn wir die Ursache finden und dann auch die Anwenderdokumentation gerade ziehen. Der Ansatz der Anwenderdoku mit dem Nachdimmen gefällt mir nämlich recht gut.

                Danke und Gruß

                Kommentar


                  #9
                  Ich habe bereits in Post #4 beschrieben was dazu geführt haben mag, das es nicht mehr funktioniert. Solange Msinn da noch nicht draufgeschaut hat ist es müßig zu überlegen wie man drum herum kommt.
                  Damit es nicht in Vergessenheit gerät habe ich parallel ein Issue auf Github erstellt.

                  Kommentar


                    #10
                    Alles klar. Danke für das einstellen in Github. Bin hier gerne bereit zu testen und zu unterstützen.

                    Kommentar


                      #11
                      Mit dem Release 1.8 wurde ein Type Checking für Item Attribute (analog zum bereits existierenden Checking für Plugin Parameter) eingeführt. Seitdem werden Item-Attribute gegen die Definitionen in den Metadaten der Plugins geprüft. Dieses ist der erste Schritt in Richtung eines Item Editors in der Admin GUI. Um den jeweils richtigen Editor für Item-Attribut Werte zu öffnen, muss die Definition des jeweiligen Attributes bekannt sein.

                      Attribute, die in keinem Plugin definiert sind, können nicht geprüft (und später editiert) werden und werden daher mit einer Warnung versehen.

                      Um eigene Attribute zu verwenden (für die es keine Definitionen gibt), müssen die Attributnamen mit my_ anfangen.
                      Also statt
                      Code:
                          nachdimm_wert: 50
                      folgendes verwenden:
                      Code:
                          my_nachdimm_wert: 50
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        #12
                        OK alles klar. Kann ich gerne mal ausprobieren.

                        Ich brauche dann aber noch eine Prüfung ob das Attribut vorhanden ist in watch_item. Geht das mit

                        watch_item: '*:my_nachdimm_wert'
                        ?

                        Kommentar

                        Lädt...
                        X