Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU de- und aktivieren, per Logik oder autoblind

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

    UZSU de- und aktivieren, per Logik oder autoblind

    Hallo Zusammen,

    ich erstelle mir gerade verschiedene Modi, wie Sommer, Winter, Urlaub.

    Dafür wäre es ganz gut, wenn ich die UZSU für den Urlaubsmodus deaktivieren könnte und dann wieder aktivieren.

    ich habe dies bereits mit dem autoblind versucht, was für mich die schönste Lösung gewesen wäre.
    hat leider nicht funktioniert.
    Weiß zufällig jemand, wie man das ins autoblind füttern muss?
    Code:
                # "UZSU" Item
                as_item_uzsu = kwl.level.uzsu1
       [[[[Urlaub]]]]
                    type = foo
                    name = Urlaub
                    as_set_uzsu = False
               [[[[[enter]]]]]                        
                         eval_trigger = modus.urlaub()
                         as_value_urlaub =  True
    2. Versuch mit ner kleinen Logik, auch gescheitert.
    Hierfür hab ich mich im Forum umgeschaut, vermutlich sind das aber ältere Versionen:
    Hat jemand hier eine Idee, wie das korrekt ausschauen muss?
    Code:
    if sh.modus.urlaub() == True:
    
    sh.kwl.level.uzsu1(value)
    value['active'] = False
    
    else:
    
    sh.kwl.level.uzsu1(value)
    value['active'] = True
    vielen Dank vorab
    Grüße
    ANDI

    #2
    Hi,

    Du musst die UZSU nach dem auslesen und Value definieren noch setzen:

    Ich hab es bei mir z.B. so erfolgreich im Einsatz:
    Code:
      
    value = sh.og.buero.heizung.modus.uzsu()  
    value['active'] = True  
    sh.og.buero.heizung.modus.uzsu(value)
    Siehe hier: https://knx-user-forum.de/forum/supp...542#post612542

    Kommentar


      #3
      übertragen müsste das so aussehen:
      Code:
      #!/usr/bin/env python
      
      if sh.modus.urlaub() == True: 
      value = sh.kwl.level.uzsu1()
      value['active'] = False
      sh.kwl.level.uzsu1(value)
      else:
      value = sh.kwl.level.uzsu1()
      value['active'] = True
      sh.kwl.level.uzsu1(value)
      dazu kommt folgende Fehlermeldung:
      Code:
      2017-01-03 17:28:13 DEBUG    logic        Main         Logic: urlaubsmodus -- logic.py:__init__:44
      2017-01-03 17:28:13 ERROR    logic        Main         Exception: expected an indented block (urlaubsmodus.py, line 6) -- logic.py:generate_bytecode:133
      Traceback (most recent call last):
        File "/usr/local/smarthome/lib/logic.py", line 131, in generate_bytecode
          self.bytecode = compile(code, self.filename, 'exec')
        File "/usr/local/smarthome/logics/urlaubsmodus.py", line 6
          value = sh.kwl.level.uzsu1()
              ^
      IndentationError: expected an indented block
      Zuletzt geändert von KF55W; 03.01.2017, 17:30.

      Kommentar


        #4
        Einrückungsfehler:

        Code:
        expected an indented block
        Code:
        #!/usr/bin/env python
        
        if sh.modus.urlaub() == True:
            value = sh.kwl.level.uzsu1()
            value['active'] = False
            sh.kwl.level.uzsu1(value)
        else:
            value = sh.kwl.level.uzsu1()
            value['active'] = True
            sh.kwl.level.uzsu1(value)
        /tom

        Kommentar


          #5
          hi tom,
          danke für die Korrektur. Jetzt gibt es keine Fehlermeldung mehr.
          Allerdings wird das UZSUV5.0 nicht ausgeschaltet. Es passiert garnichts

          Code:
          2017-01-03 18:21:51 DEBUG    __init__     Main         192.168.100.68:52130 sent '{"cmd":"item","id":"modus.urlaub","val":"1"}' -- __init__.py:json_parse:329
          2017-01-03 18:21:51 DEBUG    item         Main         Item modus.urlaub = True via Visu 192.168.100.68:52130 None -- item.py:__update:470
          2017-01-03 18:21:51 DEBUG    scheduler    Main         Triggering urlaubsmodus - by: Item source: modus.urlaub dest: None value: True -- scheduler.py:trigger:165
          2017-01-03 18:21:51 DEBUG    scheduler    Main         Triggering verschattung.default.raffstore.Urlaub.enter - by: Visu source: 192.168.100.68:52130 dest: None value: {'source': 'modus.urlaub', 'value': True -- scheduler.py:trigger:165
          2017-01-03 18:21:51 DEBUG    scheduler    Main         Triggering verschattung.raffstore1.automatik.rules - by: Visu source: 192.168.100.68:52130 dest: None value: {'source': 'modus.urlaub', 'value': True -- scheduler.py:trigger:165
          2017-01-03 18:21:51 DEBUG    item         verschattung.raffstore1.automatik.rules Item verschattung.raffstore1.automatik.state_id = verschattung.raffstore1.automatik.rules.Urlaub via Logic None None -- item.py:__update:470
          2017-01-03 18:21:51 DEBUG    item         verschattung.raffstore1.automatik.rules Item verschattung.raffstore1.automatik.state_name = Urlaub via Logic None None -- item.py:__update:470
          2017-01-03 18:21:56 DEBUG    __init__     Main         KNX[default]: 1.1.23 set 0/0/5 to 2.0 -- __init__.py:parse_telegram:207
          2017-01-03 18:21:56 DEBUG    item         Main         Item aussen.wind = 2.0 via KNX 1.1.23 0/0/5 -- item.py:__update:470
          2017-01-03 18:22:26 DEBUG    __init__     Main         KNX[default]: 1.1.23 set 0/0/5 to 1.29 -- __init__.py:parse_telegram:207
          2017-01-03 18:22:26 DEBUG    item         Main         Item aussen.wind = 1.29 via KNX 1.1.23 0/0/5 -- item.py:__update:470
          2017-01-03 18:22:36 DEBUG    __init__     Main         KNX[default]: 1.1.23 set 0/0/5 to 2.33 -- __init__.py:parse_telegram:207
          2017-01-03 18:22:36 DEBUG    item         Main         Item aussen.wind = 2.33 via KNX 1.1.23 0/0/5 -- item.py:__update:470
          2017-01-03 18:22:45 DEBUG    scheduler    it.nas.ping  Triggering it.nas.ping-eval - by: Scheduler source: None dest: None value: {'source': None, 'value': '1', 'caller': -- scheduler.py:trigger:165
          2017-01-03 18:22:45 DEBUG    scheduler    Scheduler    it.nas.ping next time: 2017-01-03 18:24:45+01:00 -- scheduler.py:_next_time:316
          2017-01-03 18:22:46 DEBUG    __init__     Main         KNX[default]: 1.1.23 set 0/0/5 to 3.41 -- __init__.py:parse_telegram:207
          2017-01-03 18:22:46 DEBUG    item         Main         Item aussen.wind = 3.41 via KNX 1.1.23 0/0/5 -- item.py:__update:470
          2017-01-03 18:22:48 DEBUG    __init__     Main         192.168.100.68:52130 sent '{"cmd":"item","id":"modus.urlaub","val":"0"}' -- __init__.py:json_parse:329
          2017-01-03 18:22:48 DEBUG    item         Main         Item modus.urlaub = False via Visu 192.168.100.68:52130 None -- item.py:__update:470
          2017-01-03 18:22:48 DEBUG    scheduler    Main         Triggering urlaubsmodus - by: Item source: modus.urlaub dest: None value: False -- scheduler.py:trigger:165
          2017-01-03 18:22:48 DEBUG    scheduler    Main         Triggering verschattung.default.raffstore.Urlaub.enter - by: Visu source: 192.168.100.68:52130 dest: None value: {'source': 'modus.urlaub', 'value': Fals -- scheduler.py:trigger:165
          2017-01-03 18:22:48 DEBUG    scheduler    Main         Triggering verschattung.raffstore1.automatik.rules - by: Visu source: 192.168.100.68:52130 dest: None value: {'source': 'modus.urlaub', 'value': Fals -- scheduler.py:trigger:165
          2017-01-03 18:22:48 DEBUG    item         verschattung.raffstore1.automatik.rules Item verschattung.raffstore1.automatik.state_id = verschattung.raffstore1.automatik.rules.Nacht via Logic None None -- item.py:__update:470
          2017-01-03 18:22:48 DEBUG    item         verschattung.raffstore1.automatik.rules Item verschattung.raffstore1.automatik.state_name = Nacht via Logic None None -- item.py:__update:470

          Kommentar


            #6
            Heisst das Item auch wirklich kwl.level.uzsu1? Notfalls mal mit logger ein paar Einträge in das Log schreiben lassen, die Logik wird ja scheinbar aufgerufen ...
            /tom

            Kommentar


              #7
              hi tom, wo finde ich diese? bzw wie frage ich sie ab?
              Grüße
              Andi

              Kommentar


                #8
                Mal so aus dem Gedächtnis:

                Code:
                #!/usr/bin/env python
                
                import logging
                logger = logging.getLogger("")
                
                if sh.modus.urlaub() == True:
                    value = sh.kwl.level.uzsu1()
                    value['active'] = False
                    sh.kwl.level.uzsu1(value)
                    logger.info("Urlaubsmodus eingeschaltet")
                else:
                    value = sh.kwl.level.uzsu1()
                    value['active'] = True
                    sh.kwl.level.uzsu1(value)
                    logger.info("Urlaubsmodus ausgeschaltet")
                Logfiles unter SmartHome.py/var/log.

                /tom

                Kommentar


                  #9
                  hi tom,

                  unter var/log/smarthome/smarthome.log hab ich das gleiche gefunden.

                  egal.
                  ich werde den Job der UZSU auf das autoblind mit übertragen, dann hat sich mein Problem dieser art erledigt.
                  danke euch

                  Kommentar


                    #10
                    Ich hab bei mir grad eine ähnliche Situation. Da ich nun bei der uzsu eine Interpolation eingefügt habe, ist mir das lieber als über die uzsu. Beim einen oder anderen Status möchte ich die uzsu aber trotzdem deaktivieren. Werde den funktionieren Code dann hier posten.

                    Ein Hinweis zu den obigen Logiken: Aktuell wird der Cache NICHT upgedatet, wenn man das dict einfach nur so abfrägt:
                    value = sh.kwl.level.uzsu1() Siehe auch hier: https://github.com/smarthomeNG/smart...ment-416491474

                    Kommentar


                      #11
                      Zusatz
                      mit der neuesten Pluginversion ist es möglich, das item mittels itemname.activate(False) zu deaktivieren.

                      Kommentar


                        #12
                        Onkelandy Ist das Plugin jetzt in dem normal UZSU Ordner oder noch in Deinem Ordner?

                        Ich habe die Woche wohl etwas Zeit das zu testen.
                        Das heißt, ich kann mit .activate(false:true) die gesamte UZSU für ein Item deaktivieren/aktivieren?

                        Kommentar


                          #13
                          Jup, so sollte das gehen.
                          Aktuell ist derzeit nur das hier: https://github.com/onkelandy/plugins/tree/uzsu/uzsu

                          Kommentar

                          Lädt...
                          X