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?
Ankündigung
Einklappen
Keine Ankündigung bisher.
ESP8266 KNX mit ETS
Einklappen
X
-
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 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,
ThomasZuletzt geändert von thesing; 23.02.2019, 00:39.
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.
- Likes 1
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); }
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#L136Zuletzt geändert von thesing; 01.03.2019, 17:45.
Kommentar
-
Hallo,
Zitat von thesing Beitrag anzeigenhenfri hattest du dir das nicht sogar gewünscht?
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
Kommentar