FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DocCyber am 13 Februar 2017, 12:02:29

Titel: [GELÖST!] Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: DocCyber am 13 Februar 2017, 12:02:29
Hallo Forum,

Habe mir schon einen Wolf gesucht und erfolglos Verschiedenes probiert, aber ich komme nicht weiter:
Wie muss der RegEx aussehen, der aus dem STATE-Reading eines 'at'-Zeitgebers nur die Uhrzeit extrahiert, also ohne das voranstehende Next: ?

Standardausgabe:STATE        Next: 18:05:55

Danke für eure Hilfe.
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: KölnSolar am 13 Februar 2017, 12:19:57
Wofür brauchst Du es denn, also was ist der Anwendungsfall ? Je nach Art des ats steht die Zeit ja im Internal NTM oder TIMEPSEC oder immer in TRIGGERTIME_FMT mit Datum.
Grüße Markus
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: DocCyber am 13 Februar 2017, 12:57:33
Hi Markus,

Ich brauche es für das Label-Widget des FTUI. Dieses erlaubt mir, den STATE anzuzeigen. Das funktioniert auch prima, aber mir reicht die Uhrzeit.
Das geht wohl auch ... wenn ich einen RegEx angeben kann.
Die Zeit steht auch im NTM, aber nicht in einem Reading, das ich mit dem Label-Widget auslesen könnte.


EDIT:
Als ich soeben diese Antwort verfasst hatte, habe ich nochmal in die Doku des Label-Widgets geschaut: Es geht auch mit dem Parameter data-part="2" (vgl Screenshot: Unten mit data-part, oben ohne diesen Parameter). Das hatte ich zuvor überlesen...

Trotzdem würde mich grundsätzlich interessieren, ob und wie man das mit einem RegEx lösen kann.
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: Hollo am 13 Februar 2017, 13:00:47
Zitat von: DocCyber am 13 Februar 2017, 12:02:29
...der aus dem STATE-Reading eines 'at'-Zeitgebers nur die Uhrzeit extrahiert, also ohne das voranstehende Next: ?

Für mein RSS-Tablet habe ich das z.B. so gelöst:
substr((InternalVal('Abendlicht_AUS','STATE','')),6,5)
Das ergibt dann die Uhrzeit-Angabe in Stunden:Minuten ohne Sekunden.

Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: betateilchen am 13 Februar 2017, 13:00:56
Wozu regex?


(split(/ /,Value('deviceName')))[1]
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: igami am 13 Februar 2017, 13:01:58
na einfach /Next: (.+)/ testen kann man das z.B auf regex101.com
Einfacher ist es aber das Internal NTM zu nutzen
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: DocCyber am 13 Februar 2017, 13:20:08
Danke euch allen für euren Input.

Leider lässt das Widet eine der (selbst mir  ;)) bekannten "programmatischen Lösungen", wie sie von betateilchen oder hollo vorgeschlagen wurde, nicht so ohne weiteres zu. Vielmehr ist ein RegEx vorgegeben.


@igami: Danke dir, ich werde es ausprobieren!

Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: Thorsten Pferdekaemper am 13 Februar 2017, 13:36:05
Zitat von: DocCyber am 13 Februar 2017, 13:20:08Leider lässt das Widet eine der (selbst mir  ;)) bekannten "programmatischen Lösungen", wie sie von betateilchen oder hollo vorgeschlagen wurde, nicht so ohne weiteres zu. Vielmehr ist ein RegEx vorgegeben.
Du kannst aber mit den Vorschlägen ein userReading bauen und das dann in Dein Widget füttern.
Gruß,
   Thorsten
Titel: Antw:Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: DocCyber am 13 Februar 2017, 15:08:30
Hallo Thorsten,

ja, das wäre auch eine Lösung, allerdings ist es mit einem RegEx einfacher.
Die genannte Lösung von @igami funktioniert.
:)

Danke euch allen!
Titel: Antw:[GELÖST!] Für RegEx-Kenner: Nur Uhrzeit des "at"-STATE?
Beitrag von: mumpitzstuff am 14 Februar 2017, 11:37:06
[0-9]+\:[0-9]+\:[0-9]+