Ankündigung

Einklappen
Keine Ankündigung bisher.

logik läuft im Debugmodus fehlerfrei, im Normalbetrieb nicht

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

    logik läuft im Debugmodus fehlerfrei, im Normalbetrieb nicht

    guten Morgen,
    ich habe eine noch einfache Ladenlogik. IM Debugmodus läuft diese Fehlerfrei. Starte ich aber den "normalbetrieb", dann schaltet die nicht.
    Hat da irgendwer eine Idee?
    Code:
    #!/usr/bin/env python
    import datetime, time
    
    logger.info('laden.py Logik triggered by {}, source {}, value {}, dest {}'.format(trigger['by'],trigger['source'],trigger['value'],trigger['dest']))
    
    item='{}'.format(trigger['source'])
    value='{}'.format(trigger['value'])
    dest='{}'.format(trigger['dest'])
    by='{}'.format(trigger['by'])
    astro=sh.sun.pos()
    zeit = int(time.strftime("%H", time.localtime()))*60 + int(time.strftime("%M", time.localtime()))
    
    logger.info('Zeit' + str(zeit) + 'quadra daemmerungswert:' + str(sh.quadra.daemmerung()))
    logger.info('Raspberry Sonnenposition Azimut und Altitüde' + str(astro))
    logger.info('Quadra Sonnenpos Azimut und Altitüde' + str(sh.quadra.astro.azimut()) + ' ' + str(sh.quadra.astro.elevation()) )
    
    val=True
    
    
    if (zeit > 420 and sh.ema()==True and sh.quadra.daemmerung()>150) or (zeit >= 570):
        val = False
    
    
    #schliessen ab 16.30 und Freigabe OK
    if (zeit>=990 and sh.quadra.daemmerung()<120) or zeit >=1260:
        val = True
        sh.zentral.haustuer.tagschliessen(0)
    
    sh.eg.wohnzimmer.laden(val)
    sh.og.sued.laden.sued(val)
    sh.og.sued.laden.west(val)
    sh.og.mitte.laden(val)
    sh.og.nord.laden.west(val)
    sh.og.nord.laden.nord(val)
    sh.og.schlafen.laden.gross(val)
    sh.og.schlafen.laden.klein(val)
    never fummel a running system...

    #2
    Hi,

    kann das sein, dass unten ab sh.eg.wohnzimmer.... die Einrückungen fehlen?

    gruß Manuel

    Kommentar


      #3
      glaube ich nicht, denn die gehören ja zu dem "normalen" Code und übergeben dann die Varaible 'val'
      By the way, wofür wird denn die Variable 'Dest' benutzt?
      never fummel a running system...

      Kommentar


        #4
        Hast du die Log Einträge in der log-datei? Oder irgend eine Fehlermeldung als das Script ausgeführt werden sollte?

        Kommentar


          #5
          Zitat von TRex Beitrag anzeigen
          By the way, wofür wird denn die Variable 'Dest' benutzt?
          Wenn ich mich richtig erinnere, enthält Dest das Ziel(item), und kann z.B. zur Auswertung in Schleifen verwendet werden, die über mehrere Items laufen (ich glaube, im KNX-Plugin gibt's dafür ein Beispiel).

          /tom

          Kommentar


            #6
            leider wirft mir das LOG keinerlei Fehler aus, die Funktion läuft....
            wegen dem Destination-Item, aus der Beschreibung werde ich leider nicht schlau....
            never fummel a running system...

            Kommentar


              #7
              Ich würde jeweils einen logger.info Eintrag zu Debugzwecken (nebst Anzeige von val) hinter die beiden if-Clauses machen, dann siehst Du wo er hin läuft und wohin nicht.
              Dann weißt Du auch ob es an den Items liegt oder an der Syntax oder der Logik....

              Kommentar


                #8
                Ich denke da fehlen etliche Klammern in den IF Teilen.
                Warum es dann so und nicht so funktioniert erklärt sich damit natürlich nicht...

                Marc

                Kommentar


                  #9
                  habs gelöst, vermutlich ein Logikproblem.... Nach dem auseinanderziehen der Logik geht's.... Vielen Dank.
                  Code:
                  val=True
                  
                  
                  if (zeit > 420 and sh.ema.schalter()==True and sh.quadra.daemmerung()>150):
                   sh.eventlog('(Laeden)', ' ->  ab 7.00 Uhr, EMA an und Dämmerung > 150')
                   val = False
                  
                  if (zeit >= 570):
                   sh.eventlog('(Laeden)', ' ->  ab 9.30 Uhr')
                   val = False
                  
                  #schliessen ab 16.30 und Freigabe OK
                  if (zeit>=990 and sh.quadra.daemmerung()<120):
                   sh.eventlog('(Laeden)', ' ->  ab 16.30 Uhr und Dämmerung < 120')
                   val = True
                   sh.zentral.haustuer.tagschliessen(False)
                  
                  if zeit >=1260:
                   sh.eventlog('(Laeden)', ' ->  ab 21.00 Uhr')
                   val = True
                   sh.zentral.haustuer.tagschliessen(False)
                  
                  
                  sh.eg.wohnzimmer.laden(val)
                  sh.og.sued.laden.sued(val)
                  sh.og.sued.laden.west(val)
                  sh.og.mitte.laden(val)
                  sh.og.nord.laden.west(val)
                  sh.og.nord.laden.nord(val)
                  sh.og.schlafen.laden.gross(val)
                  sh.og.schlafen.laden.klein(val)
                  never fummel a running system...

                  Kommentar

                  Lädt...
                  X