Url_call wird mit timeout abgebrochen

  • Hallo


    mit dem folgenden Url Aufruf löse ich ein Klingelevent auf dem doorpi aus


    http://door:pi@192.168.176.6:8080/control/trigger_event?event_name=OnKeyPressed_virtual.e1&event_source=doorpi.keyboard.from_filesystem


    das klingeln funktioniert auch.

    Da ich eine Rückmeldug möchte das dieses auch ausglöst hat, schicke ich mir ein url event zurück. Leider wird dies mit einem Fehler abgebrochen.

    Grundsätzlich funktioniert der url call nach extern aber


  • Was ich jetzt raus gefunden habe ist, wenn die Empfänger Adresse nicht die Sender Adresse ist geht es d.h.


    Sender 192.168.176.161 schicktan doorpi

    http://door:pi@192.168.176.6:8080/control/trigger_event?event_name=OnKeyPressed_virtual.e1&event_source=doorpi.keyboard.from_filesystem

    und dorpi schickt zurück

    30 = url_call:http://192.168.176.161:8080/dopirec?alive=on

    ergibt eine fehlermeldung

    ändere ich jetzt auf

    30 = url_call:http://192.168.176.163:8080/dopirec?alive=on

    gibt es keinen fehler


  • Da ich mehrere Türmodule habe. schicke ich die Alive Bestätigung einfach zu einem anderen Modul was das dort auch bestätigt wird. Wenn ich es versuche an die Sendeadresse zurück zu schicken, kommt der Fehler.


    Also der Aufruf ist von 192.168.176.161


    http://door:pi@192.168.176.6:8080/control/trigger_event?event_name=OnKeyPressed_virtual.e2&event_source=doorpi.keyboard.from_filesystem

    Code: doorpi.ini
    [EVENT_OnKeyPressed_virtual.e2] 
    10 = sleep:0
    20 = url_call:http://192.168.176.163:8080/dopirec?alive=on
    • Offizieller Beitrag

    Wenn ichs aus deinem letzten Thread richtig in Erinnerung habe nutzt du ESP32? Der "Webserver" darauf ist nicht geblockt durch bzw. in der Funktion die den Aufruf tätigt?


    Anders ausgedrückt, du löst ja letztlich die do_control in https://github.com/motom001/Do…er_lib/request_handler.py aus. Ich bin mir nicht sicher auf du praktisch erst einen Response-Code an deinen ESP32 bekommst, nachdem das Event abgearbeitet ist. Du also eine Anfrage an den Webserver vom ESP stellst, während er noch auf die Response vom trigger_event aufruf wartet. Ist das verständlich? :D Welche Webserver impl. nutzt du aufm ESP? Die Async? Dabei sollte es klappen, weil sie nicht blockt.

  • Ich glaube du hast recht, hab mir das nochmal angeschaut , und der ES32 mit dem Standard Webserver wartet auch noch an dieser Stelle bis er eine Antwort bekommt oder einen Timeout. Bei der Sichtung der Async Module ist mir allerdings aufgefallen das ich ja durch die http code 200Rückmeldung schon die Alive Information bekomme, somit muss ich mir ja nicht nochmal eine Botschaft schicken ||.

    Vorerst ist das super so, für die Zukunft bastle ich mir gerade ein udp_keyboard, da ich auf meinem Türmodul auch eine LAN Buchse habe worüber ich mit dem Tür Master kommuniziere. Darüber möchte ich auch gerne mit dem Doorpi kommunizieren. Das Wlan hat mir zu viele Timeout Zeiten