Ankündigung
Einklappen
Keine Ankündigung bisher.
ESP8266 KNX mit ETS
Einklappen
X
-
Ja der Plan ist, dass VisualGdb komplett optional bleibt. Nur bei der Linuxversion ist wird CMakeLists.txt nicht mehr automatisch erweitert. Dass muss ich mal bei Gelegenheit ändern.
-
Die Idee von VisualGDB finde ich auch recht nett. Ich warte momentan noch auf den finalen Release von 5.4 und überlege dann nochmal. Aktuell ist meine Eval-Lizenz ausgelaufen. :-/Zitat von thesing Beitrag anzeigen@Nanosonde:
Ich habe auf platformio nichts eingestellt und pflege dort auch nichts. Muss wohl ein Crawler oder ein Nutzer gewesen sein. Ich finden PlatformIO nicht schlecht, aber um Debuggen zu können kostet das 10€ im Monat. VisualGDB kostet einmalig 90€ (optional 45€ für zusätzliche Jahre Support). Da ich Visual Studio mag und ich VisualGDB auch für die Linux-Entwicklung nutze benutze ich das. PlatformIO ist sicher auch gut, aber wozu eine neue IDE lernen, wenn es die altbekannte auch tun?
Wenn jemand einen PullRequest für die VsCode Projektdateien erstellt, füge ich die gern hinzu. Nur pflegen werde ich sie nicht.
Ich würde es gut finden, wenn zum Bauen des KNX Stacks für verschiedene Targets VisualGDB optional bleiben würde wie es ja jetzt auch ist.
Die generierten CMakeLists.txt sind ja schon ganz gut.
Einen Kommentar schreiben:
-
@henfri:
knxPython ist einen normale Python Lib (für Linux). Du kannst damit also normal auf einem Linux-PC mit einem IP-Router mit Python ein knx-Gerät erstellen.Ganz ohne zusätzliche Hardware. Für das WLAN müsste man mal testen wie hoch der Paketverlust wirklich ist. Evtl. implementiert man diese "zuverlässige Kommunikation" von Gira. Dann klappt das zumindest mit dem GIRA IP-Router. Irgentwo im Thread ist das verlinkt. Es macht wahrscheinlich auch Sinn das dann dem knxd beizubringen damit man nicht auf Gira beschränkt ist.
@Nanosonde:
Ich habe auf platformio nichts eingestellt und pflege dort auch nichts. Muss wohl ein Crawler oder ein Nutzer gewesen sein. Ich finden PlatformIO nicht schlecht, aber um Debuggen zu können kostet das 10€ im Monat. VisualGDB kostet einmalig 90€ (optional 45€ für zusätzliche Jahre Support). Da ich Visual Studio mag und ich VisualGDB auch für die Linux-Entwicklung nutze benutze ich das. PlatformIO ist sicher auch gut, aber wozu eine neue IDE lernen, wenn es die altbekannte auch tun?
Wenn jemand einen PullRequest für die VsCode Projektdateien erstellt, füge ich die gern hinzu. Nur pflegen werde ich sie nicht.
Einen Kommentar schreiben:
-
thesing
Was hälst Du eigentlich von https://platformio.org/ ?
Pflegst Du den Stack dort auch noch? https://platformio.org/lib/show/5883/knx_esp/
Einen Kommentar schreiben:
-
Hallo,
Ja, der Gedanke war, das über die ETS zu machen. Natürlich bräuchte man weiterhin eine initiale Verbindung via WPS.Zitat von thesing Beitrag anzeigenDu bist gut. Du willst also das WLAN des ESP per ETS (also über WLAN) konfigurieren? Man könnte vielleicht ein eigenes WLAN mit dem ESP aufspannen. Dann müsste man sich mit einem Laptop mit dem Wlan verbinden und könnte dann über ETS das richtige WLAN konfigurieren. Aber loht sich der Aufwand?
Tasmota macht es so, wie du beschrieben hast.
Eine Alternative zu WPS wäre jedenfalls sehr wünschenswert.
Klingt spannend -aber ganz verstanden habe ich es noch nicht:knxPython sind Pythonbindings für den knx-Stack. Ein Beispiel steht dabei. Ich versuche gerade ein alternatives knx-Plugin für SmarthomeNG zu bauen. Da muss man die Gruppenadressen nicht mehr per Hand den Items zuweisen. Ich habe bei der ETS freie Gruppenadressen gewählt. Daher entsprechen nicht alle GAs dem Standardschema.
D.h. du würdest den KNX-Stack auf einem ESP laufen lassen und das wäre dein Bus-Interface für smarthomeNG? Ich habe zumindest bei der Tasmota-Implementierung festgestellt und auch gelesen, dass die KNX-Kommunikation über WLAN nicht sonderlich stabil ist. Das ist für einen Sensor, der regelmäßig sendet vielleicht ok, aber für ein KNX-Interface ja nicht.
Und was ich auch nicht verstehe: Warum entfällt damit die Notwendigkeit den Items die GAs manuell zuzuweisen?
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Es sollte reichen einfach nur einen Task für knx.loop() zu erstellen, der höher priorisiert als der restliche Anwendungscode ist. Ich bin mir nicht sicher, ob es notwendig ist den Wert der Gruppenobjekte mit einem Mutex zu schützen. In der Regel hat man ja nur einen Quelle für den Wert einer Gruppenadresse, oder? Die Frage ist auch, was passieren soll, wenn man lokal und vom Bus verschiedene Werte zu gleichen Zeit bekommt. Am einfachsten wäre eine Property am Gruppenobjekt um Updates durch den Bus zu deaktivieren.
Für den ESP würde ich das SDK von Espressif für RTOS nutzen. Da ist dann auch das Wlan in einem extra Task. Dass lässt sich dann aber nicht mehr mit der Arduino-IDE übersetzen.
Letztlich bleibt der Stack aber OS-unabhängig. Ich würde RTOS eher als Anwendungsbeispiel sehen.
Ich nehme dafür gern Pull-Requests an
Wenn jemand schon etwas mit dem Stack umgesetzt hat, nehme ich den Sketch auch gern als Beispiel auf.
Einen Kommentar schreiben:
-
FreeRTOS fände ich ganz nett.
Dieser SAMD21 Arduino FreeRTOS Port scheint zumindestens erstmal zu kompilieren:
https://github.com/BriscoeTech/Arduino-FreeRTOS-SAMD21
Ist allerdings "nur" die 8.2.3.
Bernator
Wie sind die delays bei Arduino realisiert? Sind das einfache Busy Loops oder werden dort Timer verwendet?
Ich fänd's gut, wenn der KNX Stack weiterhin auch ohne RTOS auskäme und die Verwendung eines RTOS höchstens in der jeweiligen Plattform-Implementierung wiederzufinden wäre.
Einen Kommentar schreiben:
-
das mit knx.configured() in der loop hatte ich schon so gemacht, lustigerweise geht es jetzt, k.a. was ich jetzt anders mache, vergiss es also, läuft erstmal
RTOS wär natürlich eine feine Sache, gerade weil in den überwiegenden Arduino libraries ausführlich Gebrauch von delays und blocking functions gemacht wird, da kommt man schnell in teufels Küche ohne das man es gleich merkt. Wie hättest du das geplant, OS Funktionen im Stack direkt einbauen (ohne OS geht dann natrürlich nix mehr) oder die eizelnen Objekte einzeln per mutex schützen oder irgendwelche "wrapper" Funktionen dazwischenhängen?
Einen Kommentar schreiben:
-
Vielleicht probiere ich mal das Multitasking von FreeRTOS aus.
Einen Kommentar schreiben:
-
Du kannst aktuell nur mit if (!knx.configured()) in loop() schauen, ob das Gerät konfiguriert wurde. Bei einer neuen Konfiguration durch ETS wird immer zuerst die alte Konfiguration ungültig gemacht und knx.configured() wird wieder false. Wenn deine Anwendungslogik zu lang wird, und dadurch das Timing nicht mehr passt, kannst du zwischendrin auch mal knx.loop() aufrufen. Wenn du eine Idee hast, wie man das besser machen kann, dann her damit.
Einen Kommentar schreiben:
-
Gibt es eigentlich eine möglichkeit die Applikation zu stoppen wenn die ETS versucht eine neue config zu laden? Hab aktuell das Problem das ich das ETS timing nicht einhalten kann wenn die Applikation läuft, die müsste aber nicht laufen wenn eine neue Config im anmarsch ist.
Einen Kommentar schreiben:
-
Du bist gut. Du willst also das WLAN des ESP per ETS (also über WLAN) konfigurieren? Man könnte vielleicht ein eigenes WLAN mit dem ESP aufspannen. Dann müsste man sich mit einem Laptop mit dem Wlan verbinden und könnte dann über ETS das richtige WLAN konfigurieren. Aber loht sich der Aufwand?
knxPython sind Pythonbindings für den knx-Stack. Ein Beispiel steht dabei. Ich versuche gerade ein alternatives knx-Plugin für SmarthomeNG zu bauen. Da muss man die Gruppenadressen nicht mehr per Hand den Items zuweisen. Ich habe bei der ETS freie Gruppenadressen gewählt. Daher entsprechen nicht alle GAs dem Standardschema.
Einen Kommentar schreiben:
-
P.S: Hat jemand schon andere Erfahrungen mit dem VOC-Modul gemacht?
P.P.S: Was ist/wird knxPython?
Einen Kommentar schreiben:
-
Hallo,
daran hatte ich noch gar nicht gedacht, die Konfiguration direkt im Code zu machen.
Macht es nicht sinn, die Konfiguration direkt in jedem *.knxprod vorzusehen?
Bzgl. der Steckdose:
Schick mir mal per PN deine Adresse, damit der Weihnachtsmann weiß, wo er hin muss.
Zum Technischen:
Hier gibt es schon einen Code:
https://knx-user-forum.de/forum/%C3%...73#post1187573
Der Leidensdruck ist für mich gering, denn via Tasmota können die bei mir schon KNX (und das ganze hat keine 15min gedauert). Aber ich finde es angenehmer, wenn alles in der KNX sichtbar/verfügbar ist (andererseits: Gerade bei einer solchen mobilen Steckdose, die auch mal ihren Verwendungszweck ändert ist ein WebInterface auch nicht falsch. Da ich meine GAs aber nicht auswendig kenne, muss ich dann doch immer noch die ETS öffnen).
Ich denke aber, dass ich mich die nächsten Tage mal näher mit deinem Code auseinandersetzen werde. Ich plane meine Lüftung steuerbar zu machen. Dafür brauche ich ein PWM Signal und einen zweiten BME680 (einen für die Zuluft, einen für die Abluft). Mal sehen, ob ich das hinbekomme.
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Lohnt sich wahrscheinlich bei Neupreis < 10€ fast nicht das zu versenden.Zitat von thesing Beitrag anzeigenWenn mir jemand so eine Steckdose spendiert, schreibe ich den Sketch auch selber

Einen Kommentar schreiben:


Einen Kommentar schreiben: