Ankündigung

Einklappen
Keine Ankündigung bisher.

Triggering stoppt nicht

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

    Triggering stoppt nicht

    Hallo

    habe folgendes Problem

    eval = 1 if (sh.Alarmanlage.ALARM() == True) else False
    eval_trigger = Alarmanlage.ALARM

    Das nutze ich für die Auslösung innerhalb einiger verschiedenen Items. Aktivierung und Deaktivierung klappt auch. Aber im logging gibts nach der ersten Aktivierung dauerhaft Triggering Einträge:

    2018-08-05 16:53:35 DEBUG scheduler mpd Triggering Mpd.Wz.repeat-eval - by: MPD source: None dest: None value: {'caller': 'MPD', 'source': None, 'value -- scheduler.py:trigger:168

    Sieht aus wie eine endlos Schleife. Triggert das "sh.Alarmanlage.ALARM() == True" immer wieder neu?

    Gruss, Micha



    #2
    Korrektur: Nicht nach der ersten Auslösung...das Triggering erfolgt direkt nach Neustart..

    Kommentar


      #3
      Zeig bitte mal die ganze Item-Definition von Alarmanlage.ALARM und den Ziel-Items (in einem Code-Tag).

      Dein eval macht übrigens recht wenig Sinn.
      Dieses bewirkt nichts anderes, als wenn du einfach eval = sh.Alarmanlage.ALARM() oder noch einfacher eval = value schreiben würdest.

      Ausserdem ist es recht schlechter Stil, einen Integer 1 mit einem Boolean False in einem Statement zu mischen.

      Kommentar


        #4

        Kommentar


          #5
          So schaut das aus...ich will bei ALARM einfach nur eine mp3 in einer bestimmt Lautstärke + repeat abspielen, bis ALARM wieder false ist. Anders habe ich es nicht hin bekommen..Es funktioniert so auch...nur das ständig Triggering verstehe ich nicht.

          Code:
          [Mpd]
              [[Diele]]
                  type = str
                  mpd_host = 127.0.0.1
                  mpd_port = 6601
                  [[[repeat]]]
                      type = bool
                      mpd_listen = repeat
                      mpd_send = repeat
                      eval = 1 if (sh.Alarmanlage.ALARM() == True) else False
                      eval_trigger = Alarmanlage.ALARM
                  [[[volume]]]
                      type = num
                      mpd_listen = volume
                      mpd_send = volume
                      eval = 50 if (sh.Alarmanlage.ALARM() == True) else 30
                      eval_trigger = Alarmanlage.ALARM
                  [[[alarmMP3]]]
                      type = bool
                      mpd_file = alarm_1.mp3
                      enforce_updates = yes
                      eval = 1
                      eval_trigger = Alarmanlage.ALARM
          [Alarmanlage]
              [[ALARM]]
                  type = bool
                  knx_dpt = 1
                  knx_listen = 7/7/255
                  knx_init = 7/7/255
                  visu_acl = rw

          Kommentar


            #6
            eval = value funktioniert ist value immer der Wert von eval_trigger?

            Kommentar


              #7
              Macht es in Python nicht einen Unterschied, ob True oder true verwendet wird? Irgendwo wurde hier mal sowas diskutiert (glaube mich zumindest daran zu erinnern). Vielleicht lag da das ursprüngliche Problem ...
              /tom

              Kommentar


                #8
                Zitat von lexxmm Beitrag anzeigen
                ist value immer der Wert von eval_trigger?
                Ja.

                Nun sehe ich auch einen Ansatz, wo das repeat herkommt. Das hat wohl nichts mit dem Alarm-Item zu tun sondern mit dem MPD-Plugin.
                Allerdings finde ich die Attribute mpd_listen und mpd_send gar nicht in der Doku. Welches Plugin und welche Version nutzt du?
                Ich habe den Verdacht, dass per mpd_listen der Wert, welcher per mpd_send geschickt wurde, gleich wieder empfangen wird.

                Zitat von Tom Bombadil Beitrag anzeigen
                Macht es in Python nicht einen Unterschied, ob True oder true verwendet wird?
                Richtig, True ist ein Boolean und true ein Syntax Error.

                Kommentar


                  #9
                  Ich benutze noch die Version: https://mknx.github.io/smarthome/plugins/mpd.html

                  Kommentar


                    #10
                    Dann kann ich dir leider nicht weiterhelfen, damit kenne ich mich nicht aus.
                    Ein Tipp für nächstes Mal: Erwähne doch gleich, dass du noch smarthome.py einsetzt, viele User davon gibt es (hoffentlich) nicht mehr.

                    Kommentar


                      #11
                      Nein, ich setze smarthomeNG ein...aber noch mit dem alten mpd plugin. Das neue mpd Plugin will bei mir nicht laufen. Ich habe jetzt noch folgendes rausbekommen: ohne mpd_listen ist das ständige Triggering nicht mehr vorhanden...aber eigentlich brauche ich das listen

                      Kommentar


                        #12
                        Dann war mein Verdacht wohl richtig.
                        Meines Wissens ist es nicht vorgesehen, dass alte Plugins genutzt werden können. Vielleicht ist eine Inkompatibilität sogar die Ursache dafür.

                        Kommentar


                          #13
                          Zitat von lexxmm Beitrag anzeigen
                          habe folgendes Problem

                          eval = 1 if (sh.Alarmanlage.ALARM() == True) else False
                          eval_trigger = Alarmanlage.ALARM

                          Das nutze ich für die Auslösung innerhalb einiger verschiedenen Items. Aktivierung und Deaktivierung klappt auch. Aber im logging gibts nach der ersten Aktivierung dauerhaft Triggering Einträge:

                          2018-08-05 16:53:35 DEBUG scheduler mpd Triggering Mpd.Wz.repeat-eval - by: MPD source: None dest: None value: {'caller': 'MPD', 'source': None, 'value -- scheduler.py:trigger:168

                          Sieht aus wie eine endlos Schleife. Triggert das "sh.Alarmanlage.ALARM() == True" immer wieder neu?
                          Wo ist das Problem? Du schreibst, dass es soweit geht und im Log sind nur DEBUG Ausgaben. Setze den Loglevel höhen (auf INFO oder WARNING) oder bist Du aktiv am entwickeln und benötigst DEBUG Ausgaben?
                          Viele Grüße
                          Martin

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

                          Kommentar


                            #14
                            Zitat von Msinn Beitrag anzeigen

                            Wo ist das Problem? Du schreibst, dass es soweit geht und im Log sind nur DEBUG Ausgaben. Setze den Loglevel höhen (auf INFO oder WARNING) oder bist Du aktiv am entwickeln und benötigst DEBUG Ausgaben?
                            das stimmt schon. Für mich sieht das wie eine "ungewollte" endlos Schleife aus. Naja..ich muss wohl mal das richtige mpd plugin zum Laufen bekommen..

                            Kommentar


                              #15
                              Ich würde aus der Meldung schließen, dass das triggering hewollt ist, da es von einem Scheduler kommt. Ich kenne das Plugin nicht. Pollt es regelmäßig irgendwas?
                              Viele Grüße
                              Martin

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

                              Kommentar

                              Lädt...
                              X