Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    Ich schau heute Abend mal rein. Wie ist nochmal dein Setup? Hast du direkt KNX-Routing also Schnittstelle in ETS ausgewählt oder ist noch ein knxd dazwischen?

    Kommentar


      Hallo,

      ich habe das hier beschrieben, da ich da tatsächlich noch ein Problem habe -das habe ich bisher aber nicht mit dem hier genannten verbunden. Könnte aber durchaus zusammenhängen. Deine ESP8266 Geräte sind meine einzigen IP-Geräte.

      Gruß,
      Hendrik

      Kommentar


        Evtl. könnte es auch an der WLAN-Verbindung liegen. Wenn du über Routing also "Realtek PCIe GBE Family Controller" programmierst, sollte der knxd und der ganze Rest keine Rolle spielen. Als weiteres Debugging könntest du auch auf einem Wlan-Gerät mit NetnNode schauen, was in der Nähe vom ESP so auf dem (IP)-Bus los ist.

        Ich schau jetzt mal in deine Datei ob mir was auffällt.

        Edit: Es sieht wirklich so aus, als ob du mit Paketverlust zu kämpfen hast. Deine ETS scheint auch nicht wie vorgeschrieben darauf zu reagieren.
        Zuletzt geändert von thesing; 11.02.2019, 23:50.

        Kommentar


          Hallo,

          danke für das Untersuchen.
          Was schlägst du vor, was ich tun kann?
          Das Netzwerk ist:
          ETS-Rechner -> Switch -> Unifi AP

          Also eigentlich recht simpel. Ich könnte mal näher an den AP gehen, aber ansonsten...

          Und wie kann es sein, dass die ETS nicht richtig darauf reagiert?

          Gruß,
          Hendrik

          Kommentar


            Eigentlich kannst du nur näher zum AP gehen. Evtl. mal testweise schauen ob ein anderer AP besser geht. Vielleicht geht es auch mit neuerer ETS besser.
            Warum deine ETS nicht richtig reagiert weiß ich nicht. Aber es bleibt ein Ack vom Gerät aus, und ETS wiederholt das Telegramm nicht. Das müsste ETS aber eigentlich machen.

            Kommentar


              Hallo Thomas,

              ich finde auf Anhieb in der Gruppenmonitor-Aufzeichnung keine Stelle, wo die ETS nicht richtig reagiert. Kannst du mir das bitte zeigen?

              Gruß, Klaus

              Kommentar


                Hallo Klaus,

                ich hätte gar nicht gedacht, dass du dich im DIY-Forum rum treibst

                In der knx_bme_flash.zip die Datei funktioniert_nicht.xml.
                #243 ETS schickt PropertyValueWrite
                #244 Geräte schickt Ack dazu
                (erstes PropertyValueResponse geht verlohren)
                #245 nach 3s wird erneut vom Gerät ein PropertyValueResponse geschickt. ETS antwortet nicht.
                #246 es wird wieder ein PropertyValueResponse geschickt. ETS antwortet nicht.
                #247 ETS schickt ein T-Disconnect.

                Erwarten würde ich, dass ETS nach #245 einfach ein Ack schickt und es dann weiter geht. Oder übersehe ich etwas?

                Edit:
                Ich habe nochmal die vom Geräte gesendeten Daten genau analysiert. Das transport control field wird bei Wiederholungen nicht gefüllt. Ich hatte das Telegramm gespeichert bevor die richtig gefüllt wurde. Wenn man das weiß fällt auch auf, dass ETS keine Sequenznummer bei #245 und 246 anzeigt. Danke für den Hinweis.

                henfri Ich habe gerade ein Fix gepusht. Kannst du mal bitte testen, ob es jetzt besser geht?

                Grüße,
                Thomas
                Zuletzt geändert von thesing; 23.02.2019, 00:39.

                Kommentar


                  Hallo Thomas,

                  Stimmt, #245 hat ein falschen TPCI (T_Data, kein T_Data_Connected). Aber auch die Daten sind seltsam, die passen als Wiederholung von #241, nicht von #243. Da stimmt noch was mit deiner TransportLayer nicht.

                  Gruß, Klaus

                  Kommentar


                    Ich sehe im Code erst mal nicht wie es dazu kommen kann. Möglicherweise ging auf das Ack zu #241 verloren und das Gerät sendet den deshalb nochmal. Ich werde mir wohl mal einen Tool schreiben müssen um so etwas besser testen zu können. Für das EITT gibt es noch nicht einmal mehr eine Webseite. Aber das wird man als Privatperson wohl eh nicht kaufen könne. Mal ganz abgesehen vom Preis.

                    Kommentar


                      Nachdem bei mir WPS beim aktuellen esp8266 arduino-core nicht funktioniert, habe ich das ganze Zeug rausgeworfen und nutze die WifiManager-Lib für die wifi-Konfiguration. Siehe https://github.com/tzapu/WiFiManager
                      Damit spannt der ESP einen AP mit Webseite auf wenn Wifi nicht konfiguriert ist.

                      henfri hattest du dir das nicht sogar gewünscht?
                      Zuletzt geändert von thesing; 26.02.2019, 22:54.

                      Kommentar


                        Hallo thesing,

                        tolle Librarie für knx hast du da programmiert
                        Habe ich wunderbar mit einer Arduino MKR und Siemens BCU am laufen.
                        Ich habe jetzt eine Frage zu den callbacks der Gruppenadressen.
                        Ist es möglich alle callbacks auf eine Funktion einzustellen und dann in der Funktion die Nr./Key der Gruppenadresse welche den callback ausgelöst hat zu filtern?
                        Ich möchte in etwa folgendes machen:
                        Code:
                        void callback_funktion(GroupObject& go)
                        {
                            switch(Nr./Key der gruppenadresse)
                        {
                        
                        case 7:
                        ?.objectReadBool()
                        mache was auch immer :)
                        break;
                        
                        case 8:
                        ?.objectReadBool()
                           ...
                        
                        }
                        
                        setup
                        {
                        groupObjects[6].callback(callback_funtion);
                        groupObjects[7].callback(callback_funtion);
                        groupObjects[8].callback(callback_funtion);
                        groupObjects[9].callback(callback_funtion);
                        }
                        Da ich diverse Gruppenadressen für verschiedene Sensoren habe würde dies meinen Code vereinfachen wie für jeden callback eine eigene Funktion zu verwenden.

                        Kommentar


                          Ja das kannst du machen. Du kannst über go.asap() die Nummer des KO herausbekommen. (asap = Application Layer Service Access Point) Genau so habe ich es auch in meine smarthomeNG plugin gemacht: https://github.com/thelsing/knx_ets/..._init__.py#L94
                          https://github.com/thelsing/knx_ets/...init__.py#L136
                          Zuletzt geändert von thesing; 01.03.2019, 17:45.

                          Kommentar


                            Danke, genau das habe ich gebraucht.

                            Kommentar


                              Hallo,
                              Zitat von thesing Beitrag anzeigen
                              henfri hattest du dir das nicht sogar gewünscht?
                              tatsächlich. Schön!

                              Ich wollte gerade noch einmal probieren das Gerät zu parametrieren, während ich näher am AP bin. Allerdings kann die ETS keine Verbindung mehr mit dem Gerät herstellen -weder wenn ich die PA programmieren will (Programmiermodus mit Button aktiviert - auch im seriellen Log sichtbar), noch beim programmieren der Applikation (ohne Programmiermodus).

                              Habe ich es richtig verstanden, dass ich zum Programmieren keinen KNX-Router brauche und somit den KNXd auch mal zum Test abschalten kann, um auszuschließen, dass es daran liegt?

                              Anbei noch ein Screenshot meiner Topologie.
                              linie.PNG
                              Gruß,
                              Hendrik

                              Kommentar


                                Du brauchst keinen knx-Router, wenn das Gerät und dein PC sich im selben Netz befinden und du als Schnittstelle die Netzwerkverbindung deines PCs ausgewählt hast (IP Routing).
                                Die Kommunikation zwischen ETS und dem Geräte läuft dabei komplett über IP.

                                Kommentar

                                Lädt...
                                X