NEWS
problems with regExp filtering
-
Hello All,
i have a problem with filtering a number from a long string......
This is an example of the mqtt Ticket string i have to filter the number 11 of pe=p1=1,p2=1,w1=110,w2=84,pe=11,vv=116,sv=6,cs=0,cd=0,am=0,o1=0,o2=0,do=90,lv=204,cj=0,kn=246,g1=0,g2=0,b1=0,b2=0,md=0,d1=1,e1=0:0,f1=23:59,h1=205,d2=0,e2=0:0,f2=23:59,h2=80,d3=0,e3=0:0,f3=23:59,h3=80,sg=0,sp=80,st=0,tl=18,th=19,tc=0,tf=0,fc=202409090159,id=5,a0=11,a1=0,a2=0,l0=2,l1=0,c0=255,c1=4,bc=137,bs=105,pt=200,it=144,m0=0,m1=0,m2=0,m3=0,d4=0,e4=0:0,f4=23:59,h4=80,d5=0,e5=0:0,f5=23:59,h5=80,lmo=1891,lmi=1368,lmf=0,uv=107,sm=0,bn=0,ct_t=7,tc_dis=0,ws=-48,fktc=0
I want to use regexp for that. Tis is my blockly.

but the datapoint i write always shows (null)

What i am doing wrong ?
pls help....
zyklop@zyklop [sagte]: mqtt Ticket string
Der Wert des Trigger-DP enthält den String.
Es ist kein Objekt, enthält also auch keine Attribute.
Der RegExp lässt sich nur auf Trigger anwenden, denn er bezieht sich auf Datenpunkt-IDs.EDIT: Versuche es mal so:

-
Soooo, das siht dann jetzt bei mir so aus, funktioniert aber nicht.....

was soll das "nimm das 2. Element" bedeuten ?! Es wäre ja wenn die 5. Zeile bzw. der 5. Wert in meiner Tabelle....oder ist da die Spalte gemeint ?
Fehlermeldungen:

javascript.0 14:07:06.358 inforegistered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
javascript.0 14:14:45.711 info
getState(id=mqtt.0.hame_energy.HMJ-2.device.18cedf983edc.ctrl, timerId=undefined) => {"val":"p1=1,p2=1,w1=62,w2=58,pe=40,vv=116,sv=6,cs=0,cd=0,am=0,o1=1,o2=1,do=90,lv=204,cj=2,kn=896,g1=102,g2=102,b1=0,b2=0,md=0,d1=1,e1=0:0,f1=23:59,h1=205,d2=0,e2=0:0,f2=23:59,h2=80,d3=0,e3=0:0,f3=23:59,h3=80,sg=0,sp=80,st=0,tl=23,th=23,tc=0,tf=0,fc=202409090159,id=5,a0=40,a1=0,a2=0,l0=1,l1=0,c0=255,c1=4,bc=824,bs=191,pt=1674,it=934,m0=0,m1=0,m2=0,m3=204,d4=0,e4=0:0,f4=23:59,h4=80,d5=0,e5=0:0,f5=23:59,h5=80,lmo=1963,lmi=1420,lmf=0,uv=107,sm=0,bn=0,ct_t=7,tc_dis=0,ws=-50,fktc=0","ack":true,"ts":1780315781104,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1780315781104}
javascript.0 14:14:45.712 error
Error: TypeError: Cannot read properties of undefined (reading 'split')
javascript.0 14:14:45.712 error
at Object.<anonymous> (script.js.common.Auslesen_Energiedaten_Solarspeicher:13:25)javascript.0 14:14:45.712 error
at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:1772:38)javascript.0 14:14:45.712 error
at JavaScript.onStateChange (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:752:25)javascript.0 14:14:45.712 error
at JavaScript.emit (node:events:519:28)javascript.0 14:14:45.712 error
at JavaScript.emit (node:domain:489:12)javascript.0 14:14:45.712 error
at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11138:53)javascript.0 14:14:45.712 error
at processImmediate (node:internal/timers:484:21) -
H Homoran verschob dieses Thema von Blockly
-
Soooo, das siht dann jetzt bei mir so aus, funktioniert aber nicht.....

was soll das "nimm das 2. Element" bedeuten ?! Es wäre ja wenn die 5. Zeile bzw. der 5. Wert in meiner Tabelle....oder ist da die Spalte gemeint ?
Fehlermeldungen:

javascript.0 14:07:06.358 inforegistered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
javascript.0 14:14:45.711 info
getState(id=mqtt.0.hame_energy.HMJ-2.device.18cedf983edc.ctrl, timerId=undefined) => {"val":"p1=1,p2=1,w1=62,w2=58,pe=40,vv=116,sv=6,cs=0,cd=0,am=0,o1=1,o2=1,do=90,lv=204,cj=2,kn=896,g1=102,g2=102,b1=0,b2=0,md=0,d1=1,e1=0:0,f1=23:59,h1=205,d2=0,e2=0:0,f2=23:59,h2=80,d3=0,e3=0:0,f3=23:59,h3=80,sg=0,sp=80,st=0,tl=23,th=23,tc=0,tf=0,fc=202409090159,id=5,a0=40,a1=0,a2=0,l0=1,l1=0,c0=255,c1=4,bc=824,bs=191,pt=1674,it=934,m0=0,m1=0,m2=0,m3=204,d4=0,e4=0:0,f4=23:59,h4=80,d5=0,e5=0:0,f5=23:59,h5=80,lmo=1963,lmi=1420,lmf=0,uv=107,sm=0,bn=0,ct_t=7,tc_dis=0,ws=-50,fktc=0","ack":true,"ts":1780315781104,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1780315781104}
javascript.0 14:14:45.712 error
Error: TypeError: Cannot read properties of undefined (reading 'split')
javascript.0 14:14:45.712 error
at Object.<anonymous> (script.js.common.Auslesen_Energiedaten_Solarspeicher:13:25)javascript.0 14:14:45.712 error
at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:1772:38)javascript.0 14:14:45.712 error
at JavaScript.onStateChange (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:752:25)javascript.0 14:14:45.712 error
at JavaScript.emit (node:events:519:28)javascript.0 14:14:45.712 error
at JavaScript.emit (node:domain:489:12)javascript.0 14:14:45.712 error
at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11138:53)javascript.0 14:14:45.712 error
at processImmediate (node:internal/timers:484:21)@zyklop davor müsste bei dir nicht Liste sondern speichert stehen, weil du deine Liste so benannt hast.
Und dort das zweite Element von
-
-
Hatte die Fehlermeldungen hinzugefügt, kann man auf dem bild schlecht sehen.....daher nochmal als Text....
Funktioniert aber leider immer noch nicht, Fehlermeldungen:Error: TypeError: Cannot read properties of undefined (reading 'split')
at Object.<anonymous> (script.js.common.Auslesen_Energiedaten_Solarspeicher:13:25)
at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:1772:38)
at JavaScript.onStateChange (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:752:25)
at JavaScript.emit (node:events:519:28)
at JavaScript.emit (node:domain:489:12)
at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11138:53)
at processImmediate (node:internal/timers:484:21) -
Hatte die Fehlermeldungen hinzugefügt, kann man auf dem bild schlecht sehen.....daher nochmal als Text....
Funktioniert aber leider immer noch nicht, Fehlermeldungen:Error: TypeError: Cannot read properties of undefined (reading 'split')
at Object.<anonymous> (script.js.common.Auslesen_Energiedaten_Solarspeicher:13:25)
at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:1772:38)
at JavaScript.onStateChange (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:752:25)
at JavaScript.emit (node:events:519:28)
at JavaScript.emit (node:domain:489:12)
at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11138:53)
at processImmediate (node:internal/timers:484:21)@zyklop manchmal einen debug Baustein mit dem Inhalt der Liste speichert
Ääähm, ist die Bezeichnung von Liste und Zählvariable identisch?
Dann nimm bitte doch Liste für die beiden vorkommen der Liste

-
@zyklop und nochmal das selbe für Liste unter setze liste
Aber nicht deaktivieren
Oder läuft schonUnd alles ins Maul von mache
-
spitze jetzt geht es......hatte das nicht gesehen mit dem Versatz.....(Maul von Mache)
ich muss jetzt noch weitere Werte haben, kann ich das hier mit reinbasteln ?
so geht es nun final:
ich würde eine weitere Schleife dranhängen, die Variablen und Bedingungen anpassen und dann das weitere Ergebnis in einen weiteren DP schreiben
-
okay, also alles in der Schleife widerholen mit den anderen Werten.......Klasse, so mach ich´s....
-
-
spitze jetzt geht es......hatte das nicht gesehen mit dem Versatz.....(Maul von Mache)
ich muss jetzt noch weitere Werte haben, kann ich das hier mit reinbasteln ?
so geht es nun final:
-
@zyklop [sagte]: Hab das jetzt so und es klappt prima....
Die vielen Schleifen benötigen zu viele Ressourcen.
@Homoran sagte:
Alle Zählvariabken gleich benennen ist nicht gut.Das stört nicht, da die Schleifen nacheinander abgearbeitet werden.
@Homoran sagte in problems with regExp filtering:
Und dann ganz unten die Schleife beenden.
Welche denn?Es wird die Schleife abgebrochen, in der "Schleife beenden" enthalten ist, also nur die letzte.
-
@zyklop [sagte]: Hab das jetzt so und es klappt prima....
Die vielen Schleifen benötigen zu viele Ressourcen.
@Homoran sagte:
Alle Zählvariabken gleich benennen ist nicht gut.Das stört nicht, da die Schleifen nacheinander abgearbeitet werden.
@Homoran sagte in problems with regExp filtering:
Und dann ganz unten die Schleife beenden.
Welche denn?Es wird die Schleife abgebrochen, in der "Schleife beenden" enthalten ist, also nur die letzte.
-
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden




