Ankündigung

Einklappen

ETS5 Sammelbestellung Vollversion

Infos unter: Link
Mehr anzeigen
Weniger anzeigen

wie kann ich diese Logik vereinfachen ?

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

    wie kann ich diese Logik vereinfachen ?

    Ich bin leider nicht so fit in python, aber Ihr !!!!

    Code:
    # test_v1.py
    import time
    
    DimmWertNacht = 10
    DimmWertTag = 60
    now = int(time.strftime("%H"))
    logger.info("Time: {0} Nacht: {1} Tag: {2}".format(now,DimmWertNacht, DimmWertTag ))
    
    # get triggering item
    if trigger['source']:
     trigger_source = trigger['source']
     logger.info("triggered by "+trigger_source)
     trigger_item = sh.return_item(trigger_source)
    
    if sh.IIOG.Bad.SpotsAlleSchalten:
     time.sleep(1)
     if now > 21 or now < 7:
      logger.info("Nacht time: {0} Dimmwert : {1}".format(now,DimmWertNacht))
      sh.IIOG.Bad.SpotsAlleDimmen(DimmWertNacht)
     else:
      logger.info("Tag time: {0} Dimmwert : {1}".format(now,DimmWertTag))
      sh.IIOG.Bad.SpotsAlleDimmen(DimmWertTag)
    
    if sh.IIOG.Schlafen.SpotsAlleSchalten:
     time.sleep(1)
     if now > 21 or now < 7:
      logger.info("Nacht time: {0} Dimmwert : {1}".format(now,DimmWertNacht))
      sh.IIOG.Schlafen.SpotsAlleDimmen(DimmWertNacht)
     else:
      logger.info("Tag time: {0} Dimmwert : {1}".format(now,DimmWertTag))
      sh.IIOG.Schlafen.SpotsAlleDimmen(DimmWertTag)
    ich habe noch 10 weiter solcher if Anweisungen ...


    das klatt doch bestimmt eleganter in einer generischen ..... jemand eine Idee ??
    Zuletzt geändert von schlaubi666; 12.11.2020, 13:23.

    #2
    Vorab ein paar Fragen und Anmerkungen, damit die Vereinfachung auch in die richtige Richtung geht:
    • Wie wird die Logik getriggert?
    • Wäre es nicht sinnvoller je Raum eine Logik zu machen und auch jeweils nur diese zu triggern?
    • In der aktuell geposteten Form kann die Logik nicht funktionieren und muss einen Fehler schmeissen: Hinter Zeile 10 ( if trigger['source']: ) muss eine Einrückung kommen.
    • Wie viele Zeilen hinter dem if sollen eingerückt sein?
    • Wozu bestimmst Du die Variable trigger_item? In der geposteten Logik wird sie nicht genutzt.
    • Was möchtest Du jeweils mit if <item> ( z.B. if sh.IIOG.Bad.SpotsAlleSchalten: ) erreichen?
    • Wozu schickst Du die Logik nach dem Triggern jeweils eine Sekunde schlafen?
    Viele Grüße
    Martin

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

    Kommentar


      #3
      getriggert wird über watch_item in logik.yaml
      Code:
      test_v1:
      visu_acl: rw
      filename: test_v1.py
      watch_item:
      - EG.Flur.SpotsAlleSchalten
      ....
      Zitat von Msinn Beitrag anzeigen
      Wie viele Zeilen hinter dem if sollen eingerückt sein?
      habe den Code oben korrigiert ....

      ich hatte gehofft über trigger_item mir was zusammenzubasteln was generischer ist , also copy paste und Namen ändern ...

      Zitat von Msinn Beitrag anzeigen
      Was möchtest Du jeweils mit if <item> ( z.B. if sh.IIOG.Bad.SpotsAlleSchalten: ) erreichen?
      das jeweils nur der getrifggerte Spot schaltet
      Zitat von Msinn Beitrag anzeigen
      Wozu schickst Du die Logik nach dem Triggern jeweils eine Sekunde schlafen?
      bei mir hängt Dali gateway drann , der egal welche tageszeit auf einen wert x dimmt, ich warte 1 sec damit ich sicher auf meinen Wunschwert dimme


      evlt kann mal das ganz anders realisieren ?
      mein Ziel ist es urzeitabhängig ( Tag / Nacht ) auf den gewünschten Wert zu dimmen



      Zuletzt geändert von schlaubi666; 13.11.2020, 14:25.

      Kommentar

      Lädt...
      X