-
Notifications
You must be signed in to change notification settings - Fork 12
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
WebUI: Anzeige des DutyCycle (einzelner Geräte, Zentrale, etc.) #46
Comments
Nach meinen Recherchen dauert 1 Byte 0,81 Sekunden. Die bereits im Web angezeigte Länge Demzufolge müsste zu Was ich jedoch nicht weiß:
|
Millisekunden ;)
Das könnte man ja überprüfen wenn man die interne Berechnung der CCU damit vergleicht.
Hmm, die SPI-Telegramme zu sampeln ist kein Problem. Aber wie erkenne ich dass jetzt gesendet wird? |
Hmm, gute Frage. In der AskSin++ gibt es das STX-Command, das den CC1101 auf TX schaltet, gefolgt von einem 100µS Delay: In der CC1101 Doku S. 54, 19.6 Timing liegen die Zeiten (je nachdem aus welchem Modus man kommt), die das Modul zum Einschwingen braucht, bei max. 800µS. Wir können diese geringe Latenz aber meiner Meinung nach auch vernachlässigen. |
Geschlossen? Warum? |
Zu schnell/viel aufgeräumt 😎 |
Wieso? Technisch sollte es doch machtbar sein den DutyCycle je Gerät zu berechnen und mit darzustellen, oder?!? |
Ich könnte mir schon vorstellen, dass ich doch noch mal muse finde. |
Habe mal den Gegencheck gemacht: Das ergibt nach meinen Berechnungen (zu später Stunde) nach Abschnitt 12 Data Rate Programming |
Finde die Idee gut und so ein Feature nett, jedoch wuerde ich das unbedingt konfigurierbar oder als 2. Kuchen (der ist sowieso immer gut😀) vorschlagen. Die Torte mit den Telegrammanzahlen ist m.E. ein sehr hilfreiches Tool, die Aktivitaet der Geraete schnell zu ueberblicken. Das sollten wir uns nicht nehmen. |
Im Analyzer XS habe ich nun mal etwas eingebaut:
|
Das passt nicht wirklich. Und alle Byte zusammengezählt sind es 21 bis 37, jeweils ohne Burst. |
Ausgehend von diesen Byte-Zählungen muss die Formel hier eher so lauten: // len + 11 * 0.81 => transmission time in ms
// 1% airtime allowed => 36sec * 1000ms/sec is 100% DC
const duration = (telegram.len + 11) * 0.81;
if (telegram.flags.burst) {
// 360 ms burst instead of 4 bytes preamble
duration = duration + 360 - 4 * 0.81;
}
const dc = (telegram.len + 11) * 0.81 / 360; |
Laut ccc "attacking homematic" enthält das Längen-Byte die gesamte Telegrammlänge ohne das Byte für die Länge selbst. Ab ca. 6:20 min |
Die Frage ist halt, was man als Telegramm definiert. |
Ahhh! Jetzt hab ich die Diskrepanz verstanden 👍 |
Laut Kapitel 15 im CC1101 Datenblatt wird Preamble, Syncword und CRC tatsächlich auch vom CC1101 hinzugefügt. Hat eQ-3 nicht mal vor ein paar Jahren die DC-Berechnung gefixt, und danach viel höhere Werte bekommen? Vielleicht war das ein ähnlicher Fehler. Gerade bei kurzen Telegrammen hat man etwa 50% Abweichung. Wenn man die Bursts unter den Tisch fallen lässt noch viel mehr :-) |
Habe mal versucht, das indirekt an Hand der Stromaufnahme des CC1101 zu verifizieren. Die Stroeme gem. Kap. 8 im Datenblatt findet man recht exakt so vor. Deduziert man daraus die Dauer des Tx-Modus und setzt das gleich mit der Dauer, in der der Traeger gesendet wird, ist der a.G. obiger Ueberlegungen ermittelte DC eigentlich noch zu klein: Mit der Modemconfig der AskSin (DRATE_M=0x93, DRATE_E=0x08) ergibt sich gem. Kap. 12 eine Datenrate von 9.992 kBaud bzw. bei 2-FSK 1249 Bytes/s. bzw. 0.80ms/Byte, wie Jerome ja auch schrieb. Mit einem Telegramm der Laenge 23 im Beispiel unten, also insg. gesendeten 34 Bytes, muesste sich somit eine Sendezeit von ca. 27ms ergeben. Die Dauer der Stromausnahme von ca. 34mA = Tx Modus deutet jedoch auf ca 35ms Sendezeit hin. Hoffe, ich liege falsch und das wird nicht der naechste Fix bei eQ-3 ;-) |
Werden während der gesamten Zeit auch Nutzdaten gesendet? |
Dachte auch zwischendurch, dass evtl die Praeambel oefter wiederholt wird, habe jedoch eben einen Test mit brutto 53 uebertragenen Bytes gemacht, die fuehrten zu 50ms entsprechend hoher Stromaufnahme. Das passt irgendwie nicht zur Bytedauer von 0.80ms. |
@jens-maus kam die Idee, den DutyCycle im Web mit anzeigen zu lassen.
Folgende Überlegungen dazu:
Die Telegrammlänge (in Bytes) ist bekannt.
Es gilt noch zu ermitteln, wie lange die Übertragung eines einzelnen Bytes dauert.
Es müssten dann - je Gerät - die Sendezeiten in einem Zeitfenster der letzten 60 Minuten addiert werden.
Anschließend wird der prozentuale Anteil der errechneten Sendezeit von den max. 36 erlaubten Sekunden in 60 Minuten (1% je Stunde) angezeigt.
Vorschlag:
Das Tortendiagramm könnte dahingehend angepasst werden, dass nicht die Anzahl an Nachrichten dargestellt wird, sondern die Summe der Telegramm-Bytes.
The text was updated successfully, but these errors were encountered: