Beiträge von rookie


    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

    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

    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


    Hmpf probier mal folgendes:

    Code
    python -m pip install --upgrade pip
    python -m pip install --upgrade setuptools

    Bevor du die setup.py aufrufst.

    Bei mir hat es geklappt, allerdings habe ich die installation über ein script ausgeführt. Da dieses script als root läuft wurde die installation auch so ausgeführt.

    Hallo bekomme folgenden Fehler bei der Installation


    Raspian 2019-09-26

    Raspi 2


    Da geb ich dir recht.

    Aber es ist auch nicht falsch da der dritte Parameter von urllib2.urlopen auch der Timeout ist.



    urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])

    Die ursprüngliche Variante hat bei mir einfach nicht funktioniert .

    Aber das heißt aber gar nichts, da bin ich einfach nicht Profi genug

    Fürs erste geht es mal, und vielleicht hat ja jemand noch eine bessere Idee.

    So ich konnte das Problem jetzt lösen

    Zum Teil persönliche Unfähigkeit zum anderen Teil vermutlich ein Bug


    Zuerst habe ich nicht gesehen das die gepostete Änderung eine falsche Einrückung des return befehl behoben hat,

    zum anderen konnte er mit der Variablen Übergabe im url-Aufruf nicht umgehen


    Python: url_call.py
            logger.info('url: %s' % url)
            data=None
            timeout=1
            return urllib2.urlopen(
                url,
                data,
                timeout
                )

    Leider konnte ich es in der Konsole nicht nachstellen, bzw hat es dort auch einmal zu einem Fehler geführt

    Folgende Änderung habe ich gestern noch eingepflegt, was ja fast deinem Vorschlag entspricht und dem Log in post #15.

    C: ESP32
    // doorpi handle
    void handle_doorpirec() {
        server.sendHeader("Connection", "close");
        server.send(200, "text/plain", "ok");
        // Empfangen
        Serial.println("Botschaft von Doorpi");
    }

    Über die Konsole oder den Webbrowser hat es auch funktioniert nur nicht mit dem url-call

    Das mit der Sekunde muss ich nochmal überprüfen, mir kam es so vor wie wenn der Aufruf über die Konsole länger gedauert hätte

    ich hab jetz nochmal meinen code erweitert jetzt kommt folgende antwort


    aber mit dem url aufruf geht es immer noch nicht

    Code
    >>> import urllib2
    >>> response = urllib2.urlopen('http://192.168.178.22/dopirec')
    >>> print "Response:", response 
    Response: <addinfourl at 1985571336 whose fp = <socket._fileobject object at 0x7693d7b0>>
    >>> print "The URL is: ", response.geturl() 
    The URL is:  http://192.168.178.22/dopirec
    >>> print "response code: ", response.code 
    response code:  200
    >>> print "headers: ", response.info()

    Grundsätzlich wird jetzt erstmal der Aufruf empfangen und im Debug fenster ausgegeben

    Später wird die Türe geöffnet


    ist jetzt c++

    Code
    //Doorpi device
    server.on ( "/dopirec", handle_doorpirec);
    
    // doorpi handle 
    void handle_doorpirec() {
        server.sendHeader("Connection", "close");
        // Empfangen
        Serial.println("Botschaft von Doorpi");
    }

    hab ich oben schon geändert

    Jetzt brauch ich doch noch mal hilfe

    Wenn ich im browswer die Zeile eingebe

    http://192.168.178.22/dopirec

    dann reagiert meien Türeinheit darauf, wenn ich aber den Befehl mit Doorpi auslöse passiert nichts.

    Hab ich da noch einen Fehler im Aufbau des URL befehl ?


    Code: doorpi.ini
    [onboardpins_InputPins]
    1 = out:Tueroeffner,1,0,3
    3 = url_call:http://192.168.178.22/dopirec




    debug

    irgendwie hat es bei mir die gepostete Korrektur nicht angezeigt.


    Super, danke für die schnelle Hilfe. Auf Doorpi-Seite geht erst mal alles, jetzt muss ich in meinem Türmodul die Funktionen noch implementieren, und im Doorpi schauen wie ein virtuelles Keyboard eingerichtet wird, da ich jetzt das piface nicht mehr benötige

    Hallo,


    da mir die vorhandenen Lösungen mit RFID nicht gefallen haben, habe ich mir meine eigene Lösung ( etwas ausgeufert) gebaut. Dafür habe ich jetzt ein Türmodul, das die RFID Tag's an der Türe einließt und über LAN an einer Zentrale rückmeldet. bei diesem Türodul habe ich auch den Klingeltaster implementiert. Aktuell wählt sich mein Türmodul in der Fritzbox ein und löst ein Klingeln der Telefone aus, allerdings ohne Sprechfunktion. Als letzten Schritt möchte ich jetzt noch mein Türmodul mit doorpi verbinden.

    Meine Frage ist jetzt wie kann ich jetzt über Netwerk ein Klingel Event am Doorpi auslösen.


    rookie

    Oh ;(
    hab ich jetzt was verpasst, ich dachte du meldest dich hier nochmal bevor du bestellst ?
    Hab mich zwar eingetragen, aber das Verbindlich nicht eingetragen.
    Kann man noch Platinen haben, oder kann man auch ein komplett Set bestellen? Löten würde ich es selber


    rookie