Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

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

    Einen Kommentar schreiben:


  • Masifi
    antwortet
    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.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • Masifi
    antwortet
    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

    Einen Kommentar schreiben:


  • Masifi
    antwortet
    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));

    Einen Kommentar schreiben:


  • chost
    antwortet
    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.

    Einen Kommentar schreiben:


  • chost
    antwortet
    Hallo zusammen,

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

    Einen Kommentar schreiben:


  • Gehetzter
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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...

    Einen Kommentar schreiben:


  • Gehetzter
    antwortet
    Hallo Forum,

    erstmal ein ganz großes Dankeschön für eure Entwicklung.
    Habe mir die ersten 40 Seiten hier durchgelesen. Echt der absolute Hammer.

    Habe mir jetzt mal einen Esp8266 mit dem BME Beispiel aufgesetzt.
    Dieser läuft auch erstmal hoch und wartet dann am
    Code:
     if(!knx.configured())
    return;
    Die beigelegte knxprod habe ich in ein Ets Projekt gezerrt.
    Leider scheitere ich beim ersten Download aus der ETS bzw der Einstellung der Schnittstelle.

    Wie bekomme ich die Schnittstelle mit Multicast ausgewählt, wie hier im Screenshot:

    Zitat von manu241 Beitrag anzeigen
    Hallo Jeff25.

    hier meine Schnittstellen. Ausgewählt habe ich die: Intel(R) Dual Band Wireless ...
    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?

    Vielen Dank und Grüße
    Jan

    Edit:
    Wie das halt immer so ist...
    Stundenlang gesucht, dann doch Fragen getraut, nochmal kurz gesucht und sofort die Antwort selbst gefunden...

    Zitat von Klaus Gütter Beitrag anzeigen
    Hallo Waldemar,

    die ETS sendet einen SearchRequest auf der Multicastadresse. Darauf sollten sich alle Geräte melden, die KNXnet/IP verstehen. Wenn keins darunter ist, das ansagt, das Routing-Protokoll zu unterstützen, wird die Netzwerkkarte ausgeblendet, da sinnlos.
    Der SearchRequest scheint zu gehen, sonst würden ja auch keine IP-Schnittstellen gefunden werden.
    Kannst ja mal mit Wireshark schauen, da ist mittlerweile ein guter Dissector für KNXnet/IP an Bord.

    Gruß, Klaus
    Also wenn die ETS sucht antwortet wohl der Esp nicht.
    Im Serial erscheint immer mal wieder
    Code:
    Unhandled service identifier: 20B
    Dann ist vermutlich der identifier 20B die Multicast Anfrage von der ETS...

    Wow, das ist so krass viel auf einmal
    Zuletzt geändert von Gehetzter; 29.05.2021, 01:52.

    Einen Kommentar schreiben:


  • Zepp
    antwortet
    Ist mir egal ich kann auch ArduinoIDE installieren. Will mir das nur mal ansehen. Steht das denn irgendwo? Gibt es irgendein getting-started?

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Du musst Bedenken, das das eigentlich Projekte für die Arduino IDE sind.

    Ich bin erst am Wochenende wieder zu Hause, dann könnte ich Mal schauen, was man alles braucht, um das in PlattformIO zu öffnen.

    Gruß, Waldemar
    ​​​​​​

    Einen Kommentar schreiben:


  • Zepp
    antwortet
    Ich habe das repo gecloned.
    Und dann in platform.io examples/knx-demo geoeffnet.

    Einen Kommentar schreiben:


  • proggerKA
    antwortet
    Hast du bei den Build Parametern auch deine Maskenversion angegeben?
    Wie sieht den dein Code und Ordnerstruktur aus?


    Bei mir hat das Erstellen schon oft funktioniert.
    Neues Projekt erstellt, Stack in den lib Ordner und referenzieren.
    Natürlich muss auch das richtige Board ausgewählt sein, sonst geht es nicht.

    Gruß Mike

    Einen Kommentar schreiben:


  • Zepp
    antwortet
    Gibt es irgendwo eine Anleitung was man tun muss um den Stack zu bauen?
    Das platformio-vscpde-plugin hab ich installiert.
    Aber egal welche `platformio.ini` ich oeffne, der build funktioniert nicht. (knx.h ist nicht im include-pfad).
    Bin ich zu bloed, oder gibt es kein funktionierendes project-file?

    Einen Kommentar schreiben:

Lädt...
X