Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisfrage

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

    Verständnisfrage

    Hallo,

    kurze Frage zu meinen ersten "Gehversuchen" in Sachen logic:

    Definition eines items in der items.conf:
    Code:
     [ventilation]
      [[fanspeed_dummy]]
        type=bool
        visu=yes
        visu=rw
        visu_acl=rw
    Defintion einer das Item überwachenden Logik in der logic.conf:
    Code:
    [test_logik]
     filename = test.py
     watch_item=ventilation.fanspeed_dummy
    Kleine test.py zur Kontrolle erstellt:
    Code:
     
    #!/usr/bin/env python
    #
    logger.info("Schalter betätigt!")
    Dann in die Visu mal schnell einen Schalter eingebunden:
    Code:
     {{ basic.switch('helios_dummy', 'ventilation.fanspeed_dummy', icon1~'control_on_off.png', icon0~'control_on_off.png') }}
    Gemäß Doku sollte bei jeder Statusänderung des Dummy-Items die Logik getriggert und damit nach meinem Verständnis test.py ausgeführt werden:
    watch_item
    The list of items will be monitored for changes.

    watch_item = house.door | terrace.door

    Every change of these two items triggers (run) the logic.
    Wird aber nicht, es erfolgt kein Logeintrag. Wo liegt der Denkfehler? Danke für die Hilfe im Voraus!

    /tom

    #2
    Hmm,
    sieht erst mal IMHO gut aus, beim Item genügt allerdings visu_acl = rw und bool.

    Klappt den grundsätzlich der Connect zwischen SH und SV, sprich kannst Du bspw. ein anderes Item schalten?
    Schon mal auf der Console ein Update des Items via sh.cli versucht oder einen Reload der Logik?
    Hast Du den smarthome-service nach Eintragung der Logik in die logic.conf durchgestartet?

    Mal so als erste Tipps zur Eingrenzung. Dann mal das Log posten, evtl. ist das Problem ja weiter vorne.

    Cheers,
    Oliver

    Kommentar


      #3
      Sofern du smarthome.py zum Testen nicht im Debug-Modus startest: Prüfe mal das Loglevel von smarthome.py in etc/smarthome.conf. Es sollte auf "Info" stehen. Wenn es auf "Warning" bzw, "Error" steht, wird deine Infomeldung nicht ins Log geschrieben. Alternativ kannst du in deinem Testscript auch "logger.errror" statt "logger.info" verwenden. Das sollte auf jeden Fall im Log landen.

      Kommentar


        #4
        Hallo,

        danke für die Tips - ich war wohl mal wieder zu ungeduldig, nach 2 Restarts ging es plötzlich.

        Einzige Änderung: In der logic.conf noch visu_acl=rw hinzugefügt (habe ich in irgendeiner Beispiellogik gesehen). Aber damit dürfte das wohl nichts zu tun haben ...

        Was mich aber zu der Frage bringt: Kann visu_acl tatsächlich auch in einer Logik verwendet werden, und wenn ja: Bedeutet dies, dass ich eine Logik wie ein Item direct aus dem HTML-Code ansteuern kann? (also ohne dummy-Variable dazwischen?)

        Danke nochmal,

        /tom

        Kommentar


          #5
          Also bei Deiner Config hat das visu_acl sicher nichts damit zu tun damit es nun klappt, ich denke eher die Logik war nicht neu geladen.

          Zu Deiner zweiten Frage: Ja, durch das Setzen des Flags in der Logik kannst Du den Schritt über das item und das watchitem "überspringen", allerdings kannst Du in der SV IMHO dann nur basic.trigger einsetzen, da nur basic.trigger auf eine Logik verweisen kann, alle anderen widgets brauchen ein item.
          Im Umkehrschluss macht visu_acl daher für mich nur Sinn, wenn Du die Logik mittels basic.trigger ansprichst...

          Kommentar

          Lädt...
          X