Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    Du musst noch ein paar Skripte modifizieren. Siehe https://github.com/BoschSensortec/BSEC-Arduino-library

    Kommentar


      Hi Thomas,

      ich kam mal wieder dazu, was zu machen und hab nen pull von Deinem Stack gemacht. Ich denke, das ist einfach nur ein Tippfehler, aber ich bekomme ein Warning bei
      Code:
      #define DPT_UElCurrent?A_Z Dpt(203, 13)
      in dpt.h. Ich hab das mal auf
      Code:
      #define DPT_UElCurrent_Z Dpt(203, 13)
      korrigiert, auch wenn ich keine Ahnung habe, was das für ein DPT ist .

      Nur als Feedback... wenn Du willst, kann ich das auch in einen Pull-Request packen.

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        Hi,

        ich bekomme seit dem letzten Pull (also mit dem aktuellen github-Stand vom Stack) keine Applikation mehr auf den SAMD übertragen (mit der ETS). PA programmieren läuft noch. Ich bin noch am weiter analysieren, wollte nur fragen, ob sonst noch jemand das Problem hat.

        Dass es an meinem Coding liegt, kann ich ausschließen, da es sofort wieder funktioniert hat, wenn ich einfach nur die knx-library ausgetauscht habe. Ich melde mich, sobald ich das Problem besser eingekreist habe.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          Ich hab beim letzten Stand ein Problem beim Wechseln der default knxUart Schnittstelle festgestellt und dazu einen pull request offen, bin dann aber nicht mehr dazu gekommen um zu testen ob das programmieren über die ETS klappt, evtl. mach ich das heute abend.

          Kommentar


            Hi Bernator,

            yepp, Dein Pull-Request repariert das wieder (ich habe die Sachen mal testhalber übernommen). Schön, wenn es gleich immer Lösungen zu gefundenen Problemen gibt. Danke, ich hätte das nicht gefunden.

            thesing: Du hast ein change drin mit dem Namen "fix connect", der ist meiner Meinung nach fehlerhaft bzw. ich bin mir nicht sicher. Derzeit wirkt sich das nicht aus, erst wenn ich meinen pull-Request mit "restartDevice" mache (sorry, dass das so lange dauert, ich teste immer noch verschiedene Geräte).

            Dein change:
            Code:
            void ApplicationLayer::connectConfirm(uint16_t destination, uint16_t tsap, bool status)
            {
                if (status)
                    _connectedTsap = tsap;
                else
                    _connectedTsap = -1;
            }
            Aufgerufen wird das aber mit
            Code:
            void TransportLayer::A13(uint16_t destination)
            {
                _applicationLayer.connectConfirm(destination, 0, true);
            }
            und damit mit einer konstanten 0 für tsap. Ich brauche die Stelle auch für's restartDevice und habe da derzeit   _connectedTsap = destination;  stehen. Dann kann man auch prüfen, ob bereits connected ist und mit wem. So funktioniert es, aber ich bin natürlich nicht sicher, ob das richtig ist.
            Ich wollte nur Feedback geben, auf jeden Fall wird mein pull-Request diese Stelle auch behandeln...

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              mumpf Das ist schon richtig so. Der tsap ist in dem Fall nicht die Zieladresse, sondert die Verbindungsnummer, die vorher aufgebaut wurde. Da das aktuelle Transportlayer nur eine Verbindung auf einmal kann, ist der tsap 0, wenn es eine Verbindung gibt, und -1 sonst.
              Theoretisch könnte auch ein negatives confirm kommen, wenn es beim Senden einen Fehler gibt. Ggf. fehlt das.

              VG Thomas
              Zuletzt geändert von thesing; 09.09.2019, 18:23.

              Kommentar


                Danke für die Rückmeldung, dann passe ich mal mein Coding entsprechend an und teste mal weiter mit restart...

                Zum negativen confirm: Soweit ich die Spec noch in Erinnerung habe (Ich habe nicht alles gelesen, von dem Gelesenen nicht alles verstanden und von dem Verstandenen wahrscheinlich einiges falsch verstanden ), wird ein Connect nicht bestätigt bzw. man muss auf keine Bestätigung warten, deswegen gibt es auch kein "negatives confirm". Deswegen liest die ETS (und inzwischen hab ich das auch bei anderen Geräten, die ein connect machen, beobachtet) gleich den DeviceDescriptior hinterher. Wenn da ne Antwort kommt, weiß man, dass der Connect geklappt hat. Du hast auch den Connect so implementiert, ich hab mich mal durch die StateEngine durchdebugged und nach A12 wird mehr oder weniger gleich auch die A13 und somit immer ein positiver connectConfirm aufgerufen.

                Ich wolle damit nur sagen, dass man gar nicht auf   if (status)  abfragen müsste, das Ding wird wohl nie mit "false" aufgerufen...

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  Hallo,

                  ich versuche gerade den bme680 wieder zu beleben.
                  Du benutzt ja die 1.4.7.3. Bisher benutzte ich die 1.4.7.1.
                  Die .3 gibt es nicht mehr zum Download. Also habe ich auf die .4 Aktualisiert. Das lief nicht mit meiner älteren Arduino IDE.
                  Also die auch neu installiert. Nochmal durch die Installations-Hölle der BSEC-Lib. Beispiel-Sketch der BSEC-Lib kompiliert.

                  Aber dein BSEC-Sketch nicht. Da haben die also wieder an der Syntax gefummelt. Das ist echt unschön (nicht von dir, von denen). Ich frage mich was das soll. Die könnten die API doch echt mal stabil halten, zumindest wenn sich die vierte Nachkommastelle ändert...
                  Code:
                  H:\HeimNetzwerk\espknx\BME680\knx-bme680\knx-bme680.ino: In function 'void loop()':
                  
                  knx-bme680:139:43: error: 'class Bsec' has no member named 'iaq'
                  
                           output += ", " + String(iaqSensor.iaq);
                  Ich denke, das muss jetzt iaqEstimate heißen (ich glaube, das war in einer früheren Version tatsächlich auch schon einmal so)

                  Gruß,
                  Hendrik

                  Kommentar


                    Hallo nochmal,

                    davon abgesehen funktioniert der Sketch jetzt aber wie erwartet!!
                    Danke!
                    Es war allerdings nötig "Erase Flash, All Content" zu wählen. Vorher ging es nicht.

                    Gruß,
                    Hendrik

                    Kommentar


                      Moin zusammen,

                      auf die Gefahr, das es hier nicht so gut hinpasst (dann bitte Hinweis, ob ich einen neuen Thread aufmachen soll): Ich habe das CreateKnxProd von thesing versucht in eine Bibliothek zu migrieren. Hintergrund ist, dass ich auf dem Mac entwickele und eine WPF-Applikation dort nicht läuft und ich ohnehin lieber eine Kommandozeilenversion nutzen möchte. Ihr findet das Ergebnis meiner Bemühungen unter https://github.com/metaneutrons/KnxProd. Die Bibliothek nutze ich selber für mein Kommandozeilen-Tool mknx, welches unter https://github.com/metaneutrons/mknx verfügbar ist.

                      Wer Lust hat das zu testen, klont am besten beide Repos und erzeugt eine übergeordnete Solution in die man dann beide Projekte lädt.

                      Ich muss einräumen, dass ich aller andere als ein C#-Experte bin; das Erstellen/Bearbeiten der XML-Dateien funktioniert bei mir jedoch tadellos.

                      Ein Problem gibt es aktuell noch beim Erstellen der knxprod-Datei. Dort erhalten ich aus dem Invoke der Knx.Ets.Converter-Dlls folgenden Fehler:

                      Code:
                      System.TypeInitializationException: The type initializer for 'Knx.Ets.Converter.ConverterEngine.ConvertBase' threw an exception. ---> System.NotSupportedException: No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
                      
                         at System.Text.Encoding.GetEncoding(Int32 codepage)
                      
                         at Knx.Ets.Converter.ConverterEngine.ConvertBase..cctor()
                      Lade ich die vom meinem Tool erzeugte XML-Datei in CreateKnxProd und exportiere dort, tritt der Fehler nicht auf. Das Problem scheint auch nicht mit dem Mac zu tun zu haben, da er auch unter Windows auftritt.

                      Pull-Requests sind jederzeit hochwillkommen!

                      Herzliche Grüße, Fabian

                      Kommentar


                        Hi Fabian,

                        über das Problem bin ich auch schon gestolpert, ist einfach zu lösen... ich habe folgendes Statement gefunden gehabt:
                        It turns out that some “exotic” encodings (including popular Windows-1252) are defined in separate NuGet package and these encodings are not available by default.

                        Solution is simple. Add System.Text.Encoding.CodePages NuGet package to solution and use the following piece of code in application startup class to registester new encodings.
                        Code:
                            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                        Dann geht das auch wieder...

                        Gruß, Waldemar
                        OpenKNX www.openknx.de

                        Kommentar


                          Ich würde es besser finden, einfach eine platformübergreifendes GUI-Toolkit zu nutzen, und das gleiche Programm ggf. per Kommandozeile aufrufbar zu machen.

                          VG
                          Thomas

                          Kommentar


                            Moin zusammen!

                            Danke mumpf für den Hinweis mit dem Encoding. Läuft jetzt bei mir. Leider ist im NetCore die Cryptographie offenbar noch nicht vollständig implementiert. Da gibt es derzeit den nächsten Fehler. Ich schaue mir das die Tage an.

                            @thesing: Ja, da stimme ich Dir zu. Ich habe mir bereits https://avaloniaui.net angeschaut. Hast Du Erfahrungen mit einem Cross-Plattform GUI Toolkit unter C#? Ich habe leider überhaupt keine Erfahrungen mit GUI-Apps unter C# - egal welches GUI Framework. Die Funktionalität für das Bearbeiten der XML-Dateien in eine Bibliothek zu verlagern schien mir aber ein sinnvoller Zwischenschritt zu sein. Würdest Du eine Weiterarbeit an CreateKnxProd als Monolith bevorzugen?

                            Herzliche Grüße, Fabian

                            Kommentar


                              Hi,

                              was ist denn der Fehler? Ich bin auch über einige Fallen gestolpert und hab sie alle lösen können - die letzte dann allerdings nur, indem ich auf core3.0-beta gegangen bin.

                              thesing: Ich habe leider auch keine Erfahrungen mit GUI unter netcore, aber man könnte das ja mit der Idee von Fabian verbinden: Es gibt eine Library, die das Management der xml-Files übernimmt und verschiedene Frontends: ein Kommandozeilen-Tool und ein GUI-Tool. Ich könnte mal schauen, was von meinem Kommandozeilen-Tool auszugliedern wäre, um das bei Fabian mit aufzunehmen, ich habe inzwischen einige "Sanity-Checks" gemacht.

                              Ich wäre z.B. viel mehr dran interessiert, die resultierenden XML-Files, die als input für den ETS-Converter dienen, über einen Präprozessor zu erzeugen, der á la XInclude wiederverwendbare Teile nutzen kann (ParameterTypes sind dafür ein Kandidat, aber auch ganze paramter-Bereichte). Und dann an einer Template-Engine, die sich wiederholende XML-Blöcke generiert. Und dann noch an einem Headerfile-Generator...

                              An sich habe ich die obigen Teile schon, aber eher "verwoben" in einem Tool, dass wohl kein anderer auf der Welt nutzen könnte .

                              Ein GUI-Tool werde ich wohl nicht benutzen und bin deswegen eher weniger daran interessiert, sorry.

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                Ohne GUI ist die Funktion doch eigentlich nur: Ids erzeugen und Datei signieren. Das ist so wenig Code, es sich nicht lohnt das aufzuspalten. Eine Kommandozeile würde ich nicht zum vollständigen Erstellen nutzen wollen. Das avaloniaui sollte man relativ leicht einbauen können. Ich habe damit aber noch nicht gearbeitet.

                                Prinzipiell ist mein Fokus aber auch eher auf der Geräteseite. Die GUI ist nur ein notwendiges Übel.

                                VG
                                Thomas

                                Kommentar

                                Lädt...
                                X