Ankündigung

Einklappen
Keine Ankündigung bisher.

sh.trigger

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

    sh.trigger

    eine weitere Frage an das Schwarmwissen...

    in meiner sehr alten Installation mit Smarthomepy konnte ich logiken antriggern. Dies habe ich verwendet um z.B. beim Scharfschalten der EMA verschiedene klare Zustände herzustellen.
    Z.B. Nachfüllen Zisterne abstellen.
    Befehl bisher:
    Code:
    sh.trigger('zisterne', by='Item', value = 'True', source='EMA')
    In der neuen Installation nach SmarthomeNG gibt es alle notwendigen Items, in der Logics.ymal ist auch "zisterne" vorhanden.
    Nach meinem Verständnis müsste dann die Logik ausgelöst werden.
    Ich bekommer aber folgenden Fehler in der smarthome.warnings:
    Code:
    2020-04-20 13:09:36 WARNING lib.scheduler Logic name not found: zisterne
    2020-04-20 13:09:36 WARNING logics.test Logik 'test' (filename 'test.py') wurde getriggert (WARNING)
    Habe ich da etwas grundlegendes übersehen?
    Ach ja, ob ich das True in dem Kommando als String oder boolean übergeben ändert nichts ;-(

    Danke Peter
    never fummel a running system...

    #2
    Zitat von TRex Beitrag anzeigen
    in der Logics.ymal ist auch "zisterne" vorhanden
    Vorhanden sein reicht vieleicht nicht. Ohne dass Du die genaue Definition postest hilft nur die Glaskugel. (Die würde mir bei dem was Du gepostest hast sagen: Kann nicht funktionieren, da Logics.ymal falsch ist. Die Datei muss logic.yaml heissen.
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Hmm, entschuldige die Ungenauigkeit in meinem Ausdruck. Selbstverständlich heisst die logic.yaml.

      Darin ist definiert:
      Code:
      zisterne:
      filename: zisterne.py
      watch_item: zentral.zisterne.fuellstand|zentral.zisterne.nachfuellen
      Aufgerufen soll werden der Abschnitt in zisterne.py
      Code:
      if (source == 'EMA' and by == 'prog_trigger'):
      if zisterne.nachfuellen() == True:
      zisterne.nachfuellen(0)
      logtxt += '**EMA - > Nachfüllen beendet Endstand {}'.format(fuellstand)
      mittels:
      Code:
      sh.trigger('zisterne', by='prog_trigger', value = 'False', source='EMA')

      und raus kommt:
      Code:
      2020-04-20 13:43:39 WARNING lib.scheduler Logic name not found: zisterne
      2020-04-20 13:43:39 WARNING logics.test Logik 'test' (filename 'test.py') wurde getriggert (WARNING)
      Zuletzt geändert von TRex; 20.04.2020, 12:45.
      never fummel a running system...

      Kommentar


        #4
        Triggert die Logik denn richtig wenn Du sie aus der Admin GUI triggerst?
        Viele Grüße
        Martin

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

        Kommentar


          #5
          watch_item Liste: https://smarthomeng.de/user/konfigur...iguration.html

          Pipe war conf

          Kommentar


            #6
            Evtl. erkennt SHNG die Liste der watch Items nicht richtig. Mach mal folgendes:
            Code:
            zisterne:
                filename: zisterne.py
                watch_item:
                - zentral.zisterne.fuellstand
                - zentral.zisterne.nachfuellen

            Kommentar


              #7
              oha, danke, jetzt geht mir ein Licht auf.

              Ich versuche das mit den Aufrufitems erstmal richtig zu stellen.
              Gruß Peter
              never fummel a running system...

              Kommentar


                #8
                habe jetzt um alle möglichen Fehlerquellen auszuschliessen ein ganz neues skripting gemacht.

                Im logic.yaml:
                Code:
                arbeiten:
                filename: arbeitslounge.py
                visu_acl: rw
                watch_item:
                - og.arbeiten.licht.sammel
                - og.arbeiten.laden.sammel
                Dann ein kleines Script:
                Code:
                if source == 'og.arbeiten.licht.sammel' or source == 'prog_trigger':
                al = sh.return_item('og.arbeiten.licht.sammel')
                alicht = sh.return_item('og.arbeiten.licht')
                if al() == True:
                alicht.sued(1)
                alicht.mitte(1)
                logtxt = 'Sammel Licht an'
                else:
                alicht.sued(0)
                alicht.mitte(0)
                logtxt = 'Sammel Licht aus'
                und bei Aufruf über meine test.py mit:
                Code:
                sh.trigger('arbeiten', by='prog_trigger')
                kommt derselbe Fehler...
                Code:
                2020-04-20 15:29:52 WARNING lib.scheduler Logic name not found: arbeiten
                2020-04-20 15:29:52 WARNING logics.test Logik 'test' (filename 'test.py') wurde getriggert (WARNING)
                2020-04-20 15:29:52 INFO logics.test Logik 'test' (filename 'test.py') wurde getriggert (INFO)
                2020-04-20 15:29:52 DEBUG logics.test Logik 'test' (filename 'test.py') wurde getriggert (DEBUG)
                any ideas? Vielen Dank!
                Peter
                never fummel a running system...

                Kommentar


                  #9
                  Nochmal die Frage: Kannst Du die Logik aus der Admin GUI triggern?
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #10
                    nein, da kommt derselbe Fehler...
                    never fummel a running system...

                    Kommentar


                      #11
                      Hm. Du solltest vor dem Posten Deine Einrückungen noch mal prüfen. Ohne korrekte Einrückungen sind weder Python noch yaml brauchbar...

                      Kommentar


                        #12
                        Nachtrag: Hast Du Dir in der Doku mal die Seite https://www.smarthomeng.de/user/logi...scheduler.html dazu durchgelesen? Mit besonderem Augenmerk auf den Bemerkungs-Block?
                        Viele Grüße
                        Martin

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

                        Kommentar


                          #13
                          Ach ja, noch 'ne blöde Frage: den Conf zu yaml Converter aus der Admin Gui ist bekannt, oder?

                          Kommentar


                            #14
                            die Einrückungen hat mir der /code rausgehauen, die stimmen imho.
                            Msinn, wie müsste der Aufruf dnen dann aussehen? mit logics.arbeiten gehts auch nicht
                            never fummel a running system...

                            Kommentar


                              #15
                              ok, vielen Dank Euch, habs gefunden.
                              mit logics. konnte ich noch nichts anfangen
                              ... Bin da auf den Leim gegangen, das "Logics." muss dann insgesamt gequoted werden.

                              never fummel a running system...

                              Kommentar

                              Lädt...
                              X