Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
autotimer übergibt den wert als string und nicht als int...
Echt!?
Das würde ich als Bug betrachten, sinnvollerweise sollte der Wert entweder wie eingegeben oder dann im Typ des Items gesetzt werden
Erfass das doch als Issue auf GitHub.
In der log war folgende Meldung, worauf ich int(value) gesetzt habe...
Code:
WARNING EG.office.window.open.state-eval Item EG.office.window.open.state: problem evaluating value if value < 2 or sh.EG.office.window.o
pen.state() == 1 else sh.EG.office.window.open.state(): unorderable types: str() < int()
bei sh.py ist der value vom gleichen typ wie das trigger-item (gemeint sind die, die in eval_trigger stehen). Dadurch kann ein string-Item auch ein bool item triggern, das finde ich wichtig und sollte nicht geändert werden. Das war schon immer so. Wenn man durch crontab, cycle, autotimer etc. einen Konstante mitschickt, scheint es immer string zu sein.
Falls Du was dran ändern willst:
Eingegebener Typ ist ok, wobei dann die Frage der Notation für eine 2 als string fehlt, das müsste man noch festlegen
In den Typ des Items vor dem eval "casten" wäre nicht so toll, denn ich halte es für Vorteilhaft, wenn man einen Wert setzten kann, der Außerhalb des Wertebereiches des Items liegt. Natürlich muss dann dieser Wert im eval abgeprüft werden.
String wär ja dann '2'.
Eigentlich könnte man einfach ein eval() um den autotimer-wert machen. Das Problem ist halt die Rückwärtskompatibilität, weil bisher ja für Strings keine ' notwendig waren.
Gibt es einen vernünftigen Platz (ausserhalb des Forums?) wo man mal ein Wiki zu sämtlichen eval / autotimer / hysterese Tricks posten kann?
Gerade solche Erklärungen wäre vielleicht auch anderen hilfreich...
Das Problem ist halt die Rückwärtskompatibilität, weil bisher ja für Strings keine ' notwendig waren.
Hi,
das sehe ich auch als Problem. Eigentlich müsste man für int eine neue Notation einführen und die alte weiterhin (als string) behalten. Nur ist genau das komplett kontra-intuitiv.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar