Hallo, Marcus meint das Debug Log.
Das ist doch machbar. Ich hab ja das Gleiche Problem, schaffe es aber erst am Wochenende.
Gruß,
Hendrik
von unterwegs gesendet
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Problem mit eval
Einklappen
X
-
Guten morgen,
nun das liegt daran, dass es eben auch Leute gibt, die sich nicht jeden Tag mit Python, Linux und Co beschäftigen und teilweise nur raten können, was die Antworten hier zu bedeuten haben.
Ich mach das nicht um jemand zu ärgern und ebenfalls nicht weil ich zu faul bin, sondern weil mir dann eben einfach der Zusammenhang fehlt. Es hat mich schon über eine Stunde gekostet die letzte Information über das Item aus dem System zu kitzeln.
Auf mein Problem hin kamen als Antwort:
undCode:Meine Glaskugel sagt: Da kommt ein string an.
undCode:Direkt sehe ich außer den redundanten "visu = yes" keine Fehler. Evtl. mal eine funktional gleiche Logic erstellen und zu Beginn "trigger" ausgeben, damit man weiß wo es her kommt. Evtl. unsauber: Abfrage "num(value) < 2", dann aber dem bool-Item value zuweisen. Da würde ein "1,5" auch durchkommen (aber wohl korrekt gecastet). Evtl. Zuweisung von woanders? Z.b. irgendwo in einer Logic item("1") statt item(1)? Mal den eval_trigger entfernen oder eben mit gesonderter Logik.
Code:Nee bitte keine " die sind nicht - mehr - nötig. Ich vermute der String kommt von der Visu. Python 3 ist etwas pingeliger geworden.
Ich hatte zumindest gehofft, dass euch der letzte Post weiterhilft.
Ansonsten weiß ich immer noch nicht welche Informationen ich nun eigentlich bereit stellen soll.
95% aller Probleme sitzen 20cm vor dem Bildschirm.Code:Das Problem liegt mit sehr großer Wahrscheinlichkeit bei Dir.
Offensichtlich bin ich aber nicht der einzige, schließlich haben im anderen Thread drei Leute das gleiche Problem. Und das Problem tritt erst seit dem Update auf.
Entfernt - man sollte erst denken und dann schreiben - schlechte Laune an der falschen Stelle abgeladen.
Einen Kommentar schreiben:
-
Hallo,
was ist daran so schwierig die angefragten Informationen bereit zu stellen?
Das eval funktioniert bei mir. Wenn der Kontext nicht passt, kann ich den Fehler bzw. das Verhalten reproduzieren. Das Problem liegt mit sehr großer Wahrscheinlichkeit bei Dir.
Viel Glück
Marcus
Einen Kommentar schreiben:
-
also ich hab mal source, value und type ausgelesen.
Sieht doch alles gut aus oder? Ich seh immer noch keinen FehlerCode:2013-12-11 20:40:36,941 INFO logik_test Item Source :EG.Buero.Temperatur.modus -- logik_test.py:<module>:4 2013-12-11 20:40:36,947 INFO logik_test 34 -- logik_test.py:<module>:5 2013-12-11 20:40:36,957 INFO logik_test <class 'int'> -- logik_test.py:<module>:6
Einen Kommentar schreiben:
-
Auch an dieser Stelle wäre ein Debug Log mit Kontext hilfreich
Bis bald
Marcus
Gesendet von unterwegs
Einen Kommentar schreiben:
-
Hallo,
ich habe das Gleiche Problem und hatte dies getestet. (Zitat aus dem Nachbar-Thread)
Code:og.Elternbad.heizung.komfort-eval Item og.Elternbad.heizung.komfort: problem evaluating value if value < 2 else (sh.og.Elternbad.heizung.modus() & 0x01): unorderable types: str() < int()
Code:[og] [[Elternbad]] [[[heizung]]] [[[[modus]]]] type = num knx_send = 3/2/29 knx_dpt = 20 knx_init = 3/2/29 sqlite = cache [[[[komfort]]]] type = num knx_send = 3/2/31 knx_dpt = 1 sqlite = cache eval = value if value < 2 else (sh.og.Elternbad.heizung.modus() & 0x01) eval_trigger = og.Elternbad.heizung.modusWoher kann das type "str()" kommen?Code:sh.og.Elternbad.heizung.komfort() 0 >>> type(0x01) <class 'int'> >>> type(sh.og.Elternbad.heizung.komfort()) <class 'int'> >>> type(sh.og.Elternbad.heizung.komfort() & 0x01) <class 'int'> >>> type(sh.og.Elternbad.heizung.modus() & 0x01) <class 'int'> >>> type(sh.og.Elternbad.heizung.modus() ) <class 'int'> >>> sh.og.Elternbad.heizung.modus() 40
Moment...
Das kann es nicht sein, oder?
Nee, ich denke nicht...Code:type(sh.og.Elternbad.heizung.komfort) <class 'lib.item.Item'>
Das einzige, das ich nicht prüfen kann ist "value". Aber das sollte ja
sh.og.Elternbad.heizung.komfort()
sein, oder?
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Nee bitte keine " die sind nicht - mehr - nötig. Ich vermute der String kommt von der Visu. Python 3 ist etwas pingeliger geworden.
Bis bald
Marcus
Gesendet von unterwegs
Einen Kommentar schreiben:
-
Direkt sehe ich außer den redundanten "visu = yes" keine Fehler.
Evtl. mal eine funktional gleiche Logic erstellen und zu Beginn "trigger" ausgeben, damit man weiß wo es her kommt.
Evtl. unsauber: Abfrage "num(value) < 2", dann aber dem bool-Item value zuweisen. Da würde ein "1,5" auch durchkommen (aber wohl korrekt gecastet).
Evtl. Zuweisung von woanders? Z.b. irgendwo in einer Logic item("1") statt item(1)? Mal den eval_trigger entfernen oder eben mit gesonderter Logik.
Einen Kommentar schreiben:
-
Ja, soweit kann ich noch folgen. Die Frage ist, warum kommt der da an:
oder noch konkreter, warum kommt jetzt ein string und früher nicht.Code:[[[[modus]]]] type = num knx_dpt = 20 knx_init = 5/2/64 [[[[txtmodus]]]] type = str visu = yes [[[[komfort]]]] type = bool visu = yes knx_dpt = 1 knx_send = 5/2/34 visu_acl = rw eval = value if value < 2 else (sh.EG.Buero.Temperatur.modus() & 0x01) eval_trigger = EG.Buero.Temperatur.modus
Einen Kommentar schreiben:
-
- √ - Problem mit eval
Hallo,
ich mach hier mal einen neuen Thread auf, die Fehlermeldung hat ja ersteinmal nichts mit dem RTR zu tun.
Diese Fehlermeldung tritt auf, seit ich die Version 1.0 installiert habe. Hat also vorher funktioniert. Was hat sich hier geändert?
Code:2013-12-01 23:28:05,991 WARNING EG.Buero.Temperatur.komfort-eval Item EG.Buero.Temperatur.komfort: problem evaluating value if value < 2 else (sh.EG.Buero.Temperatur.modus() & 0x01): unorderable types: str() < int() -- item.py:__run_eval:331
Stichworte: -


Einen Kommentar schreiben: