Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in Logic finden

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

    Fehler in Logic finden

    Hallo Kollegen,

    welchen Weg nehmt Ihr wenn Ihr einen Fehler in einer Logic habt ???

    Suche so was wie "trace" / logic manuell starten.
    ( wo man alles Schritt für Schritt manuell durchlaufen kann )

    In der "smarthome.log" steht kein fehler.

    "logger.info" werd ich als nächstes tetsten.

    In den item's hab ich schon "datalog = default"

    Alles mit Notepad ++ gemacht, UFT8 und Tab beachtet...

    Eigentlich sieht alles gut aus....
    Aber, der gelbe Teil läuft nicht ...

    Code:
    #!/usr/bin/env python
    #
    logger.info('jg_logic_ww_abschoepf_solar_ein.py Logik triggered by {}, source {}, value {}, dest {}'.format(trigger['by'],trigger['source'],trigger['value'],trigger['dest'])) 
    
    if sh.rechen.status.heizung.auto_hand()==1:        # wenn Auto JG = aus
        if sh.rechen.status.ww_zirk.abschoepf.tages() ==1:    # 0=Timeout WW Zirk
            if sh.rechen.status.ww_zirk.abschoepf()==2:
                if sh.ug_heizung.auto.zirk_ww.schalt_abschoepf()==0:    # Schalter Zirk prüf
                    sh.ug_heizung.auto.zirk_ww.schalt_abschoepf(1)
                    sh.rechen.status.ww_zirk.abschoepf.tages(0)[MARKIEREN]
            elif sh.rechen.status.speicher_eta.temp_voll_unten()==2:
                if sh.rechen.status.heizung.servicezeit()==0:    # anwesend
                    if ow_heizung.trinkwasser.temp_tw_ww_vl()<35:
                        if sh.ug_heizung.auto.zirk_ww.schalt_abschoepf()==0:    # Schalter Zirk prüf
                            sh.ug_heizung.auto.zirk_ww.schalt_abschoepf(1)
                            sh.rechen.status.ww_zirk.abschoepf.tages(0)[/MARKIEREN]

    Gruß, JG

    #2
    Gib's zu der "InteractiveConsole" eine Beschreibung ??

    Wie teste ich eine Logic ....

    Beispiel:
    PHP-Code:
    admin@smarthome:/usr/smarthomesmarthome.py -i
    Python 3.2.3 
    (default, Mar  1 201311:53:50)
    [
    GCC 4.6.3on linux2
    Type 
    "help""copyright""credits" or "license" for more information.
    (
    InteractiveConsole)
    >>> 
    sh.ug_heizung.auto.zirk_ww.schalt_abschoepf
    Traceback 
    (most recent call last):
      
    File "<console>"line 1in <module>
    AttributeError'SmartHome' object has no attribute 'ug_heizung'
    >>> sh.jg_logic_ww_abschoepf_solar_ein.py
    Traceback 
    (most recent call last):
      
    File "<console>"line 1in <module>
    AttributeError'SmartHome' object has no attribute 'jg_logic_ww_abschoepf_solar_ein'
    >>> sh.rechen.status.ww_zirk.abschoepf.tages()
    False
    >>> sh.ow_heizung.trinkwasser.temp_tw_ww_vl()
    24.125 
    Gruß, JG

    Kommentar


      #3
      remote debugging und logik aus backend starten

      Kommentar


        #4
        Ok, Keywort "remote debugging" .....

        mit "Eclipse" dazu hab ich eine Beschreibung gefunden
        HTML-Code:
        https://github.com/mknx/smarthome/wiki/Logik-Programmierung-mit-Eclipse-und-Remote-Debug-auf-Smarthome.py
        Puhhhh, kommt mir so vor, als wollte ich mit Kanonen Motten bekämpfen....

        ​​​​​​​JG
        Gruß, JG

        Kommentar


          #5
          Haiphong naja du sprichst von "( wo man alles Schritt für Schritt manuell durchlaufen kann )". -> das geht nur mit debugging.. natürlich geht es auch anders bspw. über sinnvolle logausgaben.

          geht übrigens super wenn man die logik über das backend entwickelt, dort logausgaben in die zeilen reinschreibt und immer wieder zur laufzeit die logik speichert/neu laedt und haendisch neu triggert..

          Kommentar


            #6
            Servus René, trotzdem danke ..... ( zumindest kenn ich jetzt einen - möglichen - Weg .... )

            Was das Backend ist, muß ich mir noch anschauen. ( -->> alte Version von SH )

            JG
            Gruß, JG

            Kommentar


              #7
              Haiphong https://www.smarthomeng.de/das-backend-plugin (die anderen Blogartikel sollten Dir den Umstieg auch schmackhaft machen)

              Zudem wirst Du schwer zum alten smarthome.py hier noch Support kriegen. Du solltest also dringend upgraden!

              Kommentar


                #8
                Logging war die Lösung .....

                Manchmal sieht man den Wald vor Bäumen nicht ...( das "sh." hat gefehlt )
                und ich hab's Stunden angeschaut ...

                Code:
                2018-06-26 18:07:01 ERROR    ww_abschoepf_solar_ein Logic: ww_abschoepf_solar_ein, File: /usr/smarthome/logics/jg_logic_ww_abschoepf_solar_ein.py, Line: 13, Method: <module>, Exception: name 'ow_heizung' is not defined
                Traceback (most recent call last):
                  File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                    exec(obj.bytecode)
                  File "/usr/smarthome/logics/jg_logic_ww_abschoepf_solar_ein.py", line 13, in <module>
                    if ow_heizung.trinkwasser.temp_tw_ww_vl()<35:
                NameError: name 'ow_heizung' is not defined
                Gruß, JG

                Kommentar

                Lädt...
                X