Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei Logik

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

    Problem bei Logik

    Guten Abend zusammen

    ich habe ein Problem mit der beigefügten Logik.

    PHP-Code:
    #!/usr/bin/env python3
    # strommonat.py
    # Berechne die Anzahl der Stunden seit Monatsbeginn
    Tage datetime.datetime.now().day
    Stunden 
    datetime.datetime.now().hour
    Monatsstunden 
    = (Tage 24) + Stunden
    start 
    str(Monatsstunden) + 'h'

    # Berechne die Stromkosten sowie den vebrauch des aktuellen Monats und schreibe das Ergebnis in ein Item
    sh.Messung.Strom.Monatsverbrauch(sh.Messung.Strom.Bezug() - sh.Messung.Strom.Bezug.db('min'start))
    sh.Messung.Strom.KostenMonat()(round(sh.Messung.Strom.Monatsverbrauch()*0.32 + (144/365),2))
    #sh.Messung.Strom.KostenMonat(round((sh.Messung.Strom.Monatsverbrauch()*0.32 + (144/365),2))​ 
    Im Log erhalte ich dazu folgende Meldung


    PHP-Code:
    2023-01-29  17:31:17 WARNING  modules.admin.api_logics REST_dispatch_executeStromMonat'name'
    2023-01-29  17:35:30 ERROR    lib.logic           Exceptionunexpected EOF while parsing (strommonat.pyline 11)
    Traceback (most recent call last):
    >   
    File "/usr/local/smarthome/lib/logic.py"line 1034in _generate_bytecode
    >     self.bytecode compile(codeself.pathname'exec')
    >   
    File "/usr/local/smarthome/logics/strommonat.py"line 11
    >     sh.Messung.Strom.KostenMonat(round((sh.Messung.Strom.Monatsverbrauch()*0.32 + (144/365),2))
    >                                                                                                ^
    SyntaxErrorunexpected EOF while parsing​ 
    Ich hatte diese Logik bereits mal unter SHNG 1.6 am laufen daher verwundert mich dieser Fehler

    Ich vermute mal das irgendwo eine Klammer zu viel oder zu wenig ist (wurde bereits mit einem Python Syntax Checker geprüft und ergab keinen Syntaxfehler)
    Zuletzt geändert von jonny7792; 29.01.2023, 18:09.
    Gruss Oliver

    Projektleiter Technische Gebäudeausrüstung

    #2
    round(( ... )) macht nicht unbedingt Sinn, eher
    Code:
    sh.Messung.Strom.KostenMonat(round(sh.Messung.Strom.Monatsverbrauch()*0.32 + (144/365)),2)
    ​

    Kommentar


      #3
      Hallo Paul

      Danke 👍

      Dort lag wohl der Syntax fehler


      Ich habe nun die Logik noch ein wenig erweitert um den Verbrauch für Jeden Monat abzulegen



      PHP-Code:
      2023-01-29  19:03:46 ERROR    logics.StromKostenMonat In der Logik ist ein Fehler aufgetreten:
         
      Logik 'StromKostenMonat'Datei '/usr/local/smarthome/logics/kostenmonat.py'Zeile 11
         Hauptroutine der Logik
      Exceptionname 'Monat' is not defined​​ 

      PHP-Code:

      #!/usr/bin/env python3
      # kostenmonat.py
      # Berechne die Anzahl der Stunden seit Monatsbeginn
      Tage datetime.datetime.now().day
      Stunden 
      datetime.datetime.now().hour
      Monatsstunden 
      = (Tage 24) + Stunden
      start 
      str(Monatsstunden) + 'h'
      from lib.item import Items
      items 
      Items.get_instance()

      item items.return_item('Messung.Strom.Verbrauch.' Monat)

      # Berechne die Stromkosten sowie den vebrauch des aktuellen Monats und schreibe das Ergebnis in ein Item
      sh.Messung.Strom.Monatsverbrauch(sh.Messung.StromBezug() - sh.Messung.Strom.Bezug.db('min'start))
      sh.Messung.Strom.KostenMonat(round(sh.Messung.Stro m.Monatsverbrauch()*0.32 + (144/12)),2)
      item(sh.Messung.Strom.Bezug.db('min'start))​ 
      Zuletzt geändert von jonny7792; 29.01.2023, 19:04.
      Gruss Oliver

      Projektleiter Technische Gebäudeausrüstung

      Kommentar

      Lädt...
      X