Ankündigung

Einklappen
Keine Ankündigung bisher.

Neu Laden von Szenen

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

    Neu Laden von Szenen

    super dass man jetzt nach dem Ändern einer Szene nicht mehr neu starten muss.

    bei meinen Tests erhalte ich folgende Fehlermeldung:
    Code:
    2022-02-19  15:42:52 WARNING  modules.admin.api_services REST_dispatch_execute: yamlcheck: 'int' object has no attribute 'split'
    2022-02-19  15:43:03 NOTICE   lib.scene           Alle Szenen neu geladen
    Ich kann die Stelle im Coding zwar lokalisieren, mit dem Fehler aber nichts anfangen

    #2
    Das Problem ist in einer Deiner Szenendefinitionen zu suchen. yamlcheck prüft die yaml Datei in der die Szene gespeichert ist. In einer Szene hast Du einen Integer Wert stehen, wo die Profroutine einen String erwartet (den die Prüfroutine mit .split() zerlegen möchte.

    Ohne also die Szenendefinion(en) zu kennen, kann ich dazu nichts weiter sagen.
    Viele Grüße
    Martin

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

    Kommentar


      #3
      danke;

      dann sollte es diese Anweisung sein:
      Code:
            - {item: Abend4, value: true if (int(time.strftime('%H')) == 23 ) else None}
      es soll die Logik "Abend4" ausgeführt werden, wenn es später als 23 Uhr ist.

      Ergänzung:
      fehlt da vielleicht ein import time in der scene.py
      das hatte ich da wohl früher mal reincodiert
      Zuletzt geändert von whe; 19.02.2022, 16:20.

      Kommentar


        #4
        import time fehlt nicht, es ist für die Stellen an denen eval Ausdrücke in SmartHomeNG erlaubt sind, nicht unterstützt. Das kannst Du auch sehen, wenn Du den Ausdruck int(time.strftime('%H')) in den eval Syntax Checker eingibst. Dort bekommst Du die Fehlermeldung Problem evaluating int(time.strftime('%H')): name 'time' is not defined

        Benutze stattdessen: shtime.now().strftime('%H')
        Viele Grüße
        Martin

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

        Kommentar


          #5
          vielen Dank;
          der eval syntax checker liefert damit auch das richtige Ergebnis jetzt kurz vor Mitternacht.
          der YAML syntax checker bringt aber die gleiche Fehlermeldung; aber das Neu-Laden geht durch.

          Hast Du noch eine Idee, wie ich das über Mitternacht ausdehnen kann ?

          Kommentar


            #6
            Ohne jetzt im Detail nachzuvollziehen wo es hakt: In dem Ausdruck ist ein Zeichen enthalten, welches als YAML Sonderzeichen eine bestimmte Funktion hat, so dass die YAML Datei mit der Szenen Definition beim Einlesen anders interpretiert wird, als Du es gedacht hast/möchtest.

            Wenn Du den gesamten Ausdruck in Doppelte Anführungszeichen schreibst, wird sichergestellt, dass YAML das als String liest und auch als String an SmartHomeNG übergibt:

            Code:
            - {item: Abend4, value: "true if (int(time.strftime('%H')) == 23 ) else None"}
            Damit ist dann die Warnung verschwunden.
            Viele Grüße
            Martin

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

            Kommentar

            Lädt...
            X