Seite 1 von 1

TXT 4.0 Uhrzeit auslesen

Verfasst: 17 Mai 2025, 10:04
von calliope
Der TXT 4.0 Controller zeigt im Display eine Uhrzeit an. Wie kann ich diese auslesen? Einen Block habe ich nicht gefunden. Es müsste aber mit Python funktionieren. Die Hilfe (KI) sagt mit import machine. Das gibt es aber beim TXT 4.0 Python nicht.
ImportError: No module named 'machine'

Re: TXT 4.0 Uhrzeit auslesen

Verfasst: 17 Mai 2025, 10:16
von fishfriend
Hallo...
Geht momentan (!) über Import Time.
Schau dir mal das Beispiel TM_A2 vom AddOn KI an. Da wird dem Bildnamen die Zeit angehängt.
So wie ich das sehe gibt es bald einen extra Block dafür.
Kann schon sein, dass der in der momentan verfügbaren Version schon drinn ist, aber das Beispiel von oben läuft .
Mit freundlichen Grüßen
Holger

Re: TXT 4.0 Uhrzeit auslesen

Verfasst: 17 Mai 2025, 10:30
von tintenfisch
Das funktioniert, unabhängig vom TXT, bspw. über das datetime Modul, welches Python von Haus aus mitbringt:

Code: Alles auswählen

>>> import datetime
>>> datetime.datetime.now().time()
datetime.time(10, 27, 31, 555872)
>>> datetime.datetime.now().time().isoformat()[:5]  # Nur die Stunde/Minuten
'10:27'
>>>

Re: TXT 4.0 Uhrzeit auslesen

Verfasst: 17 Mai 2025, 11:32
von calliope
Vielen Dank für die Antworten. Ich habe es jetzt so gemacht. Da kann ich jeden Wert als Zahl aus der Liste holen.
Wenn ich dann noch die Zeitzone auf dem Controller auf Germany stelle, und der Controller ins Internet kommt, stimmt die Zeit auch.

Code: Alles auswählen

import time
time_list = list(time.localtime())
# time.struct_time(tm_year=2025, tm_mon=5, tm_mday=16, tm_hour=11, tm_min=3, tm_sec=18, tm_wday=4, tm_yday=136, tm_isdst=0)
# [2025, 5, 16, 11, 3, 18, 4, 136, 0]

Re: TXT 4.0 Uhrzeit auslesen

Verfasst: 17 Mai 2025, 11:41
von tintenfisch
Die Umwandlung des Rückgabewertes zu einer Liste kann man sich m.E. sparen (je nach Kontext, resp. was Du damit vorhast), da der Rückgabewert, sollte es Dir darum gehen, dass Du per Index auf die Werte zugreifen kannst, das bereits anbietet:

Code: Alles auswählen

>>> ltime = time.localtime()
>>> ltime[0]
2025
>>> ltime[1]
5
>>> ltime[2]
17
>>> # ... und so weiter