Ankündigung

Einklappen
Keine Ankündigung bisher.

Email Openhab mit Bild

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

    #31
    nix ,ist leer

    Kommentar


      #32
      Hmm... die Option -m 10 gibt einen Timeout von 10 Sekunden vor. Falls das Holen des Bilds länger dauern sollte, gäbe es eine leere Datei. eine andere Möglichkeit wäre, dass der Aufruf aufgrund irgendwelcher (Sonder-)Zeichen innerhalb des Aufrufs schief ist. Du könntest mit
      logInfo ("KT","cmd = {}",cmd) mal mitloggen, wie die Befehlszeile exakt aussieht. Oder Du ergänzt noch 2>>/pfad/zur/logdatei im curl-Aufruf, dann kannst Du nach dem curl-Lauf nachschauen, worüber curl gestolpert ist. Falls da zu wenig steht, kannst Du noch mit -v die Verbosity erhöhen. cmd sollte also dann so aussehen:
      Code:
      val url = "http://admin:pass@selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg"
      val outputFile = "/home/pi/opt/openhab/tmp/2.jpg"
      var cmd = "curl -m 10 -v -o " + outputFile + " 2>>/home/pi/opt/openhab/tmp/curl.log " + url
      executeCommandLine(cmd)

      Kommentar


        #33
        wenn ich die cmd zeile so wie du gesagt hast ändere
        Code:
          val outputFile = "/opt/openhab/tmp/2" +".jpg"
        var cmd = "curl -m 10 -v -o " + outputFile + " 2>>/opt/openhab/tmp/curl.log " + url
        executeCommandLine(cmd)
        bekomme ich nicht mal ein leeres Bild und die log Datei wird auch nicht erstellt
        und 10 sec Timeout muss glaube ich reichen. die email bekomme ich in 5 sec...und mit dem Telegram geht es ja auch so schnell

        ("KT","cmd = {}",cmd) da verstehe ich nur Bahnhof wo soll ich das reinschreiben
        Zuletzt geändert von djuscha; 18.07.2016, 22:17.

        Kommentar


          #34
          jetzt hab ich was anderes rausgefunden
          mit dem
          Code:
          executeCommandLine("wget http://user:pass@*****.selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg -O /tmp/" + Cam",5)
          bekomme ich das richtige Kamera Bild in den tmp ordner kopiert
          jetzt muss ich das nur versenden

          sobald ich aber mit senden probiere
          Code:
            var  Cam = "pic" +".jpg"
          executeCommandLine("wget http://user:pass@***.selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg -O /tmp/" + Cam",5)
          sendMail("openhab@gmail.com","Besucher","Besucher hat um "+now.toString("HH:mm:ss")+" geklingelt","file:///tmp/"+Cam)
          gibt es Fehlermeldung im log
          Code:
            2016-07-20 14:34:21.418 [INFO ] [g.openhab.io.net.exec.ExecUtil] - executed commandLine 'wget http://user:pass@selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg -O /tmp/pic.jpg'
          2016-07-20 14:34:22.122 [ERROR] [o.o.c.s.ScriptExecutionThread ] - Error during the execution of rule 'test1': The name 'openhab' cannot be resolved to an item or type.
          wenn ich gespeichertes bild versende so
          Code:
            var  Cam = "pic" +".jpg"
          
          sendMail("openhab@gmail.com","Besucher","Besucher hat um "+now.toString("HH:mm:ss")+" geklingelt","file:///tmp/"+Cam)
          funktionier das ,beides zusammen nicht ?!
          mache ich irgendwo Denkfehler ?
          Zuletzt geändert von djuscha; 29.07.2016, 15:20.

          Kommentar


            #35
            Ich tippe mal darauf, dass die Datei noch nicht da ist, wenn die Mail versendet werden soll - setz mal ein Thread::sleep(1000) zwischen Holen des Bilds und Senden der Mail.

            Kommentar


              #36
              das alte Bild ist ja noch da..da hätte ich das alte Bild zumindestens bekommen...aber es wird nichts versendet und ich hab das mit Thread::sleep(1000)
              und davor schon mit timer = createTimer(now.plusSeconds(10) probiert ...keine email und immer noch ERROR im log
              Error during the execution of rule 'test1': The name 'openhab' cannot be resolved to an item or type.

              Kommentar


                #37
                Zeig doch bitte nochmal die komplette rule, wie sie jetzt ist.

                Kommentar


                  #38
                  Code:
                    rule"test1"
                  when 
                   Item fibratet changed from OFF to ON
                  then
                  var  Cam = "pic" +".jpg"
                  executeCommandLine("wget http://user:pass@*****.selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg -O /tmp/" + Cam",5)
                  Thread::sleep(1000)
                  sendMail("openhab@gmail.com","Besucher","Besucher hat um "+now.toString("HH:mm:ss")+" geklingelt","file:///tmp/"+Cam)
                  end

                  Kommentar


                    #39
                    Du hast ein " zuviel/zuwenig in Deiner Codezeile des executeCommandLine....

                    Nach Cam fängt ein zweiter String an, der mit den " in Sendmail vor der Mail-Adresse abgeschlossen wird. Somit ist openhab von der Email-Adresse kein String, sondern ein Kommando. Dadurch auch die Fehlermeldung, dass openhab kein gültiges Item ist.... und sendMail wird nicht als Kommando verstanden, da es innerhalb des Strings ist.
                    Zuletzt geändert von imhofa; 21.07.2016, 06:16. Grund: Ergänzung...

                    Kommentar


                      #40
                      @imhofa du bist ein Schatz!!! endlich geht das ..hab noch ein " hinter 5 gesetzt und o Wunder es geht..
                      wenn ich nur wüsste wozu die 5 da ist ??hab die rules so im inet entdeckt es geht auch ohne Thread::sleep(1000) dazwieschen ist schon zimmlich flott
                      so geht das jetzt
                      Code:
                       var  Cam = "pic" +".jpg"
                      executeCommandLine("wget http://user:pass@*****.selfhost.eu:58081/cgi-bin/video.cgi?msubmenu=jpg -O /tmp/" + Cam",5")
                      Thread::sleep(1000)
                      sendMail("openhab@gmail.com","Besucher","Besucher hat um "+now.toString("HH:mm:ss")+" geklingelt","file:///tmp/"+Cam)
                      Vielen Dank besonders an @udo1toni

                      Kommentar


                        #41
                        Also, wenn ich es richtig verstehe, ist das Anführungszeichen vor ,5 zuviel (und damit auch das dahinter), das ,5 ist dann der Timeout für executeCommandLine, siehe wiki

                        Kommentar

                        Lädt...
                        X