Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    Hi,

    Zitat von BlackDevil Beitrag anzeigen
    mit der Siemens BCU hätte ich ein Gerät drinne, ja. Und dessen KOs.
    Sorry, aber da hast Du eine falsche Vorstellung! Die Siemens-BCU, die hier so gerne im DIY-Bereich genutzt wird, ist nichts andres als ein Transceiver. Es gibt keine knxprod für die Siemens-BCU, höchstens für Siemens-Geräte, die die BCU nutzen. Es widerspricht auch dem Konzept: Die Firmware eines Gerätes muss zur knxprod passen, es kann keine "abstrakte" knxprod geben.

    Zitat von BlackDevil Beitrag anzeigen
    mein Hirnknoten gerade ist, dass ich für die ETS eine Gerätdatei brauche deren Zertifikat äußerst grau herzustellen ist (oder eben teuer).
    Für die Erstellung der knxprod wird eine dll der ETS aufgerufen. Das macht die ETS auch selbst, wenn sie alte vd-Dateien in knxprod umwandelt. Wie "grau" das ist, muss jeder selber wissen. Solange man nicht anfängt, solche Geräte zu verkaufen, sollte keiner was dagegen haben.

    Zitat von BlackDevil Beitrag anzeigen
    Und wenn ich mein diy Gerät nicht in die ETS bekomme kann ich folglich auch keine Verbindungen herstellen.
    Doch, über Konnekting (eigenes Konzept, wie man Geräte parametrisiert und GAs zuweist) oder eben über "KNX auf Arduino", indem Du die GA fest in der Firmware hinterlegst. Aber wie schon öfters geschrieben, der Hauptvorteil dieses Stacks ist ja, dass man auch die DIY-Geräte in die ETS bekommt.

    Zitat von manu241 Beitrag anzeigen
    Hallo Robert, das ist schon das Problem. Ich kann keine Phy. Adresse schreiben. Es wird kein Gerät im Programmiermodus gefunden.
    Manuel, Du musst den eibd stoppen oder zumindest den -R Parameter entfernen. Leider stören der eibd und der knxd im Routermodus die Programmierung über Netzwerkschnittstelle. Allerdings hättest Du auch gestern schon das Problem haben sollen...

    Gruß, Waldemar


    OpenKNX www.openknx.de

    Kommentar


      Die Vorstellung möchte ich aufräumen ok, Siemens BCU = Transceiver sonst nix. Verstanden.

      Wegen den GAs: wie ich gesagt habe, entweder Hard gecoded oder über eine Software. Aber egal ob über Konnekting oder anders, ich brauche die ETS um die GA in das offizielle KNX Gerät zu packen, richtig?

      Kommentar


        Zitat von BlackDevil Beitrag anzeigen
        ich brauche die ETS um die GA in das offizielle KNX Gerät zu packen, richtig?
        Ich bin mir nicht sicher, ob ich Dich hier richtig verstehe... Folgendes gilt:
        1. Du brauchst die ETS, um ein gekauftes KNX-Gerät von einem Hersteller zu parametrieren.
        2. Du brauchst keine ETS, um ein DIY-Gerät (KONNEKTING, "KNX auf Arduino") eine GA auf den Bus senden zu lassen.
        3. Du brauchst die ETS, um ein DIY-Gerät, dass das Framework aus diesem Thread verwendet, auf den Bus senden zu lassen.
        Ich hoffe, das ist jetzt klarer...

        Gruß, Waldemar
        Zuletzt geändert von mumpf; 11.10.2019, 19:55.
        OpenKNX www.openknx.de

        Kommentar


          Sag ich ja. Keine ETS für DIY GA>Bus, ETS für KNX Gerät>Bus. Da beide die GA kennen müssen, brauche ich beide Varianten.

          Kommentar


            Zitat von mumpf Beitrag anzeigen

            Manuel, Du musst den eibd stoppen oder zumindest den -R Parameter entfernen. Leider stören der eibd und der knxd im Routermodus die Programmierung über Netzwerkschnittstelle. Allerdings hättest Du auch gestern schon das Problem haben sollen...

            Gruß, Waldemar

            Hallo Waldemar,

            daran schein es nicht zu liegen. Ich habe nur beim Wiregate IP-Tunneling aktiviert. Testweise habe ich diesen mal vom Netzwerk getrennt.
            Irgendwas anderes mache ich falsch.

            Ich habe mal Testweise den ersten ESP wieder angesteckt und der sendet munter weiter seine Werte.

            Was könnte ich noch testen?

            Danke ihr so hilfsbereit seid.

            Gruß Manuel

            Kommentar


              HI Manuel,

              jetzt wird es schwierig...

              Tunneling im eibd habe ich auch, es darf nur kein Routing aktiv sein (zum programmieren, für den normalen Betrieb kann man Routing wieder nutzen).
              Im Augenblick würde ich darauf tippen, dass Dein ESP nicht korrekt über WLAN verbunden ist. Wie gesagt, ich habe keine Erfahrung mit dem ESP, ich wollte unbedingt was mit KNX-TP haben, um eben solche Probleme zu vermeiden. Die einzige KNX-IP Erfahrung für diesen Stack habe ich dadurch, dass ich meine Sachen auch unter Linux laufen lassen kann (hauptsächlich zum debuggen).

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                Hi,

                Zitat von Bernator Beitrag anzeigen
                Nur für den Luxus in der Entwicklungsphase (den man noch anders erreichen kann)
                wollte nur zurückmelden, dass ich jetzt auch in PlatformIO es hinbekomme, mit oder ohne EraseFlash eine neue Firmware aufzuspielen.

                Zitat von Bernator Beitrag anzeigen
                Wie schon vorher kurz erwähnt wäre hier eher Potential in die Richtung vorhanden, dass man nicht alle Daten aus dem externen Speicher im Ram puffern müsste (zb. die Parameter).
                Siehst Du denn noch Fälle, in denen der Flash eher knapp werden könnte als das RAM? Also irgendwas für die external-Variante? Ich habe mir eingebildet, dass ich bisher hier die größten Parameterblöcke habe (knapp 6k), man könnte noch viele KO benötigen, aber die tangieren eher das RAM. Der Stack braucht ja grob 80k Flash, ich hab ein paar Libs drin und komme auch knapp 100k Flash, da sind immer noch 150k frei...

                Ich denke, man könnte sich den Aufwand der Implementierung sparen, wenn es keinen Bedarf dafür gibt, oder?

                Gruß, Waldemar

                P.S.: Dein Stack lief jetzt 3 Tage ohne Unterbrechung und komplett problemlos. Heute werde ich mal ausprobieren, ob ich an irgendwelche Grenzen komme...
                OpenKNX www.openknx.de

                Kommentar


                  Ich persönlich und für den SAMD werde vermutlich mit der Flash only Variante locker zurecht kommen, aber das Framework ist ja prinzipiell Platform unabhängig und da könnte es schon Fälle geben wo man evtl. lieber einen externen Speicher anflanscht. Ich bin einfach ein Freund effizienter Resourcen Nutzung, so dringend sehe ich das jetzt aber auch nicht deshalb hab ich es ja noch nicht implementiert

                  Kommentar


                    Hi,

                    ich habe endlich eine erste Version von meinem commandline tool veröffentlicht. Damit dieser Thread nicht mit Rückfragen und Fehlermeldungen verwässert wird, finden ihr alle Infos hier: https://knx-user-forum.de/forum/%C3%...it-ets-projekt.

                    Gruß, Waldemar
                    OpenKNX www.openknx.de

                    Kommentar


                      Hi,
                      ersteinmal: sau cooles Projekt!!
                      Ich bin auch gerade dabei in DIY-KNX einzusteigen, nachdem ich schon mehrere offizielle Geräte hier am Laufen habe.
                      KONNEKTING habe ich auch schon erfolgreich mit der Siemens BCU und einem Arduino NANO zum Laufen bekommen.
                      Nun möchte ich aber die ETS zum Parametrieren nutzen und bin über euer Projekt hier gefallen

                      Jetzt habe ich hier aber zur benötigten Hardware eine Frage:
                      Welches Board kann ich benutzen, um mit dieser Lib und der Siemens BCU (also kein WLAN) ein funktionsfähiges Gerät zu erstellen?

                      Getestet habe ich ganz kurz den Arduino NANO: Hier hatte ich aber das Problem, dass der Compiler hier bei verschiedenen includes (z.B. cstddef) meckert.
                      Beim ESP32 DevKit v4 kompiliert alles (ich musste statt dem "bau57B0" include das "bau07B0" nehmen, doch wegen der DEBUG-Ausgabe auf dem Seriellen Interface funktioniert das nicht. Hier könnte ich ein SoftwareSerial suchen um mit der BCU zu kommunizieren und das DEBUG über das USB-Kabel an den PC.

                      d.h. Welches Board unterstützt das mit der BCU (also ohne WLAN) schon?

                      Schöne Grüße und vielen Dank schon mal
                      Patrick

                      Kommentar


                        Hi,
                        hier ein Update meinerseits:
                        Ich bin schon einen Schritt weiter und konnte den ESP32 DevKit v4 verwenden.
                        Dafür habe ich (neben den Änderungen vom vorigen Post) das _knxSerial auf Serial2 (pin16 und pin17) gelegt.
                        Jetzt sehe ich auch, dass er beim booten die Siemens BCU initialisiert (TX=0x01 => RX=0x03).

                        Jetzt gibts aber einen crash wenn über KNX Daten empfangen werden:

                        Code:
                        0x400d7cf9: TpUartDataLinkLayer::loop() at C:\Users\patrick\Documents\Arduino\libraries\knx\src\knx\tpuart_data_link_layer.cpp line 238
                        0x400d3a50: BauSystemB::loop() at C:\Users\patrick\Documents\Arduino\libraries\knx\src\knx\bau_systemB.cpp line 21
                        0x400d1b05: KnxFacade::loop() at C:\Users\patrick\Documents\Arduino\libraries\knx\src/knx_facade.h line 177
                        0x400d1b15: loop() at C:\Users\patrick\Documents\Entwicklung\KNX_Test/KNX_Test.ino line 109
                        Also in dieser Zeile:
                        Code:
                        if (!((buffer[0] ^ _sendBuffer[0]) & ~0x20) && !memcmp(buffer + _convert + 1, _sendBuffer + 1, 5))
                        Möglicherweise ist im _sendBuffer noch nicht genügend?
                        Ich hab das Gerät auch noch nicht parametriert.
                        Wie kann ich das lösen?

                        Schöne Grüße
                        Patrick

                        Kommentar


                          Hi Patrick,

                          willkommen im Forum... Du hast Dir für den Anfang nicht unbedingt ein leichtes Thema ausgesucht .

                          Du solltest am Anfang versuchen, das knx-demo example zum laufen zu bringen. Die Kombi ESP32 und bau07B0 (also ESP-Plattform mit KNX-TP) hat hier im Thread noch keiner benutzt - oder es ist mir entgangen. Da könnten noch Fehler drin sein... Aber mit einem eigenen KNX_Test.ino weiß dann auch keiner, was Du da machst.

                          Die meisten hier nutzen entweder ESP mit WLAN (und damit KNX-IP) oder SAMD mit KNX-TP. Vielleicht gibt es jemanden, der ne Idee hat, was da schief sein könnte. Ich bin auch auf SAMD unterwegs und kann Dir hier konkret nicht helfen.

                          Gruß, Waldemar


                          OpenKNX www.openknx.de

                          Kommentar


                            Hi Waldemar,
                            leichte Themen sind ja auch nicht herausfordernd

                            Die KNX_Test.ino ist exakt die knx-demo.ino nur dass ich unten noch den knx.ledPin(22) und den knx.buttonPin(21) einkommentiert und damit gesetzt habe.
                            Dann musste ich in der esp32_platform.cpp noch im Konstruktor con Serial1 auf Serial2 (pin 16 und 17) umstellen und in der knx_facade von Bau57B0 auf Bau07B0 ändern.

                            Es ist so, dass der _sendBuffer noch keine 6 Elemente beinhaltet und damit abschmiert.
                            Ich suche mal ob man den code auf dem esp32 debuggen kann.

                            Nachdem du den SAMD erfolgreich mit KNX-TP einsetzt, welches board empfiehlst du?

                            Vielen Dank dir und schöne Grüße
                            Patrick

                            Kommentar


                              versuch die entsprechende Stelle mal so umzubauen:
                              Code:
                                              //check if echo
                                              _isEcho = false;
                                              if(_sendBuffer != NULL)
                                              {
                                                  if (!((buffer[0] ^ _sendBuffer[0]) & ~0x20) && !memcmp(buffer + _convert + 1, _sendBuffer + 1, 5))     //ignore repeated bit of control byte
                                                  {
                                                      _isEcho = true;
                                                  }
                                              }

                              Kommentar


                                Bernator :
                                Schön, dass du schon so weit bist. Ich habe mal kurz drüber geschaut. Hier ein paar Hinweise:
                                - Die SaveRestores sollen weiter so funktionierien wie bisher: Beim Save speichern sie ihren Inhalt in einen von der Memory Klasse bereit gestellten Speicher und beim Restore umgekehrt. Einziger Unterschied zu vorher sollte sein, dass die Memoryklasse beim Save alloziert (und dafür vorher die nötige Größe abfrage) und dann beim Restore der Bereitgestellte Speicher ehrhalten bleibt, d.h. die Objekte brauchen den Inhalt nicht kopieren.
                                - Die Verschiedenen Speichermodi sollten Platformspezifisch sein. Der normale Stack nutzt einfach die Platform um zu Lesen oder zu Speicher. Wenn es unterschiedliche Möglichkeiten für eine Platform gibt, soll das alles dort verarbeitet werden.
                                - Kann man für die MemoryId der SaveRestores nicht einfach den Index des SaveRestores im _saveRestores-Array in der Memory-Klasse nehmen?

                                Die geänderte Memory-Klasse und die Platform*-Klassen habe ich mir bisher noch nicht angeschaut.

                                mumpf :
                                Super dass du hier so aktiv Fragen beantwortest.

                                VG Thomas

                                Kommentar

                                Lädt...
                                X