Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hi Hotze,

    schau mal bei Mouser da ist er super billig. 3,60 Euro

    https://www.mouser.de/ProductDetail/...7mKWjHIsNJ3w==

    Gruß
    RObert

    Kommentar


      Hi hotze,

      ich bin zwar nicht so der Hardware-Mensch, aber ich bin mir ziemlich sicher, dass Du mindestens die 32-Bit-Version brauchst. Und ob die Implementierung hier im Stack ist für den SAMD21, also Cortex M0, ob das auch für einen Cortex M3 geht, weiß ich nicht. Aber da können wahrscheinlich die Leute, die sich damit besser auskennen, qualifiziertere Antworten geben. Ich wollte Dich nur vor einer voreiligen Bestellung bewahren.

      Gruß, Waldemar

      Kommentar


        Hi Thomas,

        ich habe jeztz Bekanntschaft mit dem "ReadOnInit"-Flag machen dürfen... funktioniert nicht. Ich habe leider noch kein (überschaubares) reproduzierbares Beispiel, aber vielleicht hast Du ja schon eine Idee, wenn ich das Problem beschreibe.

        Folgendes passiert: In der knxprod ist ein KO mit ReadOnInit="Enable" definiert. Dieses KO bekommt auch eine GA. Bei einem "blanken" SAMD, also ohne PA und ohne vorherige Firmware (Flash wurde komplett gelöscht) kann man die PA noch programmieren, die Applikation klappt aber nicht mehr. Ganz am Ende (ich vermute, bei der association- oder der adress-table) hängt er dann. Das letze Coding von uns im Callstack ist
        Code:
        bool GroupObject::valueReadOnInit()
        {
            if (!_table)
                return false;
            return bitRead(ntohs(_table->_tableData[_asap]), 13) > 0;
        }
        Ich habe leider weder das Protokoll aus dem Gruppenmonitor gesichert noch den Callstack komplett im Kopf, aber es sah für mich so aus, als ob er an der Stelle schon einen Read absetzen wollte.
        Er war auf jeden Fall auch hier:
        Code:
        void ApplicationLayer::dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu)
        {
        
            ...
        
            int32_t asap = _assocTable.nextAsap(tsap, startIdx);
            for (; asap != -1; asap = _assocTable.nextAsap(tsap, startIdx))
            {
                switch (apdu.type())
                {
                    case GroupValueRead:
                        _bau.groupValueReadIndication(asap, priority, hopType);
                        break;
                    case GroupValueResponse:
                        _bau.groupValueReadAppLayerConfirm(asap, priority, hopType, data, len);
                        break;
                    case GroupValueWrite:
                        _bau.groupValueWriteIndication(asap, priority, hopType, data, len);
                }
            }
        }
        Ich hätte das nicht während der Programmierung erwartet, sondern erst nach dem ersten Neustart. Der Debugger sprach bei obigen bitRead() (in rot) von einer Speicherverletzung.

        Es ist aber nicht komplett fehlerhaft , wenn man beim ersten Programmieren dieses KO nicht mit einer GA versieht, sondern irgendein anderes KO (ohne I-Flag), und dann in einem 2. Rutsch die GA für dieses KO (das mit I-Flag) programmiert, geht das Programmieren durch - wobei ich nicht darauf geachtet habe, ob dann wirklich ein ReadRequest kommt.

        Mir ist klar, dass das keine vollständige Feherbeschreibung ist, ich schreibe das hier aus 3 Gründen:
        1. um es nicht zu vergessen
        2. um die anderen Nutzer zu informieren
        3. in der Hoffnung, dass es vielleicht doch genug ist, damit Du weißt, wo das Problem steckt.
        Ich hab gestern recht lange rumprobiert, um ein reproduzierbares Beispiel hin zu bekommen und mich am Ende gefreut, als ich ne Lösung hatte. Deswegen kein sauberes Protokoll etc. Aber falls mehr erforderlich ist, bin ich gerne bereit, das nochmal nachzubauen, vielleicht mit der knx-demo, dann wäre das überschaubar...

        Gruß, Waldemar

        Kommentar


          henfri Ich habe zwar schon eine Weile ein neuen sonoff s20 aber der ist noch orginalverpackt...

          hotzen Ich weiß nicht ob der Stack auf einem Arduino-Leonardo funktioniert. Kannst ja mal probieren das Beispiel zu übersetzen. Wahrscheinlich fehlt den AVR in der C-Lib etwas. Ist aber bestimmt lösbar. Ob der Speicher ausreicht weiß ich allerdings nicht. Ich würde eher ein SAMD empfehlen.

          mumpf Es ist gut möglich, dass er bei einem der Neustarts während der Programmierung schon ein ReadGA absetzt. Das sollte wohl nicht so sein. Ich hab mal ein Issue aufgemacht.

          Kommentar


            Hi RObert, Ich suche nicht nur ein Mikrocontroller, sondern ein ganzes Board
            radino32_CC1101_C_45_1000_logo.jpg
            hi Waldemar, ja, das hätte mich intressiert auf welchen Systemen das hier läuft.
            Angenommen dieses Modul könnte in grösserer Stückzahl für 3$ gekauft werden, währe es intressant den Code dazu zu optimieren.
            Werde mir am Freitag sicher CC1101 + SAMD21 bestellen. wie kopmpiliere ich eigentlich dieses Projekt. hatte gerade versucht in Atom mit platfom.io zu machen. jezt mit VSC am üben. ist es noch gar nicht so weit fortgeschritten, das es Standalone arbeitet?
            Zuletzt geändert von hotze; 25.11.2019, 21:58.

            Kommentar


              hotze
              Genau das Modul hatte ich für KNX-RF auch ins Auge gefasst.
              Aktuell arbeitet jemand gerade an einem PullRequest, um STM32-Unterstützung hinzuzufügen. Wenn ich das richtig sehe, nutzt der STM32-Support aber KEIN STM32duino. Die bisherigen Plattformen (ESP, ESP32 und SAMD21) nutzen alle einen Arduino-kompatiblen Core. Ich weiß nicht, warum er das nicht auch gemacht hat.

              Ich habe dort auch schon ein Ticket aufgemacht, um nachzufragen, wieviel Aufwand es bereitet, den STM32, der auf dem Radino32 Modul enthalten ist, zu nutzen:
              https://github.com/condo4/knx-pt100/issues/1

              Kommentar


                Hi hotze,

                Zitat von hotze Beitrag anzeigen
                wie kopmpiliere ich eigentlich dieses Projekt. hatte gerade versucht in Atom mit platfom.io zu machen. jezt mit VSC am üben. ist es noch gar nicht so weit fortgeschritten, das es Standalone arbeitet?
                doch, man kann es sehr gut verwenden (finde ich), es ist nur per default für die Arduino-IDE oder für Visual Studio gemacht. Mit Visual Studio Code (VSC) in Verbindung mit PlatformIO lässt es sich aber wesentlich komfortabler entwickeln.

                Wie bin ich damals vorgegangen:
                1. Ich hab erstmal mit Arduino-Ide das knx-demo Projekt zum laufen gebracht
                2. Dann habe ich das selbe Projekt in PlatformIO importiert und wieder zu laufen gebracht, wobei die knx-Library noch immer eine Arduino-Lib geblieben ist.
                3. Inzwischen habe ich auch die knx-Library zur PlatformIO-Lib gemacht und mache nichts mehr mit Arduino...
                Gruß, Waldemar
                ​​​​​​​

                Kommentar


                  Als kurzes Update: Ich habe gerade einen Pull-Request von Nanosonde gemergt. Damit kann man mit dem Stack ein USB-Interface bauen. Vielen Dank dafür!

                  Kommentar


                    Als weiteres Update: Ich habe den devel-Branch in den master-Branch gemergt. D.h. die Änderung in der Verwaltung von nichtflüchtigem Speicher ist nun im master-Branch. D.h. es ist nun mehr Ram frei. Flash kann bei SAMD nach wie vor nur über die Eeprom-Emulation genutzt werden. Die Baustelle gehe ich wahrscheinlich als nächstes an.

                    Kommentar


                      FYI: Ich habe unter https://gitter.im/thesing-knx/community eine gitter chat eingerichtet.

                      Kommentar


                        Hallo Thomas,

                        die Tage habe ich mir Deine Bibliothek angeschaut und bin begeistert, die Arbeit die bisher geleistet wurde ist fantastisch. Ich würde gerne bei der Entwicklung helfen. Leider habe ich nie kontinuierlich Zeit, aber einen Beitrag kann ich auf jeden Fall leisten.

                        Eine Entwicklungsumgebung konnte ich mir schon einrichten. In einer virtuellen Maschine mit Ubuntu ist der Qt Creator installiert. Damit kann man unter Linux compilieren/debuggen. Den Code konnte ich übersetzen, habe aber aktuell noch keine Hardware zum Zugriff auf den KNX Bus. Der Code für die serielle Kommunikation unter Linux ist auch noch nicht implementiert, das könnte mein Einstieg werden.

                        Zudem habe ich noch nie mit Git gearbeitet, habt Ihr einen Link mit den nötigen Informationen?

                        Gruß

                        Werner

                        Kommentar


                          Zitat von wkaa Beitrag anzeigen
                          H
                          Zudem habe ich noch nie mit Git gearbeitet, habt Ihr einen Link mit den nötigen Informationen?
                          Ich habe die Einführung für Git gefunden, de grüne Button war ja groß genug

                          Kommentar


                            Zitat von thesing Beitrag anzeigen
                            Als kurzes Update: Ich habe gerade einen Pull-Request von Nanosonde gemergt. Damit kann man mit dem Stack ein USB-Interface bauen. Vielen Dank dafür!
                            Hi, du meinst damit das man das Modul über USB mit der ETS programmieren kann oder? Gruß RObert

                            Kommentar


                              Zitat von wkaa Beitrag anzeigen
                              Der Code für die serielle Kommunikation unter Linux ist auch noch nicht implementiert, das könnte mein Einstieg werden.
                              Hallo Werner,

                              ich bin mir nicht sicher, ob Du hier die UART-Kommunikation meinst, aber die ist natürlich implementiert, in Bau07B0. Es ist nur so, dass der Linux-Stack primär für KNX-IP genutzt wird, da man dort ja schon eine Netzwerkschnittstelle hat und so keine Zusatzhardware für die KNX-Kommunikation braucht (sofern man einen KNX-Router hat). Die UART-Anbindung (KNX-TP) von Microcontrollern macht vor allem Sinn, wenn der Microcontroller auch gleich vom Bus mitversorgt werden kann.
                              Und dann gibt es hier noch den Pfad ESP8266 oder ESP32, auch über KNX-IP, weil die eben ein WLAN-Modul mit an Bord haben.

                              Somit sind die hier im Thread zu findenden und verwendeten Kombinationen:
                              • LinuxPlattform mit Bau57B0
                              • SamdPlattform mit Bau07B0
                              • EspPalttform mit Bau57B0
                              Du kannst natürlich mal testen, ob die LinuxPlatform mit Bau07B0 zum Laufen bekommst, irgendjemand wollte schon mal EspPlattform mit Bau057B0 testen, da weiß ich aber nicht das Ergebnis.

                              Neuerdings geht ja auch Bau27B0 (KNX-RF), da hab ich aber keine Erfahrung mit.

                              Das nur zur Info, damit Du nicht was implementierst, was nicht nötig ist...

                              Gruß, Waldemar

                              Kommentar


                                Hallo allerseits,

                                es ist richtig, dass unter Linux noch keine serielle Kommunikation implementiert ist. Man kann also derzeit noch keine Siemens-BCU oder Micro-BCU an einen Raspberry-Pi hängen und damit mit dem Bus reden. Es wäre toll wenn das jemand übernehmen würde. Bei knxd kann man sicher schauen wie es dort gelöst wurde.

                                jeff25 Damit ist gemeint, dass du z.B. eine MicroBCU, ein SAMD21-Board und einen Optokoppler (zur galvanischen Trennung) nehmen kannst und dann mit dem Stack eine funktionsfähige USB-Schnittstelle bauen kannst. D.h. du kannst dann über USB->Board->BCU->Bus mit ETS andere KNX-Geräte programmieren.
                                Nanosonde hat das zwar bisher nur mit knx-RF getestet, aber TP sollte auch funktionieren. Der Code dazu ist hier: https://github.com/thelsing/knx/tree...amples/knx-usb

                                VG
                                Thomas

                                Kommentar

                                Lädt...
                                X