Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    Hallo Jan,

    Zitat von Gehetzter Beitrag anzeigen
    Drücke ich bei mir auf das grüne + wird mir ausschließlich "IP Tunneling" und die gesperrte App EibLib/Ip angeboten.
    Muss ich für Multicast die App kaufen?
    Nein, Du musst keine App kaufen, aber Du brauchst irgendein weiteres KNXnet/IP-Gerät. Der Stack hier beantwortet nicht die SearchRequests, deswegen siehst Du keine Netzwerk-Schnittstelle in der ETS.

    Ich hab das so gelöst, dass ich den knxd auf einer Linux-Kiste habe laufen lassen (als Router). Dann erscheint die Schnittstelle in der ETS und man kann sie auswählen. Allerdings hatte der knxd damals noch einen Bug, so dass beim programmieren einer PA immer mehrere Geräte im Programmiermodus waren. Deswegen musste ich damals nach der Erkennung der Schnittstelle den knxd wieder deaktivieren. Ob das noch so ist, kann ich nicht sagen, ich nutze seit geraumer Zeit einen SAMD21 mit KNX-TP.

    Gruß, Waldemar

    P.S.: Alternativ kannst Du natürlich auch einen "richtigen" KNX-Router nehmen oder ein anderes KNXnet/IP-Gerät...
    OpenKNX www.openknx.de

    Kommentar


      Danke Waldemar, heute hatte ich wieder Zeit mich zu beschäftigen.
      Habe mal einen ersten Test hinbekommen. Es kommen Werte auf dem Gruppenmonitor.
      Sind aber noch Schrott und keine richtigen BME Werte.

      Für Einsteiger hier nochmal kurz was ich bisher gemacht habe:
      - Arduino 1.8.15 installiert
      - Im Boardverwalter esp8266 3.0.0 von ESP8266 Community installiert
      - Auf Github die Lib von thelsing als .zip geladen. Entpackt und den kompletten Ordnerinhalt, (nicht nur den src Ordner ;-) ) in das arduino library Verzeichnis kopiert
      - Im Bibliotheksmanager die BSEC Software Library 1.6.1480 installiert
      - Auf der github Seite der Sensortec Lib die Anleitung beachtet und die platform.txt entsprechend angepasst. Diese lag bei mir unter:
      Code:
      C:\Users\<username>\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0
      - BME680 Example von thelsing geöffnet und auf den esp8266 geladen
      (Musste den Restore Callback auskommentieren, der warf einen Fehler, noch nicht nachgsehen was der eigentlich macht)
      Code:
      //knx.setRestoreCallback(loadBme680State);
      - VM mit debian aufgesetzt
      - knxd installiert und konfiguriert:
      https://knx-user-forum.de/forum/proj...en#post1049547
      Meine Konfig ist jetzt mit MDT Ip Interface:
      Code:
      KNXD_OPTS="-e 1.1.80 -E 1.1.81:2 -c -D -R -S 224.0.23.12:3671 -b ipt:192.168.178.28"
      - ETS Project erstellt, knxprod aus dem BME680 Beispiel reingezerrt.
      - Netzwerkkarte taucht aufgrund von knxd als gefundene Schnittstelle auf
      - Physikalische Adresse geladen, Programmiermodus bei meinem Wemos D1 mini durch D3 auf Masse (_buttonPin gefunden in knx_facade.h)
      - Gruppenadressen vergeben
      - Applikation geladen
      - Gruppenmonitor beobachtet - es kommen Zahlen an, sowohl über den knxd direkt als Schnittstelle, als auch geroutet an das MDT Interface

      Melde mich demnächst bestimmt nochmal... 😁


      Viel Erfolg allen beim Basteln und Grüße
      Jan

      Kommentar


        Hallo zusammen,

        neu unterstütz der stack IP discovery, also wird knxd nicht mehr benötigt.

        Kommentar


          Hat jemand schon ein IP oder TP KNX Data Secure Gerät im Betrieb?
          FDSK berechnen klappt und er wir von der ETS akzeptiert mit der richtigen Serien Nummer.
          Leider klappt das Laden der Physikalischen Adresse nicht. Egal ob mit oder ohne Sichere Inbetriebnahme.

          edit.:

          Weiss jemand für was die Einträge:
          Max SecurityIndividualAddress Enties
          Max SecurityGroupKeyTables Enties

          Im CreateKnxProd tool sind?
          Zuletzt geändert von chost; 07.06.2021, 14:06.

          Kommentar


            Hallo,

            ich habe mal eine schnelle Frage zum DPT3.007 und 3.008

            Was für ein Datentyp muss ich hier als Value denn setzen?

            knx.getGroupObject(ComObj).value(???, DPT(3,8));
            knx.getGroupObject(ComObj).value(???, DPT(3,7));
            www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

            Kommentar


              thesing Den Punkt müsstest du dir vielleicht mal anschauen. Ich habe etwas mit den beiden DPTs 3.007 und 3.008 gespielt. Irgendwie hat es nie funktioniert wie ich es erwartet habe.
              Egal welchen Wert ich einsetze (oben bei den ???) es wird immer nur eine 0x08 oder 0x00 auf den Bus geschickt. Beide Werte sind Stopp-Werte.

              Darauf habe ich mit Waldemar gesprochen. Er hat sich deine Implementierung mal schnell angeschaut und denkt, dass du hier entweder nur das data filed "c" für Decrease oder Increase sendest oder nur den "StepCode".
              Das würde zu meinen Verhalten passen was ich bei mir sehe. Für eine richtige Implementieren muss doch immer "c" und "StepCode" gleichzeitig gesendet werden, oder?

              Gruß Mat
              www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

              Kommentar


                Hi Mat,

                ich hab Dir noch was geschickt, was Du ausprobieren kannst. Komme wie gesagt derzeit selber nicht zum testen. Generelle Idee (vielleicht kann Thomas das ja bestätigen):
                Pseudocode...
                Code:
                value = 9; // wäre hochdimmen, 100%
                ko.writeNoSend(value, DPT(3,7,1)); // schreibt die Schrittweite, ohne zu senden
                ko.write(value, DPT(3,7,0); // schreibt die Richtung und sendet alles (auch die Schrittweite).
                Analog beim runterdimmen...

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  Nach etwas rumspielen habe ich wohl die richtige Implementierung gefunden:

                  Das ist der Code zum Dimmen heller
                  Code:
                  dpt3value = 1;
                  knx.getGroupObject(firstComObj).valueNoSend(dpt3va lue, Dpt(3,7,1)); // schreibt die Schrittweite, ohne zu senden
                  dpt3value = 8;
                  knx.getGroupObject(firstComObj).value(dpt3value, Dpt(3,7,0));  // schreibt die Richtung und sendet alles (auch die Schrittweite)
                  Das ist der Code zum Dimmen dunkler
                  Code:
                  dpt3value = 1;
                  knx.getGroupObject(firstComObj).valueNoSend(dpt3va lue, Dpt(3,7,1)); // schreibt die Schrittweite, ohne zu senden
                  dpt3value = 0;
                  knx.getGroupObject(firstComObj).value(dpt3value, Dpt(3,7,0));  // schreibt die Richtung und sendet alles (auch die Schrittweite)
                  wichtig ist hier wohl das man die uint8_t Variable dpt3value für den jeweiligen Schritt setzt.
                  www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

                  Kommentar


                    Ihr habt das richtig herausgefunden. Analog funktioniert es bei anderen zusammgesetzten Dpt.

                    Kommentar


                      Ich hätte mal eine Frage zum Thema Memory / Flash. Ich beziehe mich auf den master branch !

                      SAMD21 plattform nutzt je die EEPROM emulation, da reichen anscheinend zwei Methoden:
                      uint8_t* getEepromBuffer(uint16_t size);
                      void commitToEeprom();
                      aus ?
                      Mehr brauchts nicht, oder?
                      Gelesen und Geschrieben wird aus dem Buffer, und commit schreibt es dann dauerhaft.

                      in der plattform.h finde ich

                      Code:
                       #if 0
                      // Flash memory
                      virtual size_t flashEraseBlockSize(); // in pages
                      virtual size_t flashPageSize(); // in bytes
                      virtual uint8_t* userFlashStart(); // start of user flash aligned to start of an erase block
                      virtual size_t userFlashSizeEraseBlocks(); // in eraseBlocks
                      virtual void flashErase(uint16_t eraseBlockNum); //relativ to userFlashStart
                      virtual void flashWritePage(uint16_t pageNumber, uint8_t* data); //write a single page to flash (pageNumber relative to userFashStart
                      #endif
                      diese methoden werden aber nirgends definiert noch gerufen - reiner Platzhalter momentan?
                      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                      Kommentar


                        2x korrekt. Mit den Platzhaltern habe ich im flash branch irgendwann mal angefangen.

                        Kommentar


                          Grundlegender Support für Raspberry Pi Pico (RP2040) ist fertig.

                          Das demo sketch läuft, lässte sich mit ETS programmieren und sendet.
                          Die plattform läuft mit dem arduino-pico Arduino Core (https://github.com/earlephilhower/arduino-pico)

                          pull request ist gestellt: https://github.com/thelsing/knx/pull/145

                          Viel Spaß beim ausprobieren.


                          Man kann hier noch viel optimieren / erweitern. z.B. multicore-support, fw-update über knx, mehr (viel mehr) flash / eeprom emulation (aktuell nur 4k, 1 block).

                          keil

                          Nanosonde
                          Zuletzt geändert von Ing-Dom; 08.07.2021, 17:56.
                          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                          Kommentar


                            Hallo,
                            ich bin neu im Forum und im KNX und brauche etwas Hilfe bei der Installation bzw. Verwendung der CreateKnxProd von thesing.
                            Ich habe das Beispiel knx-demo-diy.ino der knx.lib von thesing mit einen ESP32 (D1 R32) über TP mittels Siemens 5WG1 117-2AB12 soweit zum laufen gebracht.
                            Ich habe die mitgelieferte knxprod in der ETS5 eingelesen und ich kann es mit der ETS5 "programmieren" und es kommen die Werte an.
                            Da mein Projekt jedoch ein Ultraschall-Füllstandsensor für die Zisterne werden soll, wollte ich nun die knx-demo-diy-tp.xml als Vorlage nehmen und
                            entsprechende Änderungen in der CreateKnxProd vornehmen. Also habe ich das fertige Release der CreateKnxProd heruntergeladen und entpackt.
                            Es geht auch zu starten, aber wenn ich die knx-demo-diy-tp.xml damit einlese kommt sofort eine Fehlermeldung:
                            "System.InvalidOperationException: Fehler im XML-Dokument....<KNX xmins='http://knx.org/xml/project/11'> wurde nicht erwartet bei Microsoft.Xml.Serialization..."
                            siehe auch angehangene Bild.
                            Was braucht CreateKnxProd noch um zu funktionieren oder was geht bei mir schief?
                            Ich hoffe auf eure Hilfe.
                            Vielen Dank im Voraus.
                            You do not have permission to view this gallery.
                            This gallery has 1 photos.

                            Kommentar


                              Zitat von JSchlucker Beitrag anzeigen
                              Hallo,
                              ich bin neu im Forum und im KNX und brauche etwas Hilfe bei der Installation bzw. Verwendung der CreateKnxProd von thesing.
                              Ich habe das Beispiel knx-demo-diy.ino der knx.lib von thesing mit einen ESP32 (D1 R32) über TP mittels Siemens 5WG1 117-2AB12 soweit zum laufen gebracht.
                              Ich habe die mitgelieferte knxprod in der ETS5 eingelesen und ich kann es mit der ETS5 "programmieren" und es kommen die Werte an.
                              Da mein Projekt jedoch ein Ultraschall-Füllstandsensor für die Zisterne werden soll, wollte ich nun die knx-demo-diy-tp.xml als Vorlage nehmen und
                              entsprechende Änderungen in der CreateKnxProd vornehmen. Also habe ich das fertige Release der CreateKnxProd heruntergeladen und entpackt.
                              Es geht auch zu starten, aber wenn ich die knx-demo-diy-tp.xml damit einlese kommt sofort eine Fehlermeldung:
                              "System.InvalidOperationException: Fehler im XML-Dokument....<KNX xmins='http://knx.org/xml/project/11'> wurde nicht erwartet bei Microsoft.Xml.Serialization..."
                              siehe auch angehangene Bild.
                              Was braucht CreateKnxProd noch um zu funktionieren oder was geht bei mir schief?
                              Ich hoffe auf eure Hilfe.
                              Vielen Dank im Voraus.

                              die knx-demo-diy-tp.xml geht nur mit dem Release 22 die Demo ist noch auf dem ETS4 Schema.

                              ich würde dir empfehlen das Tool vom mumpf anzuschauen.
                              https://github.com/mumpf/multiply-channels

                              Kommentar


                                Hallo chost,
                                vielen Dank für den Hinweis.
                                Ich habe inzwischen meine knxprod mit dem Tool vom mumpf hinbekommen.
                                MfG JSchlucker


                                Kommentar

                                Lädt...
                                X