Ankündigung

Einklappen
Keine Ankündigung bisher.

wie kann ich diese Logik vereinfachen ?

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

  • schlaubi666
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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?

    Einen Kommentar schreiben:


  • schlaubi666
    hat ein Thema erstellt wie kann ich diese Logik vereinfachen ?.

    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.
Lädt...
X