Ankündigung

Einklappen
Keine Ankündigung bisher.

Python 3.2 Migration in develop bzw. 1.0 Release

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

  • callidomus
    antwortet
    Hi Hendrik,

    Zitat von henfri Beitrag anzeigen
    Hm, auch das folgende
    das ist doch genau die gleiche (veraltete) Codestelle. Ich habe das in develop optisch entschärft. Du musst natürlich git pull machen um davon zu profitieren.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Danke für eure Antworten,
    Zitat von mknx Beitrag anzeigen
    es sind alles drei keine Bugs auf SH.py Seite. Das sind Probleme auf Deiner Seite.
    Vllt. würde es Dir helfen Logiken zu schreiben, anstelle alles in ein eval zu quetschen.
    Zum Ersten meiner Punkte: was würde in einer Logik anders sein?
    Das Problem ist, dass er "none" nicht durch "float" teilen möchte. Und die Logik lief wenn mich nicht alles täuscht bis vorgestern.

    Beim dpt gucke ich noch einmal nach. Mir war es bisher nicht aufgefallen und du weißt ja am Besten, an welchen Baustellen du gerade tüftelst, und ob es ein Bug sein kann.

    _ und __variablen sind ein NoGo. Da bist Du auf Dich alleine gestellt. Ach ja, return_parent() gibt es schon sehr lange.
    Ok, das wusste ich nicht. Ist aber schade, denn so war die Logik schön kompakt -siehe Stromzähler-Thread.

    Warum ist parent() privat? Ist doch praktisch!

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Zitat von mknx Beitrag anzeigen
    ausnahmsweise war es kein Bug,
    Hm, auch das folgende
    Code:
    Traceback (most recent call last):
      File "/usr/local/smarthome/plugins/onewire/__init__.py", line 181, in identify_sensor
        page3 = self.read(path + 'pages/page.3')  # .encode('hex').upper()
      File "/usr/local/smarthome/plugins/onewire/__init__.py", line 75, in read
        return self._request(path, cmd=2)
      File "/usr/local/smarthome/plugins/onewire/__init__.py", line 145, in _request
        raise owex('no payload for {0}'.format(path))
    plugins.onewire.owex: no payload for /bus.0/26.7ED96B010000/pages/page.3
    ??

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Hendrik,

    es sind alles drei keine Bugs auf SH.py Seite. Das sind Probleme auf Deiner Seite.
    Vllt. würde es Dir helfen Logiken zu schreiben, anstelle alles in ein eval zu quetschen.

    _ und __variablen sind ein NoGo. Da bist Du auf Dich alleine gestellt. Ach ja, return_parent() gibt es schon sehr lange.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Robert,

    Zitat von Robert Beitrag anzeigen
    ABER: Wie erstellst du deine Beiträge? Guck mal, ich hatte obigen Post um 17:45 noch mal präzisiert, weil ich nach einem schnellen Blick in den Code vermutet hatte, das eine selektive Abfange der Exception eine Möglichkeit wäre. Kopierst du die alten Sachen mühevoll aus der Mitteilungsemail? Dann muss ich mir das Editieren abgewöhnen (wenngleich ich das übersichtlicher finde und auf meinen Post-Counter pfeife...)
    ich habe unterwegs angefangen zu antworten und es erst zu Haus losgeschickt.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von henfri Beitrag anzeigen
    Hallo,

    ich hab hier noch drei:

    Gruß,
    Hendrik
    Vorsicht, gleich kommt Marcus mit der Keule. Zumindest die beiden unteren sind ja keine Bugs...

    Item: Na, müsstest halt mal schaun, was du da eingetragen hast. Vielleicht ist es auch ein DPT 9?

    _parent: War ja "privat" würde Marcus sagen. *g* Ist jetzt "__parent" (zwei Unterstriche - und damit noch viel viel böser). Dafür gibt es jetzt offiziell und public ".return_parent()".

    Datenbank: kein Plan. Mit der bin ich auch noch über Kreuz. Werd wohl zu rrdtool zurück wechseln (müssen).

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    ich hab hier noch drei:
    Code:
    sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1i', '1i'))*60.0*1000.0:
    Ergibt:
    Code:
    unsupported operand type(s) for -: 'float' and 'NoneType'
    Und (unabhängig):
    Code:
    2013-10-21 02:43:15 WARNING  Main         KNX: Wrong payload '115e' for ga '6/5/1' with dpt '5.001'.
    (Mir fällt gerade ein: Müsste dpt 5 (ohne .001) sein, oder? Ich meine das Item kommt aus 2ndsky Export-Skript, bin aber nicht sicher.

    Und noch einen:
    Code:
    2013-10-21 00:00:02 WARNING  Allgemein.Lampen.FlurEingang.Verbrauch_self Item Allgemein.Lampen.FlurEingang.Verbrauch_self: problem evaluating sh.Allgemein.Lampen.FlurEingang.Verbrauch_self()+self._parent.Dimmwert()/255*self._parent.Leistung()*self._parent.Dimmwert.age()/60.0/60.0: 'Item' object has no attribute '_parent'
    Warum gibt's _parent nimmer?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von mknx Beitrag anzeigen
    Wenn das eval nichts zurück liefert, dann ist das None. Ich habe gerade Code eingecheckt für den Fall. Wenn None, dann wird kein Update durchgeführt.
    Merci. Denke dass ist generell für so Torfunktionen hilfreich.

    ABER: Wie erstellst du deine Beiträge? Guck mal, ich hatte obigen Post um 17:45 noch mal präzisiert, weil ich nach einem schnellen Blick in den Code vermutet hatte, das eine selektive Abfange der Exception eine Möglichkeit wäre. Kopierst du die alten Sachen mühevoll aus der Mitteilungsemail? Dann muss ich mir das Editieren abgewöhnen (wenngleich ich das übersichtlicher finde und auf meinen Post-Counter pfeife...)

    Zitat von mknx Beitrag anzeigen
    Sicher? Ich habe das die Tage aufgeräumt, er bekommt nichts mehr zurück
    Hm, präzisiere "Tage". Ist mir "die Tage" *g* aufgefallen als ich mit dem obigen eval-Sachen rumgespielt habe. Ich behalte es im Auge!

    Viele Grüße
    Robert

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Robert,

    Zitat von Robert Beitrag anzeigen
    PHP-Code:
            eval_trigger Waermepumpe.DOBuffer
            
    eval = sh.Waermepumpe.Waermetauscher.Eingang() if ((sh.Waermepumpe.DOBuffer.prev_value() == 4) and (sh.Waermepumpe.DOBuffer() == 0)) else self() 
    Frage in diesem Context: WAs passiert jetzt, wenn ich "else self()" weglassen würde? Könnte man das ganze so bauen, dass man das ohne Fehler weglassen kann? Weiß nicht was eval zurückliefern würde, evtl. ginge eine Exception-abhängige Geschichte, die alles andere nach wie vor bemäkeln würde.
    Wenn das eval nichts zurück liefert, dann ist das None. Ich habe gerade Code eingecheckt für den Fall. Wenn None, dann wird kein Update durchgeführt.

    Zitat von Robert Beitrag anzeigen
    Ach so: Ich glaube wenn ein Item existiert, aber (noch) keine History dafür existiert, dann liefert "Series" was zurück, was smartVISU 2.6 veranlasst, den Plot gar nicht zu zeichnen. Gibt es dafür eine elegante Lösung?
    Sicher? Ich habe das die Tage aufgeräumt, er bekommt nichts mehr zurück.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • Robert
    antwortet
    "prev_", "last_", "veryverylast_", "theonebeforeprev_" - ich bin mit allem glücklich was mein Diff reduziert. :-)

    In meinem Patch war natürlich noch der Fehler, last/prev_value nach dem eigentlichen Update zu kopieren... Wollte nur gucken ob du auch aufpasst. ;-)

    So sieht dann eine flankenabhängige Torfunktion aus:
    eval_trigger = Waermepumpe.DOBuffer
    eval = sh.Waermepumpe.Waermetauscher.Eingang() if ((sh.Waermepumpe.DOBuffer.prev_value() == 4) and (sh.Waermepumpe.DOBuffer() == 0)) else self()
    Frage/Vorschlag in diesem Kontext: Wenn ich "else self()" weglasse, würde es momentan eine Warning geben. Könnte man das ganze Exception-abhängig so bauen, dass man das ohne Warnung weglassen kann? "except ValueError: pass" oder so...

    Sicher, dass du "prev_age" jedes mal berechnen möchtest? Schätze mal das wird von 1000 Items nur von einem aufgerufen.

    Ach so: Ich glaube wenn ein Item existiert, aber (noch) keine History dafür existiert, dann liefert "Series" was zurück, was smartVISU 2.6 veranlasst, den Plot gar nicht zu zeichnen. Gibt es dafür eine elegante Lösung?

    Grüße
    Robert

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Zitat von mknx Beitrag anzeigen
    es gibt jetzt die Methode prev_value() die den vorletzten Werte zurück gibt. Der letzte/aktuelle Wert steht ja bereits mit Item() zur Verfügung.
    So wars eigentlich gemeint. *thumbs_up*

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Hendrik,

    Zitat von henfri Beitrag anzeigen
    ich denke, das hier ist noch ein Bug:
    Code:
    2013-10-19 10:47:15 ERROR    1w-disc      no payload for /bus.0/26.7ED96B010000/pages/page.3
    ausnahmsweise war es kein Bug, sonder nur zu viel Output der verwirrt. Ich habe den Output reduziert/angepasst. Es erscheint eine Warning das etwas mit dem Sensor nicht passt.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hi Niko, Hi Robert,
    Zitat von 2ndsky Beitrag anzeigen
    Als kleine Anregung, wie wäre es noch mit last_value() für den letzten Wert?
    es gibt jetzt die Methode prev_value() die den vorletzten Werte zurück gibt. Der letzte/aktuelle Wert steht ja bereits mit Item() zur Verfügung.

    Bis bald

    Marcus

    Einen Kommentar schreiben:


  • stromie
    antwortet
    Zitat von mknx Beitrag anzeigen
    Hallo Ronny,

    ja sorry, da habe ich gestern Nacht noch etwas geändert.

    Ist gefixed.

    Bis bald

    Marcus
    OK Danke für die Info, dachte das ich schon wieder was übersehen hatte.

    Grüße Ronny

    Einen Kommentar schreiben:


  • callidomus
    antwortet
    Hallo Ronny,

    ja sorry, da habe ich gestern Nacht noch etwas geändert.

    Ist gefixed.

    Bis bald

    Marcus

    Einen Kommentar schreiben:

Lädt...
X