Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: UZSU (Universelle Zeitschaltuhr)

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • callidomus
    antwortet
    Hi Niko,

    Zitat von 2ndsky Beitrag anzeigen
    Die Methode heißt aber _sun... laut Pep8

    geht das so nicht. Oder übersehe ich was?
    Du hast Recht. "Gehen" tut es aber, man sollte _Methoden allerdings nicht von außerhalb aufrufen. __Methoden kann man von außerhalb nicht aufrufen.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • michael74
    antwortet
    Danke,

    es klappt jetzt alles. Auch das neue Widget

    Aber das es an dem Einrücken liegt, oh man das hätte ich nicht gedacht.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Ich glaub Du hast da Probleme mit dem File und den Einrückungen in der _init_.py. Die ist nicht original. Nochmal vom GitHub kopieren und am besten nicht formatieren sondern 1:1 kopieren.

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Die Fehlermeldung lautet doch:
    Code:
     IndentationError: expected an indented block
    Ein Einrückungsfehler, IMHO mußt Du die Zeilen unter [uzsu] einrücken oder aber Du hast in der __init__.py was geändert:

    Code:
    [uzsu]
        class_name = [URL="http://redaktion.knx-user-forum.de/lexikon/UZSU/"]UZSU[/URL]
        class_path = plugins.[URL="http://redaktion.knx-user-forum.de/lexikon/uzsu/"]uzsu[/URL]
    Gruß,
    Bernd

    Einen Kommentar schreiben:


  • michael74
    antwortet
    Hallo,

    ich bin ziemlich neu hier und hab gleich mal ein Problem mit dem uzsu Plugin, besser gesagt mit __init__.py

    Im Log sieht man eine Exception.

    Code:
    Init SmartHome.py 1.0-5-g5300605
    Init SmartHome.py 1.0-5-g5300605
    2014-09-04 20:03:25 ERROR    Main         Plugin uzsu exception: expected an indented block (__init__.py, line 27)
    Traceback (most recent call last):
      File "/usr/smarthome/lib/plugin.py", line 53, in __init__
        plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
      File "/usr/smarthome/lib/plugin.py", line 79, in __init__
        exec("import {0}".format(classpath))
      File "<string>", line 1, in <module>
      File "/usr/smarthome/plugins/uzsu/__init__.py", line 27
        _items = {} # item buffer for all uzsu enabled items
             ^
    IndentationError: expected an indented block
    Den Inhalt der __init__.py habe ich direkt von Github herunterkopiert.

    https://github.com/mknx/smarthome/bl...su/__init__.py

    Hier noch die Plugin.conf

    Code:
    [uzsu]
    class_name = UZSU
    class_path = plugins.uzsu
    Also ich komm hier nicht weiter ;-(

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Die Methode heißt aber _sun... laut Pep8

    _single_leading_underscore: weak "internal use" indicator. E.g. "from M
    import *" does not import objects whose name starts with an underscore.
    geht das so nicht. Oder übersehe ich was?

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Zitat von 2ndsky Beitrag anzeigen
    @Marcus
    Eventuell wäre es hier eh sinnvoll die Berechnung in eine Library Methode abzulegen, dass andere Plugins/Logiken das für eigene Sachen verwenden können?
    Das ist doch in einer Methode ausgelagert. In lib/scheduler.py

    Kleiner Teaser, ich habe den scheduler überarbeitet, in Zukunft kann man crontab durch folgendes ablösen:

    Code:
    init value=Init | time=sunrise offset=+1m value=Sonnenaufgang+1Minute | time=07:00 days=0,1,2,3,4 holidays=no value=Arbeit | time=10:00 days=5,6 holidays=yes value=Frei
    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Hm, dazu kann vielleicht Marcus mehr sagen. Der Code der das sunrise und sunset Zeug berechnet ist aus einem anderen Teil von Marcus übernommen und da es funktioniert hat, habe ich nicht versucht das weiter zu verstehen.

    @Marcus
    Eventuell wäre es hier eh sinnvoll die Berechnung in eine Library Methode abzulegen, dass andere Plugins/Logiken das für eigene Sachen verwenden können?

    Einen Kommentar schreiben:


  • Dragonos2000
    antwortet
    Hi,

    diesen Fehler hatte (habe ?) ich sporadisch auch, schon bevor ich die UZSU implementiert hatte- vermute die Ursache also nicht darin.

    Ich konnte es aber nie zuverlässig reproduzieren...

    Gruss
    Jochen.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Moin Niko,

    durch die geniale Kombi des Plugins mit dem Frontend habe ich inzwischen alle meine Logiken mit sunset/sunrise auf die UZSU umgestellt. Soweit so gut.

    Allerdings sieht es mir nun so aus, dass sich evtl. aufgrund der geballten sunset/sunrise Anfragen (>10) irgendwas verhaspelt....
    Nun wird es kurios: Im Logfile findet sich dann bspw. an einem Tag am Morgen die folgende Fehlermeldung, die Logik wird noch sauber getriggert und am Abend ist dann Essig. Bsp. von heute:
    Code:
    2014-08-28 06:25:37 ERROR    uzsu_UZSU.RolloBueroNord Error parsing time sunrise: 'Sun' transits below the horizon at 2014/8/27 11:15:39
    2014-08-28 06:25:38 ERROR    uzsu_UZSU.TasterLED Error parsing time 6:00<sunrise<8:00: 'Sun' transits below the horizon at 2014/8/27 11:15:39
    Kurios auch deshalb, da bspw. am gestrigen Tag die ähnlichen Meldungen kamen, allerdings hier wiederum von anderen Logiken, welche am heutigen Tag "Meldungsfrei" durchgelaufen sind.
    Getriggert werden die Logiken aktuell zur Fehlereingrenzung mit sunrise bzw. sunset bzw. via 6<sunset<8 oder so.

    Hier im Forum gab es die Meldung schon einmal, allerdings bringt mich die Fehlerbehebungvon damals nicht weiter, da das "Problem" ja fluktuiert.

    Any ideas?

    Vielen Dank & viele Grüße,
    Oliver

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Okay, mein Fehler. Dachte da sollte noch vom Scheduler ne Ausgabe für die nächste Ausführung kommen. Kommt bei mir aber auch nicht.

    Wenn du mir mal eine Minimalkonfiguration zusammen stellst, damit ich das bei mir nachstellen kann, mit genauen Anweisungen um es reproduzieren zu können, versuche ich das mal nach zu stellen.

    Einen Kommentar schreiben:


  • fanta2k
    antwortet
    das ist das vollständige debug log.

    um die schaltzeit ist nur eine zeile im log für die uzsu.

    das andere sind halt nur die schaltbefehle aus der szene

    2014-08-24 22:00:00,282 DEBUG uzsu_OG.buero.uzsu_nacht Item OG.buero.szenen.nacht = 1 via UZSU None None -- item.py:__update:363
    2014-08-24 22:00:00,292 DEBUG uzsu_OG.buero.uzsu_nacht Item OG.buero.storeN.abs_angle = 255 via Scene OG.buero.szenen.nacht None -- item.py:__update:363
    2014-08-24 22:00:00,313 DEBUG uzsu_OG.buero.uzsu_nacht Item OG.buero.storeO.abs_angle = 255 via Scene OG.buero.szenen.nacht None -- item.py:__update:363
    2014-08-24 22:00:00,334 DEBUG uzsu_OG.buero.uzsu_nacht Item OG.buero.storeS.abs_angle = 255 via Scene OG.buero.szenen.nacht None -- item.py:__update:363

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    da sollte aber eigentlich noch etwas mehr im Log stehen... daher bitte das vollständige Debug Log posten.

    Einen Kommentar schreiben:


  • fanta2k
    antwortet
    wie geschrieben, es landet bei doppelten senden (1 minute später) kein 2ter eintrag im log.

    setze ich 1,0 für das gleiche item dann hab ich auch jeweils einen eintrag im log, setze ich 1,1 dann nur einen eintrag im log.


    2014-08-24 08:00:00,522 DEBUG uzsu_OG.buero.uzsu_tag Item OG.buero.szenen.tag = 1 via UZSU None None -- item.py:__update:363

    2014-08-24 08:01:00,014 DEBUG uzsu_OG.buero.uzsu_tag Item OG.buero.szenen.tag = 0 via UZSU None None -- item.py:__update:363

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Zitat von fanta2k Beitrag anzeigen
    im log wird die uzsu aber nur ausgelöst wenn ich zwischenzeitlich OG.buero.uzsu_nacht auf 0 setze (switch in der visu).
    Dann bitte mal das vollständige Log posten. Es sollte eigentlich gehen. Zumindest gibt es nichts im Plugin, dass es verhindert.

    Zitat von Mike01 Beitrag anzeigen
    Kann ich mit einer Logik eine Zeitschaltuhr aktivieren/deaktivieren ?
    Ungetestet, da gerade keine Installation zur Hand. Wenn du nur das active Flag verändertst, bekommt das die UZSU evtl nicht mit. Also mit

    Code:
    sh.item.uzsu.active = True
    oder

    Code:
    sh.item.uzsu['active'] = True
    Bin mir aber auch nicht sicher, ob das überhaupt geht, direkt auf das Item als Dictionary zu zugreifen. Alternativ, was auf jeden Fall gehen sollte, das Dict auslesen, verändern und neu setzen:

    Code:
    value = sh.item.uzsu()
    value['active'] = False
    sh.item.uzsu(value)

    Einen Kommentar schreiben:

Lädt...
X