Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MU Message obwohl MS ? #100

Open
HomeAutoUser opened this issue Oct 17, 2018 · 9 comments
Open

MU Message obwohl MS ? #100

HomeAutoUser opened this issue Oct 17, 2018 · 9 comments

Comments

@HomeAutoUser
Copy link
Contributor

Hallo,
ich habe folgendes Signal aufgezeichnet von einem Brandmelder direkt von der Platine.
Beim Betrachten dachte ich, müsste das nicht ein MS Signal sein? Dennoch werden alle Nachrichten nur als reines MU erkannt. Sollte ich komplett falsch liegen, so bitte eine kurze Erläuterung. Ich verbinde MS Signal mit einem Sync.

Anbei mal das Signal zur Verdeutlichung.

signal_with_sync
signal_with_repeat

Time Bit 0 low - avg (µS): 1404
Time Bit 0 high - avg (µS): 794
Time Bit 1 low - avg (µS): 2740
Time Bit 1 high - avg (µS): 794
Time Sync low - avg (µS): 915
Time Sync high - avg (µS): 8118

Pause between repeat - cur (µS): 19837
Pause between repeat - min (µS): 19288
Pause between repeat - max (µS): 19837

Legend:

0 or 1: bitvalue
S: Syncpulse
u: pulse / unknown bitvalue

Signal: S001101000000010100101101u

@sidey79
Copy link
Contributor

sidey79 commented Oct 17, 2018

Ich hatte den Sync anhand von Bausteinen damals so spezifiziert dass zuerst ein high Pegel kommt und dann ein langer low Pegel.

image

Wenn ich deine Aufzeichnung korrekt deute, dann ist der lange Pegel hier ein high und danach kommt ein kurzer low Pegel?

@HomeAutoUser
Copy link
Contributor Author

HomeAutoUser commented Oct 17, 2018

Wenn ich deine Aufzeichnung korrekt deute, dann ist der lange Pegel hier ein high und danach kommt ein kurzer low Pegel?

Genau Richtig

zwischenablage-4

Der Pegel der Aufzeichnung beginnt mit LOW.
Als erstes kommt ein High Pegel LANG mit dazugehörigen LOW Pegel kurz was der Sync ist.

@sidey79
Copy link
Contributor

sidey79 commented Oct 17, 2018

Da müsste man die MS Erkennung umbauen.
Vielleicht den Zustand Low oder high ignorieren.

@HomeAutoUser
Copy link
Contributor Author

Das ist ja soeben nur ein "Musterbeispiel". Würde es "Sinn" machen dies anzugehen oder einfach ignorieren?
Ich vermute, wir kommen hier wieder zu dem "alten" Thema MS Erkennung. hm...

@HomeAutoUser
Copy link
Contributor Author

Ich habe mir das nochmal durch den Kopf gehen lassen.
Derzeit haben wir vermutlich eine "falsche" Auffassung von MS. Für mich ist ein MS Signal sobald ein SyncPlus vor dem Signal auftritt. Eine Pause ist aber kein Sync. Der Umbau der Routine ist sicherlich schwierig bzw, da wären Zuarbeiten von Signalen notwenidig, das du alle Fälle berücksichtigen könntest.

Derzeit wird es aber so sein, das wir nur MS zum teil richtig erkennen bzw sogar ein signal als MS deuten. Wie denkst du darüber? Die Erkennung antasten nochmal, so belassen "halb" oder die MS Erkennung herausnehmen was aber zum tragen hätte, manche Protokolle gehen vorerst nicht mehr.

@sidey79
Copy link
Contributor

sidey79 commented Oct 19, 2018

Ich würde es gerne anpassen.

Allerdings möchte ich erst mal die Anpassung mit den Strings finalisieren.

Da muss ich noch ein bisschen was korrigieren. In der Hoffnung, dass der Microcontroller dann auch Mal wieder stabil läuft würde ich endlich die Version als stabil veröffentlichen. :)

Die ganzen Änderungen müsste ich dann auch noch auf den ESP portieren, bzw. Die Code Basis zusammen führen. (Hauptsächlich Fleißarbeit)

Wenn das gemacht ist haben wir einen neuen Absprung Punkt für solche Anpassungen.

Also ja, möchte ich angehen allerdings in einer etwas umfangreicheren Anpassung.

@HomeAutoUser
Copy link
Contributor Author

Dann lass uns die Fälle gern zusammen betrachten. Ich bzw wir können sehr gern Signale in Bildform beisteuern wo ein Sync vorhanden ist in form von Sync mit anschließendem Signal und wiederkehrenden Sync und Signal ..... bis hin zu einem Signal wo ein Sync kommt mit Signal gefolgt von einer Pause, dann ein Sync und Signal und so weiter.

@sidey79
Copy link
Contributor

sidey79 commented Oct 20, 2018

Wir müssten die Erkennung generalisieren.
Es ist doch meistens so, dass viele ähnlich Lange Pulse in den Puffer kommen und dann deutlich Längere, welche eine Übertragung voneinander abgrenzen.
Das kann ein Sync oder eine Pause sein. Eigentlich ist das ja fast egal wie es genannt wird.

Vielleicht findet man so etwas leicht, wenn man einen gleitenden Mittelwert berechnet und feststellt, dass eine Pulslänge deutlich vom Mittelwert abweicht.

@sidey79
Copy link
Contributor

sidey79 commented Dec 25, 2018

Ich habe hier einen neuen Fall

MU;P0=24188;P1=-16308;P2=993;P3=-402;P4=416;P5=-967;P6=-10162;D=0123234545454523234523234545454545454545232
623452345454545454523234523234545454523234523234545454545454545232
623452345454545454523234523234545454523234523234545454545454545232
623452345454545454523234523234545454523234523234545454545454545232;CP=4;R=25;

Ich dachte gleich, das müsste doch ein MS Signal sein, was geht da denn schief:

for (uint8_t i = 0; i<patternLen; ++i) // Schleife fuer Clock
{
//if (pattern[i][0]<=0 || pattern[i][0] > 3276) continue; // Annahme Werte <0 / >3276 sind keine Clockpulse
if (tstclock == -1 && (pattern[i] >= 0) && (histo[i] > messageLen*0.17))
{
tstclock = i;
continue;
}
if ((pattern[i] >= 0) && (pattern[i] < pattern[tstclock]) && (histo[i] > messageLen*0.17)) {
tstclock = i;
}
}

Zuerst wird hier P2 ausgewertet und auch als validen Clock Pulse erkannt. Danach kommt P4 an die Reihe und ja das ist ein besserer Clockpulse. In der Tat würde ich auch behaupten die Clock Detection passt, P4 ist ja ~2x P2.

Der Sync wird dann wir folgt gesucht:

if (message[c + 1] == p && message[c] == clock) {

Hier besteht der Sync also aus 2x Clock und 1x Sync. Hier stellt sich die Frage, ob man hier auch nach anderen Pulsen basierend auf Clock suchen sollte oder ob man es besser lässt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants