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_execute: StromMonat: 'name'
    2023-01-29  17:35:30 ERROR    lib.logic           Exception: unexpected EOF while parsing (strommonat.py, line 11)
    > 
    Traceback (most recent call last):
    >   
    File "/usr/local/smarthome/lib/logic.py", line 1034, in _generate_bytecode
    >     self.bytecode = compile(code, self.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))
    >                                                                                                ^
    > 
    SyntaxError: unexpected 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
      , Exception: name '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.Strom. Bezug() - 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