FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: is2late am 15 Februar 2021, 18:22:32

Titel: (Gelöst) RegEx-Problem - " soll weg
Beitrag von: is2late am 15 Februar 2021, 18:22:32
Guten Abend,

nach Stunden am RegEx-Tester frage ich dann doch lieber mal  ;):

"name": "Innensirene Waschkeller", "tag": "", "cond": "{WEB_MSG_AC_FAILURE}", "cond_ok": "0", "battery": "", "battery_ok": "1" ist die Ausgabe HTTPMOD.  Meine RegEx

[(?s)(Innensirene Waschkeller)+.*?("cond_ok": )([^}]?\d] spuckt für "cond_ok":  immer "0 aus.  Das Tüttelchen muss weg.

Hat jemand eine Idee, wie es sich eliminieren lässt?

Vielen Dank im Voraus,
Ingo
Titel: Antw:RegEx-Problem - " soll weg
Beitrag von: Christoph Morrison am 15 Februar 2021, 18:26:49
Das sieht erstmal wie JSON ohne Klammern aus. Ist das sicher das, was roh von HTTPMOD ausgelesen wird?
Titel: Antw:RegEx-Problem - " soll weg
Beitrag von: is2late am 15 Februar 2021, 18:36:11
Ja. Lese so auch die Temperaturen und die Luftfeuchte aus; klappt einwandfrei. Bloß da sieht der String anders aus, nämlich im Ausschnitt so:

0,"status": "{WEB_MSG_TS_DEGREE} 20.46 {WEB_MSG_RH_HUMIDITY} 24"}]

Hierfür benutze ich (?s)(Garage)+.*?(\{WEB_MSG_TS_DEGREE})([^ }]*).  Im Problemstring haben wir halt noch das hartnäckige " vor der gesuchten Ziffer.

Titel: Antw:RegEx-Problem - " soll weg
Beitrag von: Christoph Morrison am 15 Februar 2021, 18:41:59
Poste doch bitte mal ein komplettes list des Devices. Mit JSON wäre das viel, viel einfacher.
Titel: Antw:RegEx-Problem - " soll weg
Beitrag von: is2late am 15 Februar 2021, 18:45:23
Hier ist es:

"sid": "ZS:b58601", "su": 1, "alarm_status": "", "status_ex": "1", "hue": "-1", "sat": "-1", "ctemp": "-1", "hue_cmode": "-1", "hue_cie_x": "-1", "hue_cie_y": "-1", "hue_color_cap": "0", "nuki": "-1", "shutter_turn": 0,"status": "{WEB_MSG_PSS_ON} {WEB_MSG_PSM_POWER} 0.1 {WEB_MSG_POWER_METER_ENERGY} 359.4"},
{"area": 1, "zone": 43, "type": 22, "type_f": "{D_TYPE_22}", "name": "Innensirene Waschkeller",
"tag": "",
"cond": "{WEB_MSG_AC_FAILURE}", "cond_ok": "0", "battery": "", "battery_ok": "1",
"tamper": "", "tamper_ok": "1", "bypass": 0, "rssi": "{WEB_MSG_STRONG} 6",
"resp_mode": [0,5,5,5,5,0], "ammeter": "0", "ver": "SRAC_00.00.03.02TC",
"bypass_tamper": 0,


Von JSON habe ich leider überhaupt keine Ahnung.
Titel: Antw:RegEx-Problem - " soll weg
Beitrag von: is2late am 15 Februar 2021, 18:51:38
Ich habs:

(?s)(Innensirene Waschkeller)+.*?(cond_ok": )\"([^,]*)" bringt eine saubere Null (0) ohne Tüttelchen. Wahrscheinlich ist einiges unnützes Zeug in der RegEx, aber wenns funktioniert...

Vielen Dank fürs Mitdenken!