Giter Club home page Giter Club logo

Comments (12)

elektron-bbs avatar elektron-bbs commented on September 27, 2024 1

Bei CP= und SP= müsste auch [0-7] reichen.

from signalduino_tool.

HomeAutoUser avatar HomeAutoUser commented on September 27, 2024

@sidey79 die Differenzen sind von den beiden Firmwareversionen. Ich werde versuchen mir es anzusehen.

Was oder wie lässt du den Test ablaufen das er die RAWMSG als nicht plausibel aussonderst ? Durch ein RegEx?

edit: RFD-FHEM/RFFHEM#926 ja, es prüft durch ein RegEx und da fällt die andere Version durch. Alle RAWMsg die gepostet werden von den Usern mit der inoffiziellen Version werden es sein.

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

Vermutlich kommt es davon ja.
Die regex sind die, welche wir ja entwickelt hatten.
Ist halt die Frage, wie streng die Prüfung sein soll.
Wir könnten am Ende ja alle möglichen Zeichen erlauben, denn das im Blick halten was alles vorkommen kann finde ich nicht so prickelnd.
Die Prüfung deaktivierbar machen halte ich auch für keine alltags taugliche Lösung.

from signalduino_tool.

elektron-bbs avatar elektron-bbs commented on September 27, 2024

Die Tests sollten doch wohl nicht strenger sein wie ein funktionierendes FHEM. Solange zusätzliche Variablen in den Nachrichten die Weiterverarbeitung im laufenden FHEM nicht stören, sollten sich auch die Tests nicht daran stören.
Oder willst du zukünftig Nachrichten vom MapleSduino generell ausschließen?

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

@elektron-bbs

Den Ursprung nahm die Sache ja, dass die Prüfung auf valide Daten zu schwach ist und es zu warnings kommt.
Dann hatte @HomeAutoUser die Idee, dass mittels einer Regex zu prüfen und was nicht passt wird erst gar nicht angerührt.
Jetzt haben wir Tests mit Fehlerhaften Daten und eine Regex die sich an dem Datenformat aus https://github.com/RFD-FHEM/SIGNALDuino orientiert. Andere Datenformate kenne ich erst mal nicht und wüsste auch nicht, wie die zu interpretieren wären. Aufgefallen ist es halt dadurch, dass im json wohl Daten stammen nicht nicht mit der Firmware aus https://github.com/RFD-FHEM/SIGNALDuino stammen.
In wie weit das nun Auswirkungen auf FHEM hat oder nicht, dazu kann ich überhaupt keine Aussage treffen.

Ich weiss auch selbst nicht was ich will.
Wenn wir die Regexprüfung weglassen, riskieren wir wieder "Müll" zu verarbeiten und es kommt zu warnings
Wenn wir unbekanntes in der regex erlauben wollen, wüsste ich gerade nicht wie, da ich noch nicht mal die Positionierung innerhalb des Datenstrings kenne.
Irgendwie eine Zwickmühle.

from signalduino_tool.

elektron-bbs avatar elektron-bbs commented on September 27, 2024

Ich würde nur prüfen, was wir benötigen und zusätzliche Variablen, sofern sie nicht den Ablauf stören, einfach ignorieren.

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

@elektron-bbs

Verstehe ich Recht, dass Du auf eine Regex Prüfung verzichten würdest, welche die Bestandteile der rmsg auf valide Werte prüft?

from signalduino_tool.

elektron-bbs avatar elektron-bbs commented on September 27, 2024

Natürlich nicht komplett auf die Prüfung verzichten, sondern auf relevante Bestandteile beschränken.
Z.B. stören doch diese Bestandteile "O;s=4;m1;" die weitere Verarbeitung in FHEM nicht. Also muss auch der Test diese nicht bemängeln.

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

m1 ist ja bekannt
O ist ebenfalls bekannt

s=4 ist ein unbekannter Wert.

Ich habe im Moment folgende Regex:
^MS;(?:P[0-7]=-?\d+;){3,8}D=[0-7]+;CP=[0-9];SP=[0-9];(?:R=\d+;)?(?:O;)?(?:m=?[0-9];)?$

Ich hab schon mal versucht mittels oder groups auch unbekanntes zu erlauben, das klappte bislang noch nicht:
^MS;(?:P[0-7]=-?\d+;){3,8}D=[0-7]+;CP=[0-9];SP=[0-9];((?:R=\d+;)?|(?:O;)?|(?:m=?[0-9];)?|(?:[A-Za-z0-9]+;)+)$

Das ist ja nun quasi das Problem, etwas erlauben das unbekannt ist, aber in den bekannten Feldern auch nur valides zulassen.

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

So scheint es auf den 1. Blick zu klappen. Ganz wohl ist mir dabei nicht gerade ;)

^MS;(?:P[0-7]=-?\d+;){3,8}D=[0-7]+;CP=[0-9];SP=[0-9];((?:R=\d+;)?|(?:O;)?|(?:m=?[0-9];)?|(?:[A-Za-z0-9=]+;)*)$

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

@elektron-bbs
@HomeAutoUser

Ich habe die regex angepasst:

RFD-FHEM/RFFHEM@5023de8

passt noch nicht 100% aber es wird

from signalduino_tool.

sidey79 avatar sidey79 commented on September 27, 2024

@HomeAutoUser
@elektron-bbs

Ich hab nun genau den Fall, den ich nicht gefixt bekomme:

https://regex101.com/r/oQBkKv/1

Mach ich es zu streng, sind beide nicht erlaubt, mache ich es zu lose, dann werden beide verarbeitet, obwohl das ja dann nicht korrekt ist.

from signalduino_tool.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.