Zitat von mumpf
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
ESP8266 KNX mit ETS
Einklappen
X
-
Hi,
ich meinte das hier: https://knx-user-forum.de/forum/%C3%...chnikerprojekt. Guter Ansatz :-)Zitat von SirSydom Beitrag anzeigenIch hab in ganzen alten Threads gewühlt von 2014, da gings um die Konfig von DIY-Geräte.
Das ist nicht sooo schlimm, der Stack selber ist groß, die Parameter etc. brauchen eben so viel, wie sie in Binärdarstellung brauchen. Die KO haben aber eine Speicherrepräsentation im RAM (geht auch nicht anders) und die war damals recht groß. Wenn ich mich recht erinnere, 21 Byte + der eigentliche Payload. Also 22 bis 35 Byte pro KO. Das ist eine der Änderungen bei mir in meinem Fork, ich komme mit 5+Payload aus, allerdings ist der Zugriff dann umständlicher (man muss z.B. immer den richtigen DPT mitgeben usw.). Das war es mir aber wert.Zitat von SirSydom Beitrag anzeigenEs ist wohl ne ganze Menge Flash notwendig.
Das Maximum, was ich mal versucht habe, waren 350 KO, das hat noch (mit meiner Lösung) problemlos funktioniert.
Wie gesagt, Parameter brauchen exakt so viel, wie sie physikalisch als Bitrepräsentation brauchen, KO 21+Bitrepräsentation, wobei sich das in der Zwischenzeit geändert haben kann - in beide RichtungenZitat von SirSydom Beitrag anzeigenWieviel byte brauche ich pro KO und pro Parameter?
.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hi,
wieso wird in diesem Zusammenhang immer von
gesprochen und damit illegal impliziert? Es passiert nicht illegales, weder eine Schlüsselextraktion noch eine illegale Kopie noch irgendein anderes geheimes Ding. Es wird nur eine ETS-Funktion aufgerufen (deswegen muss die ETS auf dem jeweiligen Rechner installiert sein). Dieser Funktion gibt man ein XML-File und sie spuckt ein knxprod raus. Ich sehe daran nichts illegales, nur was nicht direkt unterstütztes. Die installierte ETS muss noch nicht mal lizensiert sein, es reicht vollkommen die ETS-Demo. Nur die ETS, in die später importiert wird, muss lizensiert sein (zumindest wenn man mehr als 5 Geräte nutzen will). Im Prinzip macht man nichts anderes als jeder Hersteller während seiner internen Entwicklungs- und Testphase.Zitat von jeff25 Beitrag anzeigenlegal
Dass die resultierende knxprod nicht weiterzugeben ist, liegt daran, dass man als Privatmensch keine Herstellerkennung hat. Aber solange man sich das Ding für den Privatgebrauch zusammenbastelt, ist es nicht illegal.
Ich wehre mich schon entschieden dagegen, dass hier was illegales gemacht wird.
Gruß, Waldemar
Einen Kommentar schreiben:
-
schade!Zitat von mumpf Beitrag anzeigenUnd leider ist es dabei geblieben.
sowas dachte ich mir dann schon.Zitat von mumpf Beitrag anzeigenJa, alles dynamisch. Es gibt eine Klasse GroupObject (in group_object.h), jedes Kommunikationsobjekt ist eine Instanz davon. Für die Parameter gibt es passende Parameter-Getter, technisch übergibt die ETS alle Parameter als ein Speicherblock.
Hat natürlich seine Vorteile - aber auch Nachteile. Es ist wohl ne ganze Menge Flash notwendig.
Ist das auch alles parallel im RAM ? Der ist ja nicht ganz so üppig...
Ich hab in ganzen alten Threads gewühlt von 2014, da gings um die Konfig von DIY-Geräte. Robert (der mit dem HM-KNX Hörmann Modul) hatte da eine schöne Variante, der hat die Geräte über eibd programmiert - propwrite etc... sowas könnte man machen. Sind wir ehrlich... keiner wird das nutzenZitat von mumpf Beitrag anzeigenEs gab hier vor kurzem jemanden, der hat als eine Art Studienarbeit eine (kleine) Alternative zur ETS geschrieben. Mit der konnte man auch programmieren. Allerdings fehlte im UI noch einiges. Mir fällt der Username nicht ein, ich stell das noch rein, wenn ich das wiederfinde. Wäre eine Alternative, Du hast Recht.
doch doch, siehe hier:Zitat von mumpf Beitrag anzeigenDas ist eine Idee, allerdings dachte ich, das Standardmäßig inzwischen in den Flash vom SAMD geschrieben wird und FlashStorage gar nicht mehr gebraucht wird? Aber da bin ich leider nicht mehr Up-To-Date, sorry.
https://github.com/thelsing/knx/blob...latform.cpp#L7
Leider hat beides auf 2048 oder beids auf 8192 ebenfalls nicht funktioniert. Muss ich mal debuggen...
Wieviel byte brauche ich pro KO und pro Parameter?
Einen Kommentar schreiben:
-
Das war zumindest vor einem halben Jahr auch mein Problem. Ich hatte dann glaub irgendwo die Include-Order geändert, so dass der FlashStorage den Wert aus der Config vom KNX-Stack bekommt und somit an einer Stelle anpassbar bleibt. Hatte auch eine Ergänzung in den fatalError-Code gebaut, dass die LED erst einen Fehlercode ausgibt, und glaub noch irgendwas ... wollte mal einen Merge-Request machen, aber mit GitHub noch nie gearbeitet (nur direktem Git-Zugriff)Zitat von SirSydom Beitrag anzeigenIch denke aber, ich weiß auch warum der 8192 nicht geht, denn in der FlashStorage wird ja default-mäßig mit 1024 gearbeitet!
Ich dreh hier mal auf 8192 hoch und schau was passiert.
Einen Kommentar schreiben:
-
Hi,
Die alternative Software für das Board von Masifi ist von mir. Und ich hab damals einen fork gemacht, weil ich einige Anpassungen brauchte, die ich alleine schon deswegen nicht in den Stack bringen konnte, weil meine C++-Kenntnisse "unter aller Sa*" sindZitat von SirSydom Beitrag anzeigenMit welcher Zielsetzung?
. Und leider ist es dabei geblieben.
Für mich war das der Grund, überhaupt an ein DIY-Projekt zu gehen. Ich hatte auch in KONNEKTING reingeschaut, ist auch toll, was da entstanden ist, aber die Möglichkeiten der ETS, was Applikationsdesign angeht, sind da erheblich größer. Und für mich ist die ETS auch das zentrale Projektierungstool, ich will da alle Geräte sehen und alle GA-Verknüpfungen haben. Und es scheint so, als ob auch jemand an KnxSecure im Stack arbeitet.Zitat von SirSydom Beitrag anzeigenDie Integration in die ETS verbessert das ganze handling für den Anwender ungemein.
Die Möglichkeiten mit WLAN und IP Linie sind auch irre interessant!
Ja, alles dynamisch. Es gibt eine Klasse GroupObject (in group_object.h), jedes Kommunikationsobjekt ist eine Instanz davon. Für die Parameter gibt es passende Parameter-Getter, technisch übergibt die ETS alle Parameter als ein Speicherblock.Zitat von SirSydom Beitrag anzeigenDie Kommobjekte und die Parameter - wo werden die eigentlich definiert? Also in der Firmware? Ist das alles dynamisch, wird also erst beim proggen angelegt?
Naja, mir hat die Demo und die Sourcen von Stack gereicht, zusätzlich hab ich mir ein paar knxprod-Files von echten Geräten angesehen. Und dann auch hier gefragt.Zitat von SirSydom Beitrag anzeigenWas mich etwas abschreckt ist die kaum vorhandene "erklärende" Doku.
Das ist auch der Grund, warum ich nur Source und eine Anleitung zum selberbauen veröffentliche, aber keine fertigen knxprod-Files.Zitat von SirSydom Beitrag anzeigenUnd dann auch die Situation mit der ETS DLL und dem signieren, was ja so im graubereich liegt...
Ich hab mit Hardware sowieso nicht so viel am Hut, deswegen hab ich mich auf das Modul von Masifi "gestürzt".Zitat von SirSydom Beitrag anzeigenGanze Geräte damit verkaufen (auch Sammelbestellen) würde ich mich glaub ich nicht so trauen.
Es gab hier vor kurzem jemanden, der hat als eine Art Studienarbeit eine (kleine) Alternative zur ETS geschrieben. Mit der konnte man auch programmieren. Allerdings fehlte im UI noch einiges. Mir fällt der Username nicht ein, ich stell das noch rein, wenn ich das wiederfinde. Wäre eine Alternative, Du hast Recht.Zitat von SirSydom Beitrag anzeigenIch sinniere, ob es ohne riesigen Aufwand machbar ist, ein Tool zu schreiben, dass die unsignierte xml nutzt um das Gerät zu proggen.
Das ist eine Idee, allerdings dachte ich, das Standardmäßig inzwischen in den Flash vom SAMD geschrieben wird und FlashStorage gar nicht mehr gebraucht wird? Aber da bin ich leider nicht mehr Up-To-Date, sorry.Zitat von SirSydom Beitrag anzeigenIch denke aber, ich weiß auch warum der 8192 nicht geht, denn in der FlashStorage wird ja default-mäßig mit 1024 gearbeitet!
Ich wünsche Dir viel Erfolg,
Gruß, Waldemar
Einen Kommentar schreiben:
-
Zitat von SirSydom Beitrag anzeigenWas mich etwas abschreckt ist die kaum vorhandene "erklärende" Doku.
Die Kommobjekte und die Parameter - wo werden die eigentlich definiert? Also in der Firmware? Ist das alles dynamisch, wird also erst beim proggen angelegt?genau deswegen ist die Einstiegsschwelle bewusst ein wenig erhöht. Ist ja ein "proof of concept" und keine Arduino library, die jeder Dummy bedienen können soll.Zitat von SirSydom Beitrag anzeigenUnd dann auch die Situation mit der ETS DLL und dem signieren, was ja so im graubereich liegt...
Einen Kommentar schreiben:
-
Evtl wäre es auch interesant eine VD1 per tool zu schreiben und diese dann legal zu importieren. Darüber schon mal nachgedacht?Zitat von SirSydom Beitrag anzeigeninteressant. Mit welcher Zielsetzung?
Und dann auch die Situation mit der ETS DLL und dem signieren, was ja so im graubereich liegt... Ganze Geräte damit verkaufen (auch Sammelbestellen) würde ich mich glaub ich nicht so trauen. Ich sinniere, ob es ohne riesigen Aufwand machbar ist, ein Tool zu schreiben, dass die unsignierte xml nutzt um das Gerät zu proggen.
Das könnte man dann mitliefern. und wenn Endanwender dann im Netz ein Tool finden, mit dem man daraus eine knxprod macht und über ETS lädt...
Einen Kommentar schreiben:
-
das ist mir schon klar! Ist ja bei Konnekting, wo ich schon viel gemacht habe, auch so.Zitat von mumpf Beitrag anzeigenWichtig ist, dass Du bei dem Stack KEINE PA in die Firmware gießen musst. Es geht nur um die Initiale PA, die man hat, wenn das Gerät entladen ist.
Ja genau. Ich denke aber, ich weiß auch warum der 8192 nicht geht, denn in der FlashStorage wird ja default-mäßig mit 1024 gearbeitet!Zitat von mumpf Beitrag anzeigenDu meinst das hier: https://github.com/thelsing/knx/blob.../memory.cpp#L6?
Ich hab eben mal nachgeschaut, das gibt es bei mir nicht. Was für ein Glück... ich würde nicht mal mit 8192 auskommen
Ich dreh hier mal auf 8192 hoch und schau was passiert.
Einen Kommentar schreiben:
-
interessant. Mit welcher Zielsetzung?Zitat von mumpf Beitrag anzeigenda ich (leider immer noch aus Zeitgründen) auf einem fork arbeite.
Ja, der Stack hat was.Zitat von mumpf Beitrag anzeigenP.S.: Ich würde es weiter probieren, ich finde, der Stack lohnt sich...
Einerseits bringt die System B Kompatibilität ne Menge Komplexität rein, aber andererseits ist eben diese Kompatibiltät auch toll.
Die Integration in die ETS verbessert das ganze handling für den Anwender ungemein.
Die Möglichkeiten mit WLAN und IP Linie sind auch irre interessant!
Was mich etwas abschreckt ist die kaum vorhandene "erklärende" Doku.
Die Kommobjekte und die Parameter - wo werden die eigentlich definiert? Also in der Firmware? Ist das alles dynamisch, wird also erst beim proggen angelegt?
Und dann auch die Situation mit der ETS DLL und dem signieren, was ja so im graubereich liegt... Ganze Geräte damit verkaufen (auch Sammelbestellen) würde ich mich glaub ich nicht so trauen. Ich sinniere, ob es ohne riesigen Aufwand machbar ist, ein Tool zu schreiben, dass die unsignierte xml nutzt um das Gerät zu proggen.
Das könnte man dann mitliefern. und wenn Endanwender dann im Netz ein Tool finden, mit dem man daraus eine knxprod macht und über ETS lädt...
Einen Kommentar schreiben:
-
Hi,
ich denke, es war schon Absicht, dass es keine gültige PA ist, damit man diese auf jeden Fall mit der ETS programmieren muss. Wichtig ist, dass Du bei dem Stack KEINE PA in die Firmware gießen musst. Es geht nur um die Initiale PA, die man hat, wenn das Gerät entladen ist.Zitat von SirSydom Beitrag anzeigenich finde 15.15.255 auf jeden Fall besser, weil 0.0.0 eigentlich keine gültige PA ist.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hi,
Du meinst das hier: https://github.com/thelsing/knx/blob.../memory.cpp#L6?
Ich hab eben mal nachgeschaut, das gibt es bei mir nicht. Was für ein Glück... ich würde nicht mal mit 8192 auskommen, ich habe 8621 Bytes an Parametern, dazu kommt dann ja auch noch die KO<->GA Zuordnung. Ich muss mich wirklich mit dem aktuellen Stack mal wieder beschäftigen
.
Gruß, Waldemar
Einen Kommentar schreiben:
-
ja,ich habs nur grob geschätzt, wird schon das seinZitat von mumpf Beitrag anzeigenwenn es eher 5 Hz sind, dann bist Du wohl hier gelandet:
Serial passt für michZitat von mumpf Beitrag anzeigenDu musst in der Demo darauf achten, dass ArduinoPlatform::SerialDebug = &Serial; auch das richtige Serial adressiert (also passend zum Board auf die USB-Schnittstelle geht), beim Board von Masifi ist das z.B. "SerialUSB".
Die Frage ist, wo wird die Serial für KNX festgelegt? Bzw. was ist hier der Default?
VisualStudio Code mit der MS Arduino-ExtensionZitat von mumpf Beitrag anzeigenP.S.: Arbeitest Du mit der Arduino-IDE oder mit PlatformIO?
ah ok. probier ich gleich mal aus.Zitat von h1as Beitrag anzeigenNe nicht die Eeprom Size, sondern die KNX_Flash_Size in der Memory.cpp.
=> ah, das scheint es gewesen zu sein! porg button geht, ich finde das device in der ets
jetzt kann ich weitermachen
ich finde 15.15.255 auf jeden Fall besser, weil 0.0.0 eigentlich keine gültige PA ist. Die kann man in der ETS nicht überprüfen, ob vorhanden z.B.Zitat von mumpf Beitrag anzeigenDas mit der eigenen PA geht hier:
https://github.com/thelsing/knx/blob...e_object.h#L42
Bei mir hat die 0 aber immer funktioniert. Trotzdem hab ich das auf 0xFFFF gesetzt, weil es andere Geräte auch so machen.
Überschreiben klappt aber.
Einen Kommentar schreiben:
-
Ne nicht die Eeprom Size, sondern die KNX_Flash_Size in der Memory.cpp.
Einen Kommentar schreiben:


Einen Kommentar schreiben: