Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

    Hallo,

    ich weiß nicht, was jetzt passiert ist, aber seit dem letzten Programmierversuch (bisher übrigens immer über den knxd, jetzt über Multicast) wiederholt sich immer:
    Code:
    short button press
    .....
    short button press
    102294, 23.95, 102334.21, 36.55, 124166.05, 25.00, 0, 23.84, 36.68, 0.00, 0
    Leave Running
    Enter ProgramMode
    Hast du eine Idee, was das sein kann?
    Ich habe auch schon neu geflasht. Aber keine Änderung.

    Gruß,
    Hendrik


    Kommentar


      Das klingt für mich nach einem Problem beim Button. Lose Verbindung zum Button? Evtl. hängt es auch mit der Einstellung beim Inputpin zusammen. Du kannst ja mal https://github.com/thelsing/knx/blob...acade.cpp#L127 INPUT statt INPUT_PULLUP probieren. Sonst vielleicht mal den ganzen Flash löschen. (Tools->Erase Flash umstellen)

      Kommentar


        Hallo,

        es funktioniert bei mir jetzt.
        Woran es lag, weiß ich nicht so recht. Ich habe eine andere NodeMCU verwendet.
        Ich werde berichten!

        Gruß,
        Hendrik

        Kommentar


          Hallo,

          mal ein Zwischenstand:
          Ich habe den Sensor jetzt eine Weile in Betrieb aber ich kann die Messwerte noch nicht so ganz verstehen/nachvollziehen.
          luftqualität1.JPG
          Der Sensor befand sich im Schlafzimmer. Der allgemeine Trend - deutlich bessere Luft zwischen 7:00 und 22:00 ist sicherlich nachvollziehbar.
          Ich kann aber die Spitzen in der VOC Konzentration, die regelmäßig auftreten nicht nachvollziehen...

          Ein anderes Thema:
          Momentan ist eine Konfiguration der WLAN-Verbindung nur per WPS möglich. Wäre es -mit vertretbarem Aufwand- möglich, dies zu ändern?
          Mein WLAN (Unifi) kann kein WPS. Deshalb muss ich aktuell noch ein zweites Wlan (Fritzbox) laufen lassen. Für die initiale Einrichtung ist das natürlich kein Problem. Aber danach würde ich das Gerät gerne im richtigen WLan einsetzen.


          Und ein ganz anderes Thema:
          Hat sich schon jemand an einem Sketch/einem knxprod für eine Sonoff Steckdose versucht?


          Gruß und nochmal danke!

          Hendrik

          Kommentar


            Wenn du in https://github.com/thelsing/knx/blob.../arch_config.h das #define USE_STATES entfernst. Ist das ganze WPS-Zeug deaktiviert. Dann kannst du im setup() normal das Wlan konfigurieren. In so einer Sonoff-Steckdose ist nur ein Relais an einem GIOP, oder? Du kannst einfach das Reset-GO im demo-Sketch als Beispiel nehmen. Wenn du das fertig hast, nehme ich es gern mit ins das github-Repository auf. Wenn mir jemand so eine Steckdose spendiert, schreibe ich den Sketch auch selber

            Kommentar


              Zitat von thesing Beitrag anzeigen
              Wenn mir jemand so eine Steckdose spendiert, schreibe ich den Sketch auch selber
              Lohnt sich wahrscheinlich bei Neupreis < 10€ fast nicht das zu versenden.
              Gruß -mfd-
              KNX-UF-IconSet since 2011

              Kommentar


                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

                Kommentar


                  P.S: Hat jemand schon andere Erfahrungen mit dem VOC-Modul gemacht?
                  P.P.S: Was ist/wird knxPython?

                  Kommentar


                    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.

                    Kommentar


                      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.

                      Kommentar


                        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.

                        Kommentar


                          Vielleicht probiere ich mal das Multitasking von FreeRTOS aus.

                          Kommentar


                            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?



                            Kommentar


                              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.

                              Kommentar


                                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.

                                Kommentar

                                Lädt...
                                X