NEWS
PARSER - REGEX-EINSTELLUNGEN
-
Ich möchte aus meiner Heizungssteuerung bestimmte Werte (Temperaturen und Durchflußmengen in Liter) in den iobroker mit dem Adapter Parser herüberholen.
Wenn ich in den Webbrowser folgende Syntax eingebe, so bekomme ich auch die Tempteratur (I3=Speicher Mitte), Screenshot 1.
http://admin:xxxxxxxx@192.168.1.20/INCLUDE/api.cgi?jsonnode=2&jsonparam=I3
Dazu habe ich mir im Parser die Zeile angelegt, nur den Wert bekomme ich nach Start nicht angezeigt.
Kann es eventuell am Detailparameter RegExc liegen ?Ich habe schon mal Werte bekommen, aber jetzt funktioniert es nicht mehr.
Herzlichen Dank im Voraus für eure Unterstützung.
-
@goetschhofer Versuch es mal mit
(-?\d+\.\d+)
. Deine Werte sind ja zweistellig.Und für das nächste Mal: bitte Texte und nicht nur Screenshots posten.
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
http://admin:xxxxxxxx@192.168.1.20/INCLUDE/api.cgi?jsonnode=2&jsonparam=I3
musst du dort Zugangsdaten eingeben?
Oder reicht das mitgeben im URL wie gezeigt auch wenn es vorher noch keine Session mit dem Browser gab@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
bekomme ich auch die Tempteratur (I3=Speicher Mitte), Screenshot 1.
Warum nicht als Text, damit man damit mal spielen kann?
-
Danke für die prompte Antwort.
Ja, ich brauche ein Passwort, dies habe ich aber hier mit xxxxx versehen.
Das Passwort ist in der Abfrage includiert, sieht man im Screenshot Configuration.Anbei noch 2 Screenshots zu Log und Ereignisse.
-
Was meinst du mit "Warum nicht als Text, damit man damit mal spielen kann ?
Meinst du das Ergebnis der Abfrage ?ABFRAGE-TEMP.-UVR16x2-4.3.2021.txt
Das Passwort musste ich bei der Abfrage im Parser mitgeben, da, wenn man sich eine bestimmt Zeit nicht anmeldet, das PW ansonsten händisch jedesmal eingegeben werden muss.
-
@unclesam said in PARSER - REGEX-EINSTELLUNGEN:
(-?\d+.\d+)
Ich habe jetzt RegEx so wie vorgeschlagen angepasst.
Die Werte haben sich nach Neustart des Adapters noch nicht verändert.
Kann es noch an Num oder Typ liegen ?Wie ist das Feld-Num: und Typ: auszuwählen ?
Num: ist 3 korrekt ? 2 Stellen vor Komma und 1 Stelle nach Komma ?
Typ: boolean, number, Nummer mit Komma, string, Json ?Danke
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Meinst du das Ergebnis der Abfrage ?
Wobei das ein json ist, das über javascript / Blockly auch ganz einfach geht
Ja - und Danke!
ue[^\d]+([\d.]+)
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Wie ist das Feld-Num: und Typ: auszuwählen ?
Num: ist 3 korrekt ? 2 Stellen vor Komma und 1 Stelle nach Komma ?
Typ: boolean, number, Nummer mit Komma, string, Json ?num: 0
typ: Number@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Das Passwort musste ich bei der Abfrage im Parser mitgeben, da, wenn man sich eine bestimmt Zeit nicht anmeldet, das PW ansonsten händisch jedesmal eingegeben werden muss.
und das funktioniert sicher?
deswegen frage ich ja -
Mit RegEx: (-?\d+.\d+), Num: 3 und Typ: number konnte ich jetzt den Wert I3=Speicher Mitte catchen !
Nur leider rührt sich bei den anderen Temperaturen bei gleicher Einstellung nichts.Mit dieser Abfrage über den Browser, jetzt auch ohne PW, bekomme ich alle Werte aus der Regelung. Siehe txt-Datei.
http://192.168.1.20/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O,Sg,SdEin weiteres Problem besteht noch, dass das CMI(=Webserver als Controlling & Monitoring Interface) von der Technischen Alternative nur alle 30 Sekunden eine Abfrage zulässt, da ansonsten die Meldung "TOO MANY REQUESTS" kommt.
CMI_JSON_API_V3.pdfSiehe DokuCMI-JSON-API:
5.3.2.jsonparam
The jsonparam parameters are separated through a comma (",").
Parameter Description Additional information I Inputs Information can be limited by adding the number of the value. Otherwise, all available values will be received.ABFRAGE-ALLE-WERTE-TECHNISCHE ALTERNATIVE-REGELUNG-UVR16x2-4.3.2021.txt max. 16 values/parameter
Example:
jsonparam=I,O,D,Sg,Sd
jsonparam=I1,I2,O3,Sg1
jsonparam=I,O1,O2,O3
O Outputs
D DL-inputs (x2 only)
Sg System-values: General (x2 only)
Sd System-values: Date (x2 only)
St System-values: Time (x2 only)
Ss System-values: Sun (x2 only)
Sp System-values: Electrical power (CAN-EZ2 only)
Na Analog network inputs (1611 only)
Nd Digital network inputs (1611 only)
M M-Bus (CAN-BC2/RSM610-M only)Wobei das ein json ist, das über javascript / Blockly auch ganz einfach geht.
Wie könnte ich dies einfacher über JS oder Blockly lösen ?Danke im Voraus für deine Hilfe.ABFRAGE-ALLE-WERTE-TECHNISCHE ALTERNATIVE-REGELUNG-UVR16x2-4.3.2021.txt
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Mit RegEx: (-?\d+.\d+), Num: 3 und Typ: number konnte ich jetzt den Wert I3=Speicher Mitte catchen !
und warum so einen unspezifischen RegEx?
Außerdem verstehe ich ihn nicht. Warum fasst du alles als Gruppe zusammen?Auch mit dem komme ich nicht auf Num=3 sondern nur auf Num=1
Ist denn der von dir gepostete Text vollständig gewesen?
Oder war das nur ein Ausschnitt?@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Siehe txt-Datei.
welche?
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Ein weiteres Problem besteht noch, dass das CMI(=Webserver als Controlling & Monitoring Interface) von der Technischen Alternative nur alle 30 Sekunden eine Abfrage zulässt, da ansonsten die Meldung "TOO MANX REQUESTS" kommt.
wie hoch hast du denn dein Intervall eingestellt.
Standard sin 5 Sekunden.
Dann musst du das auf >30000 stellen -
Punkt 5.3. ist nur ein Ausschnitt aus der Doku, siehe pdf.
Ich habe jetzt nochmals die Maximumabfrage erstellt.
http://192.168.1.20/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O,D,Sg,Sd,St,Ss,La,LdHier sind jetzt meines Erachtens wirklich alle Werte aus der Regelung enthalten.
Ich habe das Poll-Intervall vorhin schon von 45000 auf 60000 ms hinaufgesetzt.
ABFRAGE-ALLE-WERTE-TECHNISCHE ALTERNATIVE-REGELUNG-UVR16x2-4.3.2021.txt
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Ich habe jetzt nochmals die Maximumabfrage erstellt.
warum nicht gleich
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
den Wert I3
in dem jetzigen Code finde ich keinen I3
-
Ja, du hast natürlich Recht, dies findet man nicht 1:1. Ist sicher sehr verwirrend.
In der Regelung sind dies die EINÄNGE, welche bei der ABFRAGE als I-Werte=INPUTS bezeichnet werden.
Als Ergebnis scheinen diese dann als A=ANALOG-WERTE auf.Sieht man bei Vergleich der Werte des Screenshots aus der Regelung mit dem Ergebnis aus der Abfrage.
Kurz eine Überleitungsbrücke:
Eingang-1-REGELUNG = I=INPUT-1 bei der Abfrage = ERGEBNIS der ABFRAGE=A1=ANALOGER WERT
- Wert ist nicht ganz ident, da Zeitdifferenz bei Auswertung, aber 2. u. 3. Wert ist ident.
Danke
ABFRAGE-EINGÄNGE-INPUTS-ANALOG-AUSWERTUNG-4.3.2021.txt
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Als Ergebnis scheinen diese dann als A=ANALOG-WERTE auf.
und diese Werte sind in diverse Gruppen unterteilt:
- Inputs 1-16
- Outputs 1-11
- DL-Bus 1-5
- General 1-13
- Date 1-10
- Time 1-8
- Sun 1-10
Habe es bisher noch nicht hinbekommen den Wert eindeutig zu treffen
Ich nehme mal an, es ist der- Inputs
- Number 3
- "A"
- 61.3
- "A"
- Number 3
Leider ist das kein echtes json, somit geht es auch mit JS nicht so einfach. Da müsste man sich mehr mit der Struktur befassen, und ggf. die Arrays auflösen.
Was ich abe r nicht aus dem Ärmel schütteln kann -
Ja, korrekt dies sind Gruppen und dies ist der Input Nummer 3, Temp. Speicher Mitte.
Du hast mir ja eh schon sehr viel Zeit bei diese Thema gewidmet, ich habe vollstes Verständnis dafür, wenn wir es bei dem Punkt mal ruhen lassen.
Ich werde mich noch weiter damit beschäftigen, vielleicht gelingt mir, auch aufgrund deiner bisherigen Info, noch was.Ist nicht selbstverständlich diese Unterstützung in einem Forum und ich habe durch dieses Forum in den letzten 7 Wochen schon sehr viel geschafft.
Vielen herzlichen Dank einstweilen.
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Ich werde mich noch weiter damit beschäftigen
uts[^\{]+\{[^\{]+\{[^\{]+\{[^\{]+\{[^\{]+\{[^\"]+\"A[^\d]+([\d.]+),
ist zwar ein Monster, aber bringt nur den gewünschten Wert
-
Vielleich hilft dir noch folgender Hinweis.
Um 16 h 05 habe ich den Wert 61,6 Grad I3=Speicher Mitte bekommen, nach dem durchprobieren der Einstellungen.
Wenn man jetzt bei diesem Wert mit der Maus stehen bleibt, so wird ein Fenster mit folgendem Inhalt angezeigt:
Wert: 61,6 Grad
Bestätigt: True
Zeitstempel: 2021-03-04 16:05:22.143
Letzte Änderung: 2021-03-04 16:04:54.823
Quelle: systemadapter.parser.0
Benutzer: system.user.admin
Quality: device error [0x44]Was hat dieser device Error 0x44 zu bedeuten ?
Bei allen anderen Werten ist der Zeitstempel vom 23.1.2021 von der letzten Änderung, detto: device error
Ich habe ja am Anfang des Thread mal erwähnt, dass ich ja schon mal Werte bekommen habe.Habe es jetzt auch mit deiner neuen RegEx probiert, klappt aber nicht.
Parser ist in der Übersicht auf grün. Verbunden mit Host: wahr, Lebenszeichen: wahr.
Danke
-
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
Was hat dieser device Error 0x44 zu bedeuten ?
keine Ahnung.
ich vermute dass da dein Gerät blocktvielleicht kommt der User ioBroker doch nicht ohne/mit der aktuellen Art der Eingabe der Credentials auf den Server
-
Hallo Homoran,
das fast gleiche Thema gibt es schon hier im iobroker Forum zur Vorgängerregelung UVR1611.
Die Abfragen bei der UVR1611 anstatt der UVR16x2 sind aber fast ident.Blockly:
Ich habe ehrlich gesagt, noch nie ein blockly angelegt, daher wäre ich dir sehr dankbar, wenn du mir bei den ersten helfen könntest.
Danke im Voraus.
https://forum.iobroker.net/topic/11317/script-zum-auslesen-eines-c-m-i-von-ta-uvr1611/2
https://forum.iobroker.net/search?term=UVR1611&in=titlesposts&page=3
https://forum.iobroker.net/topic/11219/heizungswerte-einer-uvr1611-via-cmi-mittels-json-anlegen-refreshen -
@goetschhofer sagte in PARSER - REGEX-EINSTELLUNGEN:
das fast gleiche Thema gibt es schon hier im iobroker Forum zur Vorgängerregelung UVR1611.
dann hast du ja noch einiges zu tun
Viel Erfolg
-
Das war jetzt nur ein Hinweis von mir, welchen ich zu dem Thema gefunden habe, da du mal angemerkt hast, dass es eventuell mit einem Blockly einfacher wäre.
Wäre dir für deine Hilfe schon sehr dankbar.