Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit neuen thelsing / knx Stack Versionen und ESP32 / ESP8266

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

    #61
    Ing-Dom nein nicht mehr geändert 👍

    Jetzt stehe ich vor neuen Problem.
    Mit Kanex ein Produkt erstellt und erfolgreich in Ets importiert. Nun ist die Frage wie ich die XML Datei erstelle für den Code ?

    Grüße
    Julian

    Kommentar


      #62
      Zitat von Kingside Beitrag anzeigen
      Nun ist die Frage wie ich die XML Datei erstelle für den Code ?
      Welche xml für welchen Code?
      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

      Kommentar


        #63
        Bestes Forum hier (danke mal wieder für deine schnelle Antwort).
        Ich hatte das Beispiel DIY-DEMO thelsing/knx​ umgeschrieben das ich ws2812b und sk6812 rgbw mit meinen Glastaster2 benutzen kann Mein Ehrgeiz hat mich dazu gebracht eine KNX Produktdatei zu erstellen mit dem Kaenx-Creator. Jetzt muss natürlich der Controller(ESP32) die neue Struktur wissen.
        Hier haben ich vorgesehen R(1byte),G(1byte),B(1byte),WW(1byte),Start_Stop(R( 1byte). Diese entnimmt der Code doch aus der XML-Datei oder liege ich hier falsch ?
        Grüße
        Julian

        Kommentar


          #64
          Du liegst falsch .

          Zu meiner Schande habe ich den Kaenx-Creator schon lange nicht mehr benutzt. Generiert er zufällig auch ein .h-file? Wenn ja, sollten da drin passende #defines stehen, die für die Parameter und KO Deiner ETS-Applikation gelten.

          Dann kannst Du in der Firmware entspechend die Parameter auslesen und auf entsprechende KO schreiben.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #65
            der Creator erstellt natürlich eine .h Datei...

            Kommentar


              #66
              Die üblichen verdächtigen Danke für eure Antworten Wenn das Projekt komplett fertig ist werde ich es der Allgemeinheit öffnen. (Code,Platine,KNX)
              Also hat die XML-Datei keine Bedeutung im Code // Nur die Defines die in der H-Datei geschrieben werden ?
              Weil die alte XML-Datei von der DIY-DEMO ist ausführlicher ( Produktname ,Größe, Parameter , und und ) und die erstellte .h Datei beinhaltet nur die defines ...
              Grüße
              Julian
              Versucht hatte ich es auch schon manuell anzupassen aber leider ohne Erfolg xD
              <ComObjectTable>
              <ComObject Id="M-00FA_A-ABCE-79-0000_O-1" Name="Current temperature value" Text="Current temperature value" Number="1" FunctionText="Transmit temperature value" ObjectSize="2 Bytes" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="" />
              <ComObject Id="M-00FA_A-ABCE-79-0000_O-2" Name="Max memory value" Text="Max memory value" Number="2" FunctionText="Read memory" ObjectSize="2 Bytes" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="" />
              <ComObject Id="M-00FA_A-ABCE-79-0000_O-3" Name="Min memory value" Text="Min memory value" Number="3" FunctionText="Read memory" ObjectSize="2 Bytes" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="" />
              <ComObject Id="M-00FA_A-ABCE-79-0000_O-4" Name="Min/max memory reseet" Text="Min/max memory reseet" Number="4" FunctionText="Reset memory" ObjectSize="1 Bit" ReadFlag="Disabled" WriteFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Disabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="" />
              </ComObjectTable>
              Zuletzt geändert von Kingside; 23.01.2023, 14:16.

              Kommentar


                #67
                Ja, die XML ist für die ETS, die .h ist für C++. Manchmal ist es so einfach . Die .h nimmt einem nur etwas rechnen ab, technisch notwendig ist sie nicht.

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  #68
                  okay gut das habe ich dann richtig verstanden.
                  Wie sieht denn der Ablauf bei euch aus ? gibt es ein besseres Tool zum erstellen der KNX.prod Datei ? ( passt ihr die XML-Datei manuell an ? )
                  Aktuell wenn ich meine Produkt-Datei (Applikationsdatei) im Esp32 lade resetet der Controller immer wieder neu.
                  Hier war meine Vermutung da die XML Datei fehlerhaft sein könnte.
                  Grüße
                  Julian

                  Kommentar


                    #69
                    Zitat von Kingside Beitrag anzeigen
                    Weil die alte XML-Datei von der DIY-DEMO ist ausführlicher
                    Das liegt daran, dass in der xml der Demo nicht nur die Applikation drin ist, sondern auch die Hardware und Katalog.
                    Bei mir trenne ich das in drei Seperate Dateien (wie sie auch später in der knxprod zu finden sind).

                    Die Defines sind wichtig/hilfreich für das Arduino Projekt.
                    Dann kannst du nämlich in deinem Code
                    knx.paramByte(Param_LightSettings)
                    .
                    Ändert sich nun der Offset (Speicherort) des Parameters musst du nur die neue .h in dein Projekt übernehmen.
                    (Ansonsten müsstest du jede Stelle wo du auf den Offset zugreifst manuell in den neuen Ändern)

                    Zitat von Kingside Beitrag anzeigen
                    Versucht hatte ich es auch schon manuell anzupassen aber leider ohne Erfolg xD
                    Was du damit meinst weiß ich nicht.
                    Du kannst ja die XML im Creator importieren, dort deine Anpassungen machen und danach wieder exportieren.
                    OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                    Kommentar


                      #70
                      Zitat von Kingside Beitrag anzeigen
                      Aktuell wenn ich meine Produkt-Datei (Applikationsdatei) im Esp32 lade resetet der Controller immer wieder neu.
                      Hier war meine Vermutung da die XML Datei fehlerhaft sein könnte.
                      Diese Aussagen passen überhaupt nicht zusammen.
                      Man lädt die XML nicht in den ESP.
                      Es wird nur die .h importiert.

                      Ohne mehr Code (am besten Github Link) können wir da auch nicht helfen...
                      OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                      Kommentar


                        #71
                        Oh okay thewhobox dann hab ich es doch nicht verstanden. Ich werde mal die knx.prod am Donnerstag hochladen und den c++ code.


                        Dankeschön für deine Antwort 😊
                        Grüße
                        Julian
                        Zuletzt geändert von Kingside; 23.01.2023, 15:17.

                        Kommentar


                          #72
                          Kein Problem
                          Schon mal vorweg eine kleine Zusammenfassung:

                          XML-demo -> in Kaenx.Creator laden -> erstellt knxprod und .h
                          knxprod -> wird in ETS geladen -> schreibt parameter in ESP
                          .h -> in Arduino Code inkludieren -> in Code können nun die Defines verwendet werden:
                          Code:
                          #define Param_rgb_Offset 2
                          #define Param_rgb_Mask 0xF0
                          #define Param_rgb_Shift 4
                          
                          int rgb = (knx.paramByte(Param_rgb_Offset) & Param_rgb_Mask) >> Param_rgb_Shift;
                          OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                          Kommentar


                            #73
                            Hallo zusammen ;D danke nochmal thewhobox // deine kleine Zusammenfassung hat mich nochmals Überlegen lassen // Hatte im Kaenx Creator keinen Speicher angelegt bzw. gedacht das automatisch anlegen macht es von allein. Den Harken habe ich weggemacht und Speicher angelegt hiernach hat sich der µC nicht mehr aufgehängt. // Allerdings wenn ich jetzt aus dem Gruppenmonitor auf die Gruppenadresse sende bekomme ich nur jede 2 Adresse( Byte) Empfangen.Mir ist nicht ganz klar wie die zuordnung der Daten passiert ;( // Sprich: 1/1/1 = Rot 1/1/2= Grün 1/1/3 Blau 1/1/4 = Weiß// Ich bekomme über den Gruppenmonitor nur auf Grün und Weiß etwas im µC empfangen.
                            (Wofür genau ist der Offset beim Kaenx Creator und warum bekomme ich nur jedes 2 byte gelesen ? )
                            -Grüße


                            Programmauschnitt :
                            #define Rot knx.getGroupObject(0)
                            #define Grun knx.getGroupObject(1) // wird empfangen
                            #define Blau knx.getGroupObject(2)
                            #define Weiss knx.getGroupObject(3) // wird empfangen
                            #define Effekte knx.getGroupObject(4)
                            #define StartStop knx.getGroupObject(5) // wird empfangen

                            Rot.dataPointType(DPT_DecimalFactor);
                            Grun.dataPointType(DPT_DecimalFactor);
                            Blau.dataPointType(DPT_DecimalFactor);
                            Weiss.dataPointType(DPT_DecimalFactor);
                            Effekte.dataPointType(DPT_DecimalFactor);
                            StartStop.dataPointType(DPT_DecimalFactor);
                            /* WLED ist eine gute alternative, aber der Traum mit dem Glastaster alles zu steuern lebt weiter */


                            ETS.png

                            Speicher.png

                            ComObject.png
                            Zuletzt geändert von Kingside; 27.01.2023, 12:49.

                            Kommentar


                              #74
                              Zitat von Kingside Beitrag anzeigen
                              keinen Speicher angelegt bzw. gedacht das automatisch anlegen macht es von allein.
                              Nein es wird keiner automatisch angelegt.
                              Wenn du allerdings vom Template "Minimal" startest, ist ein Speicher bereits angelegt.
                              Die automatische Größe wird beim veröffentlichen oder Heatmap berechnen berechnet.
                              Kann natürlich sein, dass der Stack mit einer größe von 0 Bytes nicht zurecht kommt.

                              Zitat von Kingside Beitrag anzeigen
                              jede 2 Adresse( Byte) Empfangen
                              #define Rot knx.getGroupObject(0)
                              Das hat auch bei mir schon zu vielen Problemen geführt.
                              Für den Stack müssen die KOs bei 1 anfangen.

                              Warum die anderen nicht empfangen werden kann ich nur raten.
                              knx.loop() zu selten aufgerufen
                              Flags an den KOs stimmen nicht
                              für die anderen kein Callback angegeben

                              Zitat von Kingside Beitrag anzeigen
                              Mir ist nicht ganz klar wie die zuordnung der Daten passiert ;( // Sprich: 1/1/1 = Rot 1/1/2= Grün 1/1/3 Blau 1/1/4 = Weiß
                              Die zuordnung von KO (Rot, Grün, ...) zu GA (1/1/1, 1/1/2, ...) erfolgt über die ETS.

                              Zitat von Kingside Beitrag anzeigen
                              Wofür genau ist der Offset beim Kaenx Creator
                              Der Offset bei einem Speichersegment ist laut XSD zwingend erforderlich.
                              Man könnte die ersten 3 Bytes irgendwelche Statischen informationen Speichern und Offset auf 3 stellen, damit die 3 bytes beim Parametrieren nicht überschrieben werden.
                              Hab ich aber noch nie getestet, im Normalfall bleibt das einfach auf 0.

                              Und nochmal: Ohne Code kann man zum Großteil nur Raten

                              Gruß Mike
                              OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                              Kommentar


                                #75
                                Ja, der Stack von thesing kann kein KO 0, die müssen bei 1 anfangen!

                                Gruß, Waldemar

                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X