Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 über WLAN an KNX

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

    Moin,

    an der lib https://github.com/envy/esp-knx-ip hat es wohl ein paar Änderungen gegeben. Hat jemand mit dem aktuellen Stand schon mal ein Programm ans Laufen bekommen?

    Ich hab das mitgelieferte Sonoff Beispiel probiert, aber nach dem Neustart hängt das Board in einer Bootschleife fest.

    Mit der älteren Version der lib (so Mitte Dezember) läuft es.

    erich73

    Kommentar


      Das sonoff-Beispiel-Sketch aus GitHub läuft bei mir auf einem S20. Bin dazu mit der ESP-Board-Bibliothek auf die Version 2.3.0 runter gegangen (wird unten auf der Seite empfohlen). Leider geht der lokale Schalter damit nicht. Hatte aber bisher keine Zeit, mich darum zu kümmern. Ansonsten macht das Sketch einen interessanten Eindruck. Gut finde ich z.B. die Auswahlmöglichkeit des Gerätes sowie eine Reset-Option im Web Frontend. Hilft ggf. sich mit dem richtigen/stärksten Access-Point zu verbinden.

      Kommentar


        Toll wäre ein Kombination beider Sketche (Svens und Beispiel aus GitHub). Mit funktionierendem Heartbeat oder auch Watchdog (der bei mir irgendwie noch nicht funktionieren will) und Reset-Option.

        Kommentar


          Ich hatte mit der neueren Lib auch Probleme.. die, wie du sagst von Ende Dez, geht bei mir...

          gruß Martin
          Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

          Kommentar


            So, ich hab einfach im Boardmanager die 2.3.0 noch mal installiert (ich dachte ich hätte die drin), nun geht es scheinbar.

            Ich hab des jetzt testweise mal auf einem Basic.

            Mit der Taste schau ich mal, das muss ja gehen.

            erich73

            Kommentar


              Hatte das sonoff Beispiel bei github auch gesehen und mal überflogen.

              Das ganze ist natürlich wesentlich eleganter umgesetzt als bei mir :-)
              Allerdings hat er den schalter gar nicht programmiert.

              Gruß, Sven

              Kommentar


                Sven, wie kann ich den Watchdog in deinem Sketch nutzen? Auf Leseanforderungen reagiert mein S20 nicht, und gesendet Telegramme auf die Adresse des Watchdog lösen anscheinend auch nichts aus?? Gruß, Stephan

                Kommentar


                  Ist die Variante mit dem Tunnel noch weiter in der Mache? Da ich leider keinen KNX-Router habe, funktioniert das Spiel mit Multicast leider nicht :-(

                  Kommentar


                    OleDeluxe

                    Ich habe nochmal eine Rückfragen zum Watchdog. Das Prinzip habe ich verstanden. Im Prinzip ist es ein Message PingPong, der auf der ESP8266 als auch auf der Seite der Gateways (bspw Edomi) den Timer zurücksetzt. Solange das klappt, lebt der ESP. Richtig?

                    Zitat von OleDeluxe Beitrag anzeigen

                    Der Watchdog ist relativ simpel. Vorher hatte ich das auf dem ESP auch mit ESPEASY und MQTT schon laufen. Mit KNX-ESP-Lib ist es im Prinzip auf dem ESP ja nur eine GA, auf die er bei Init sendet, damit dann den Watchdog-Timer in Edomi startet. Von Edomi sende ich dann mittels einem zweiten Timer (etwas kürzer als der Watchdog, wird gleichzeitig aber gleichzeitig gestartet) auf die GA, dieses empfängt der ESP, setzt seinen internen Timer zurück und sendet wieder auf die GA zurück, so setzt Edomi den Watchdog Timer auch wie der zurück. Ist also ein hin und her. Läuft der Timer auf dem ESP ab, so gibt es eine Aktion (Pushover Message), gleiches dann bei Edomi.

                    Mit dem Code solltest du dir den Watchdog relativ simpel reinbasteln können:
                    Code:
                    ...
                    config_id_t Watchdog_GA; //GA für Watchdog
                    ...
                    //Der folgende Callback reagiert auf ein Write auf die Watchdog_GA
                    void Watchdog_callback(knx_command_type_t ct, address_t const &received_on, uint8_t data_len, uint8_t *data)
                    {
                    switch (ct)
                    {
                    case KNX_CT_WRITE:
                    Serial.print("Watchdog ==> Reachable / ");
                    Serial.println(*data);
                    XXXXXXXXX Hier den Timer im ESP neu setzten XXXXXXXXXXX
                    knx.write1Bit(knx.config_get_ga(Watchdog_GA), *data); //Hier sendet der ESP auf die gleiche GA den Wert zurück, es ist also ein hin und her, da Edomi ja auf neue Telegramme reagiert.
                    break;
                    }
                    }
                    ...
                    void setup() {
                    ...
                    // Register the callbacks
                    knx.register_callback("Watchdog", Watchdog_callback);
                    ...
                    // Register the group addresses
                    Watchdog_GA = knx.config_register_ga("Watchdog");
                    ...
                    knx.start();
                    ...
                    knx.write1Bit(knx.config_get_ga(Watchdog_GA), 1); //Eine 1 auf die Watchdog GA um in Edomi zu starten.
                    ...
                    }
                    ...
                    void Loop() {
                    ...
                    XXXXXXXXX hier den Timer runterlaufen lassen und ggf. bei Ablauf eine Aktion starten XXXXXXXX
                    ...
                    }
                    Nun ist mir aufgefallen, dass in deinen beiden Beispielen für den Sonoff (hier gepostet) der Watchdog scheinbar anders implementiert ist.
                    Könntest Du das hier nochmal kurz erläutern oder das Sonoff Beispiel erklären?
                    DANKE

                    Kommentar


                      Zitat von Janncsi Beitrag anzeigen
                      Ist die Variante mit dem Tunnel noch weiter in der Mache? Da ich leider keinen KNX-Router habe, funktioniert das Spiel mit Multicast leider nicht :-(
                      Ja......dauert aber. Zu viele Projekte und kein hoher Leidensdruck. Ist aber wie gesagt für ESP32 mit FREERTOS.

                      Kommentar


                        Moin moin,
                        mal kurz zum "Watchdog" :
                        Zitat von Harry49 Beitrag anzeigen
                        Sven, wie kann ich den Watchdog in deinem Sketch nutzen? ...
                        Hast du mal den Code als Beispiel? Das war ja teilweise nicht fertig ausgeschrieben im Programm, sondern mehr als möglicher Ansatz gedacht.

                        Zitat von Sisamiwe Beitrag anzeigen
                        ... Ich habe nochmal eine Rückfragen zum Watchdog. Das Prinzip habe ich verstanden. Im Prinzip ist es ein Message PingPong, der auf der ESP8266 als auch auf der Seite der Gateways (bspw Edomi) den Timer zurücksetzt. Solange das klappt, lebt der ESP. Richtig?
                        ...
                        Nun ist mir aufgefallen, dass in deinen beiden Beispielen für den Sonoff (hier gepostet) der Watchdog scheinbar anders implementiert ist.
                        Könntest Du das hier nochmal kurz erläutern oder das Sonoff Beispiel erklären?
                        DANKE
                        In dem Beispiel ist ja nur die Antwort auf den GA-Write implementiert. Auf Seiten des ESP passiert da noch nichts, hier müsste das dann anstelle des "XXXXXXXXX Hier den Timer im ESP neu setzten XXXXXXXXXXX" programmiert werden.
                        Kannst du denn im sehen, ob der ESP den "Serial.print("Watchdog ==> Reachable / ");" & "Serial.println(*data);" rauswirft?

                        Im Beispiel der Watchdog schickt wenn du eine 1 auf die GA schreibst auch eine 1 wieder umgehend zurück. Im ESP passiert da sonst außer der Ausgabe auf dem Seriellen-Monitor nix. Die Rückgemeldete 1 musst du dann in deiner Logik verarbeiten (bei mir Edomi).
                        Somit kannst du quasi regelmäßig aus der Logik die 1 senden und dann die Antwort wieder abfangen. Kommt die Antwort ist alles OK, bleibt sie aus, ist was faul mit dem ESP.

                        Ich selbst lasse den ESP auch noch etwas machen, wie oben beschrieben ist es dann eher ein Ping-Pong. Der ESP wartet bei mir mittels Timer quasi darauf, dass die 1 auf die GA geschrieben wird. Bleibt das aus, so meldet der ESP per Pushover die fehlende KNX Verbindung.

                        Am besten nochmal genau spezifizieren, wo es aktuell hängt. Das Beispiel ist wie gesagt nicht komplett, eher der Ansatz das umzusetzen.

                        Gruß, Sven



                        Kommentar


                          OleDeluxe
                          Danke für Deine Erklärung.

                          Ich arbeite mit smarthomeNG als Multigateway (also ähnlich deinem EDOMI). Ich möchte von smarthomeNG eine Meldung bekommen, wenn der ESP nicht mehr sendet (was einer bei mir auch regelmäßig tut). Dazu würde ich gern Deine Idee mit dem Message-Ping-Pong zwischen ESP und smarthomeNG aufgreifen, die gegenseitig einen Timer zurücksetzen. Der ESP ist mit KNX verbunden, solange die Timer immer wieder resetet werden. Ist das nicht der Fall, sendet mit smarthomeNG eine Telegram Nachricht.

                          Ich denke, dass es auch 2 unterschiedliche Realisierungen gibt. Einmal für periodisch sendende Geräte (bspw. Sensoren) und einmal für welche, die nur bei Änderung oder in Request senden (bspw. SONOFF). Für erstere ist es recht einfach denke ich. Ich würde hier beim periodischen Senden der Sensorwerte auch immer eine 1 auf die Watchdog-GA senden. Diese empfange ich dann im smarthomeNG und setzte dort den Wert zurück. Der ESP setzt in dann wieder auf 1. Wenn der Wert also 5min auf 0 bleibt, es der ESP weg.

                          Scheinbar hat sich auch die API von ESP-KNX-IP geändert. Der Hinweis steht beim Release 0.3.0
                          Code:
                           THIS COMMIT BREAKS CODE BACKWARDS COMPATABILITY
                          Changed the signature of callbacks. Consolidated all message realted arguments into one struct that is passed to the callback. Also added the possibility to pass a custom argument to the callback. This allows registering the same function multiple times with different arguments to reduce code duplication.  Updated examples.
                          Seit 2 Tage gibt es den Release 0.4.0

                          Könntest Du die vollständige Implementierung eines Watchdogs für den SONOFF hier mal posten.
                          Wäre echt super. DANKE.
                          Zuletzt geändert von Sisamiwe; 26.02.2018, 16:47.

                          Kommentar


                            Moin,

                            Fall 1 lässt sich ja so mit dem Code abbilden:
                            - smarthomeNG sendet auf die Watchdog-GA.
                            - Dann wartet smarthomeNG eine definierte Zeit auf die Antwort. (nur eine kurze Zeitspanne um die evtl. Verzögerung auf dem Bus zu berücksichtigen)
                            - Bleibt die Antwort in dieser Zeit aus, so setzt du deine Telegram Message ab.
                            - dieser Vorgang wiederholt sich alle X Minuten. (X Minuten ist dann dein selbst gewähltes Intervall)

                            Oder was funktioniert noch nicht? Empfängt der ESP auf der Watchdog-GA? Das sollte er ja dann im Serial-Monitor schreiben. Sendet er dann auch auf die GA entsprechend zurück? Das sollte man im Bus-Monitor sehen.
                            Was ich mir vorstellen könnte ist, dass es ein Problem ist, dass die Antwort auf der gleichen GA kommt, ggf. hier mal 2 verschiedene wählen, also eine auf die er smarthomeNG sendet ( Die GA für den Callback ) und eine auf die der ESP Sendet.

                            Ich bin derzeit auf Lehrgang und erst in 2 Wochen wieder daheim, vorher wird das nix werden.
                            Mit dem neuen Release muss ich mir mal anschauen, ich habe ja immer noch den "alten" Stand von Ende 2017 drin.

                            /edit: der Adrian bleibt aber scheinbar auch am Ball. Vll. setzt er die KNX-Lib ja final doch für Tasmota um?!
                            https://github.com/ascillato


                            Gruß, Sven
                            Zuletzt geändert von OleDeluxe; 27.02.2018, 09:11.

                            Kommentar


                              Hallo, hat sich schon wer mit den Obi Wifi Steckdosen und KNX Anbindung beschäftigt? Müsste ja funktionieren, da ja ein ESP8266 drinnen steckt, nur wie???


                              lg Robert

                              Kommentar


                                In der aktuellen c´t https://www.heise.de/ct/ausgabe/2018...n-3976687.html ist ein Artikel über MQTT, der bei mir die Frage aufgeworfen hat, ob der hier eingeschlagene Weg (die ESPs direkt per IP-Router einbinden) sinnvoll ist. Sicherlich ist die Idee faszinierend, per WLAN angeschlossene Geräte wie normale Busteilnehmer zu behandeln. Andererseits sind sie es aber gerade nicht, d.h. können leicht nicht oder nur eingeschränkt erreichbar sein. Damit umzugehen, scheint über MQTT gelöst zu sein und bei der direkten Anbindung komplett unter den Tisch zu fallen. Somit wäre der "Umweg" über den Broker vielleicht doch sinnvoll.

                                Sehe ich das richtig bzw. wie ist eure Meinung/Erfahrung? Hoffe auf eine rege Diskussion

                                Gruß Stephan

                                Kommentar

                                Lädt...
                                X