Comments (12)
Bei CP= und SP= müsste auch [0-7] reichen.
from signalduino_tool.
@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.
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.
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.
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.
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.
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.
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.
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.
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.
Ich habe die regex angepasst:
passt noch nicht 100% aber es wird
from signalduino_tool.
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)
- X10 number of repeats to low HOT 2
- Number of repeats doesn't match default behavior HOT 7
- Number of repeats opus XT300 to low HOT 5
- SA-434-1 wrong id
- TFA 30.3208.0 - number of repeats is not number of dispatches HOT 2
- RH787T number of repeats is not number of dispatches HOT 3
- Seit Anpassung der WH3080 Daten kommt es zu einem Fehler HOT 21
- Automatisches Tests der JSON Datei HOT 10
- Button "Check it" failed HOT 6
- Can't locate lib/SD_Protocols.pm ... HOT 4
- QUIGG GT-9000 HOT 2
- Dispatch DMSG HOT 12
- Malformed MC Data in SD_Device_ProtocolList.json HOT 4
- Diskussionen / Neuerungen / Hinweise HOT 13
- DMSG stimmt eventuell nicht HOT 25
- JSON schreiben Fehler HOT 60
- FA22RF to less number of repeats expected HOT 4
- set command ProtocolList_save_to_file missing HOT 10
- get <sdtool' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from signalduino_tool.