(Gelöst) RegEx-Problem - " soll weg

Begonnen von is2late, 15 Februar 2021, 18:22:32

Vorheriges Thema - Nächstes Thema

is2late

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
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Christoph Morrison

Das sieht erstmal wie JSON ohne Klammern aus. Ist das sicher das, was roh von HTTPMOD ausgelesen wird?

is2late

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.

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Christoph Morrison

Poste doch bitte mal ein komplettes list des Devices. Mit JSON wäre das viel, viel einfacher.

is2late

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.
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

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!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox