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.
Es triggert das Tagobjekt nicht, so dass das Warning nur einmal beim Start kommt. Danach wird das Tagobjekt nicht mehr getriggert, es kommt also keine Warnung mehr, aber es funktioniert auch nicht.
Habt Ihr noch eine Idee? Es muss sich doch dieses Item irgendwie auswerten lassen...
Habe versucht, etwas über "unorderable types" heraus zu bekommen. Offenbar bedeutet dieser Fehler, dass Python die Datentypen nicht vergleichen kann. In meiner Fehlermeldung oben bezeichnet er ja "sh.zeit.uhrzeit" als "NonType()". Bedeutet das vielleicht, dass "zeit.uhrzeit" doch nicht "datetime.time" ist? Das würde erklären, warum der Vergleich nicht gelingt.
In meiner Fehlermeldung oben bezeichnet er ja "sh.zeit.uhrzeit" als "NonType()". Bedeutet das vielleicht, dass "zeit.uhrzeit" doch nicht "datetime.time" ist?
Nein, das bedeutet, dass zeit.uhrzeit keinen Wert hat.
Deshalb bin ich auf die Frage gekommen, ob dies nur beim Start geschieht. Beim Starten ist ziemlich sicher zeit.uhrzeit noch nicht gesetzt.
Die Fehlermeldung kannst du mit folgendem eval umgehen, aber funktionieren tut es ja dann trotzdem noch nicht.
Code:
eval: sh.zeit.uhrzeit() > datetime.time(6, 30) and sh.zeit.uhrzeit() < datetime.time(20, 30) if sh.zeit.uhrzeit() is not None else None
Evtl. liesse sich dieses Problem auch durch ein knx_init in zeit.uhrzeit lösen. Ich bin aber nicht sicher, ob der Wert dann tatsächlich rechtzeitig drin steht.
Zuerst würde ich aber das eval_trigger Problem lösen.
Richtig. Wenn noch nichts angekommen ist, dann kannste auch nichts auswerten. Ich weiß ohnehin nicht, warum Du das nicht einfach in eine kleine Logik packst und gut ist es. Da kannst Du prüfen ob sh.zeit.uhrzeit() eben None liefert oder nicht und wenn nicht, kannst Du prüfen wie die Zeit ist.
#Tagobjekt ist 1 am Tag und 0 bei Nacht
if sh.zeit.uhrzeit() > datetime.time(6, 30) and sh.zeit.uhrzeit() < datetime.time(20, 30):
sh.zeit.tagobjekt('true')
else:
sh.zeit.tagobjekt('false')
Leider passiert hier im Moment nichts. Ich sehe im Log auch keine Fehlermeldung... Offenbar wird auch diese Logik nicht getriggert. Ist die Angabe "watch_item" nicht richtig?
Meinst Du, ob eine Zeit vom Bus kommt? Ja, die kommt. Hier Log:
HTML-Code:
2018-10-19 22:45:33 INFO Main KNX[default]: 1.1.254 set 7/0/211 to 22:45:32
2018-10-19 22:45:33 INFO Main KNX[default]: 1.1.254 set 7/0/212 to 2018-10-19
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