RCV_SHORT/LONG: Regex funktioniert nicht?

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
mule
Beiträge: 1169
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von mule » 24.09.2017, 23:29

Ich habe ein 40er-Device angelegt und dabei einen Channel wie folgt konfiguriert:
REG_MATCH = Enabled
RCV_SHORT = +CREG: ?,1

Da Reg-Match aktiviert ist, sollte nun bei einem RCV-Event das "?" für ein beliebiges Zeichen stehen (so wie es auch in der CUxD-Doku beschrieben ist). Dennoch wird bei bspw. bei einem RCV-Value +CREG: 0,1 kein SHORT_PRESS ausgelöst. Erst wenn ich das "?" durch eine "0" ersetze funktioniert es.
Hat jemand eine Idee woran es liegt, dass das "?" nicht richtig ausgewertet wird?
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von uwe111 » 25.09.2017, 08:43

mule hat geschrieben:Da Reg-Match aktiviert ist, sollte nun bei einem RCV-Event das "?" für ein beliebiges Zeichen stehen (so wie es auch in der CUxD-Doku beschrieben ist).
Falsch! In der CUxD-Doku steht am Anfang des Absatzes, wenn REG_MATCH deaktiviert ist, ...

Wenn REG_MATCH aktiviert ist, dann erfolgt der Vergleich direkt mittels regexec() ohne weitere Anpassungen.
Siehe auch hier:
https://linux.die.net/man/3/regexec
https://linux.die.net/man/7/regex

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

mule
Beiträge: 1169
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von mule » 25.09.2017, 09:20

Da habe ich in der Tat aktiviert statt deaktiviert gelesen. Ich sollte öfter meine Brille aufsetzen :D
Danke für den Hinweis!

Noch eine Frage: Wie kann ich ein reines Linefeed per CMD_SEND senden? Weder „\r“ noch „\xoD“ haben funktioniert. Ich habe jetzt zwar einen Workaround per Channel mit CMD_SHORT = \x0D und anschließendem Auslösen eines PRESS_SHORT gefunden, aber ich würde gerne mehr Flexibilität per CMD_SEND haben.
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von uwe111 » 25.09.2017, 09:46

mule hat geschrieben:Wie kann ich ein reines Linefeed per CMD_SEND senden? Weder „\r“ noch „\xoD“ haben funktioniert.
Wie ist Dein TTY konfiguriert? Hier gibt es Unterschiede in der Verarbeitung zwischen {CUX}, EnOcean und anderen.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

mule
Beiträge: 1169
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von mule » 25.09.2017, 09:51

Als NONE. Es handelt sich um ein GSM-Modem (Siemens TC35i) welches per Serial-USB-Adapter angechlossen ist.
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von uwe111 » 25.09.2017, 10:11

Falls Du den Datenpunkt aus HM-Script heraus setzt, könnte evtl. ein weiterer Backslash notwendig sein.
Hast Du das schon getestet?
Also "\\n" für LF line feed und "\\r" für CR carriage return.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

mule
Beiträge: 1169
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: RCV_SHORT/LONG: Regex funktioniert nicht?

Beitrag von mule » 25.09.2017, 13:39

Vielen Dank für die schnellen Antworten. Der Tipp hat geholfen!
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

Antworten

Zurück zu „CUxD“