Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. cURL Aufruf PushOver versenden

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    101

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

cURL Aufruf PushOver versenden

Geplant Angeheftet Gesperrt Verschoben Blockly
9 Beiträge 3 Kommentatoren 1.9k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    flitzpiepe
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich bräuchte hier einmal eure Hilfe beim Aufruf eines CURL-Aufrufs aus einem Blockly-Script, um eine PushOver-Notification zu versenden.
    Aus der PushOver-API entnehme ich, dass der Aufruf, z.B. so aussehen muss:

    curl -s \
      --form-string "token=APP_TOKEN" \
      --form-string "user=USER_KEY" \
      --form-string "message=hello world" \
      https://api.pushover.net/1/messages.json
    

    Meinen Aufruf bastel ich mir indviduell zusammen und dieser sieht bei mir dann folgendermaßen aus:

    Unformatiert:

    /usr/bin/curl -s \ --form-string "token=atoxxx" \ --form-string "user=uMExxx" \ --form-string "message=huhu" \ --form-string "title=bla" \ --form-string "sound=pushover" \ --form-string "priority=0" \ https://api.pushover.net/1/messages.json
    

    Formatiert:

    /usr/bin/curl -s \ 
      --form-string "token=atoxxx" \ 
      --form-string "user=uMExxx" \ 
      --form-string "message=huhu" \ 
      --form-string "title=bla" \ 
      --form-string "sound=pushover" \ 
      --form-string "priority=0" \ 
      https://api.pushover.net/1/messages.json
    

    Im Blockly sieht der Aufruf dann so aus, wobei in der Variable "varRequest" dann der o.g. Aufruf steht:
    01.png

    Im Log sehe ich Folgendes, wenn der Block ausgeführt wird:

    02.png

    javascript.0 (22693) script.js.System.Kommunikation.PushOver.functionSendPushOverNotificationNow: PushOverNotification: Request: /usr/bin/curl -s \ --form-string "token=atoxxx" \ --form-string "user=uMExxx" \ --form-string "message=huhu" \ --form-string "title=bla" \ --form-string "sound=pushover" \ --form-string "priority=0" \ https://api.pushover.net/1/messages.json
    

    Wenn ich den CURL-Aufruf direkt auf der Console des Raspberry ausführe, scheint die Syntax ok, da der Befehl ohne Fehler entgegengenommen wird, aber letztendlich keine Notification ankommt:
    03.png

    Danke für die Hilfe im Voraus und freue mich auf Hinweise!!

    Grüße...

    1 Antwort Letzte Antwort
    0
    • F Offline
      F Offline
      flitzpiepe
      schrieb am zuletzt editiert von flitzpiepe
      #2

      Hallo,

      ich habs rausgefunden, woran es liegt:
      Zwischen jeweils "\" und "--form" müssen zwei Leerzeichen- und nicht nur eins wie bei mir sein. Wenn ich manuell die Leerzeichen hinzufüge und den cURL Aufruf dann manuell abschicke, wird die Nachricht versendet.
      Mein Problem jetzt: In den Blockly-Abschnitten, wo ich den Text zusammensetze, verwende ich zwei Leerzeichen " ". Diese werden dann aber wohl auf ein Leerzeichen verkürzt (sieheLog), sodass die Nachricht nicht versendet wird, z.B:

      leerzeichen.png

      Wie kann ich einen String mit zwei aufeinder folgenden Leerzeichen eingeben, bzw. gibt es noch eine andere Möglichkeit?

      Grüße...

      1 Antwort Letzte Antwort
      0
      • GarfonsoG Offline
        GarfonsoG Offline
        Garfonso
        Developer
        schrieb am zuletzt editiert von
        #3

        Ja, so wie du den Ausdruck umformatiert hast, hast du recht... warum irgendwo ein zweites Leerzeichen geschluckt werden sollte, ist mir zwar nicht klar, aber das Problem hast du nicht, wenn du den Aufruf richtig umformatierst.

        /usr/bin/curl -s --form-string "token=atoxxx" --form-string "user=uMExxx" --form-string "message=huhu" --form-string "title=bla" --form-string "sound=pushover" --form-string "priority=0" https://api.pushover.net/1/messages.json
        

        Warum? Weil \ auf der Kommandozeile dafür sorgt, dass das nächste Zeichen nicht "interpretiert" wird. Hier soll, in der "formatierten" Version der Zeilenumbruch von der Kommandozeile ignoriert werden, damit man den Befehl auf mehreren Zeilen hat und schöner lesen kann.
        -> wenn du die Zeilenumbrüche entfernst, solltest du auch den \ entfernen, weil sonst das nächste Leerzeichen nicht mehr als Parametertrennung interpretiert wird (so kann man z.B. auch mit cd Ordner\ mit\ Leerzeichen navigieren usw., was ohne \ nicht ginge, weil dann nur in cd Ordner verstanden würde mit zwei ungenutzten Parametern mit und Leerzeichen).

        Also \ aus dem Befehl entfernen, dann geht es auch mit einem Leerzeichen. :-)
        (Vermutlich wird auch in Blockly das \ im String Effekte haben, die du nicht willst -> in Javascript werden mit \ auch Spezialzeichen eingegeben, wie \n = Zeilenumbruch usw...)

        Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

        Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

        F 1 Antwort Letzte Antwort
        0
        • GarfonsoG Garfonso

          Ja, so wie du den Ausdruck umformatiert hast, hast du recht... warum irgendwo ein zweites Leerzeichen geschluckt werden sollte, ist mir zwar nicht klar, aber das Problem hast du nicht, wenn du den Aufruf richtig umformatierst.

          /usr/bin/curl -s --form-string "token=atoxxx" --form-string "user=uMExxx" --form-string "message=huhu" --form-string "title=bla" --form-string "sound=pushover" --form-string "priority=0" https://api.pushover.net/1/messages.json
          

          Warum? Weil \ auf der Kommandozeile dafür sorgt, dass das nächste Zeichen nicht "interpretiert" wird. Hier soll, in der "formatierten" Version der Zeilenumbruch von der Kommandozeile ignoriert werden, damit man den Befehl auf mehreren Zeilen hat und schöner lesen kann.
          -> wenn du die Zeilenumbrüche entfernst, solltest du auch den \ entfernen, weil sonst das nächste Leerzeichen nicht mehr als Parametertrennung interpretiert wird (so kann man z.B. auch mit cd Ordner\ mit\ Leerzeichen navigieren usw., was ohne \ nicht ginge, weil dann nur in cd Ordner verstanden würde mit zwei ungenutzten Parametern mit und Leerzeichen).

          Also \ aus dem Befehl entfernen, dann geht es auch mit einem Leerzeichen. :-)
          (Vermutlich wird auch in Blockly das \ im String Effekte haben, die du nicht willst -> in Javascript werden mit \ auch Spezialzeichen eingegeben, wie \n = Zeilenumbruch usw...)

          F Offline
          F Offline
          flitzpiepe
          schrieb am zuletzt editiert von
          #4

          @Garfonso

          Vielen Dank... der Groschen ist gefallen und funktioniert jetzt Bestens!

          Grüße...

          F 1 Antwort Letzte Antwort
          0
          • F flitzpiepe

            @Garfonso

            Vielen Dank... der Groschen ist gefallen und funktioniert jetzt Bestens!

            Grüße...

            F Offline
            F Offline
            flitzpiepe
            schrieb am zuletzt editiert von
            #5

            Ok, zu früh gefreut :face_with_rolling_eyes:
            Die Zeichenkette wird jetzt korrekt zusammengebaut: Wenn ich diese auf der Kommandozeile direkt einfüge und absende, wird die PushOver-Nachricht erfolgreich versendet. Soweit so gut.
            Wenn ich dies dann aber über den Blockly Request-Block mache, wird im Log ein Fehler angezeigt und es passiert nichts weiter:
            request.png

            Die Fehlermeldung sagt jetzt ja wenig aus. Hier steht, dass man die Variable "result" auswerten muss, um an die Antwort vom Request zu kommen. Ich habe sie mal angelegt und wenn der Haken bei "mit Ergenissen" gesetzt ist, steht hier "undefined" als Wert in der Variable.

            Ich bräuchte da wohl noch einen weiteren Gedankenanstoß.

            Danke und Grüße...

            1 Antwort Letzte Antwort
            0
            • GarfonsoG Offline
              GarfonsoG Offline
              Garfonso
              Developer
              schrieb am zuletzt editiert von
              #6

              Öh... mit Blocky kenn ich mich leider gar nicht aus. Da bin ich raus.
              Da steht was von LogLevel am Block, was ist wenn du den auf Debug stellst oder sowas?
              Gibt es try/catch in Blocky? Da könntest du mal gucken, ob du den Fehler abfangen kannst und z.B. error.stack ausgeben. Da steht normalerweise am meisten drinnen, was schief gegangen ist. -> aber wie gesagt, kenne mich mit Blocky nicht aus, das wäre der erste Schritt in Javascript, den ich gehen würde.

              Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

              Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

              1 Antwort Letzte Antwort
              0
              • F Offline
                F Offline
                flitzpiepe
                schrieb am zuletzt editiert von
                #7

                Moin,

                ich habe den Block, um die Antwort vom Request auszuwerten eingebaut, aber leider fehlt mir der Ansatz daraus weitere zielführende Informationen herausholen zu können:
                debug1.png

                Wenn der Request erfolgreich versendet werden würde, müsste hier m.E. "{"status":1,"request":"ae2XXX"}" zurück übermittelt werden, da dies auch zurück kommt wenn man den cURL Aufruf von der Eingabeaufforderung versendet:
                debug2.png

                Hat jemand noch Ideen?

                Grüße...

                OliverIOO 1 Antwort Letzte Antwort
                0
                • F flitzpiepe

                  Moin,

                  ich habe den Block, um die Antwort vom Request auszuwerten eingebaut, aber leider fehlt mir der Ansatz daraus weitere zielführende Informationen herausholen zu können:
                  debug1.png

                  Wenn der Request erfolgreich versendet werden würde, müsste hier m.E. "{"status":1,"request":"ae2XXX"}" zurück übermittelt werden, da dies auch zurück kommt wenn man den cURL Aufruf von der Eingabeaufforderung versendet:
                  debug2.png

                  Hat jemand noch Ideen?

                  Grüße...

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #8

                  @flitzpiepe

                  jetzt muss ich mal nachfragen.
                  ich kenne mich mit blockly auch nicht aus, aber
                  in der shell verwendest du das programm curl
                  in blockly den request-befehl. passt das überhaupt zusammen?`
                  müsstest du nicht den exec befehl nehmen um auf den shell den befehl auszuführen
                  und dann den text als ergebnis zurückbekommst?

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  F 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @flitzpiepe

                    jetzt muss ich mal nachfragen.
                    ich kenne mich mit blockly auch nicht aus, aber
                    in der shell verwendest du das programm curl
                    in blockly den request-befehl. passt das überhaupt zusammen?`
                    müsstest du nicht den exec befehl nehmen um auf den shell den befehl auszuführen
                    und dann den text als ergebnis zurückbekommst?

                    F Offline
                    F Offline
                    flitzpiepe
                    schrieb am zuletzt editiert von
                    #9

                    @OliverIO

                    Tataaa... daran lag es natürlich. Da war ich gedanklich auf dem falschen Dampfer. Danke für den Hinweis!
                    Das Versenden der Nachricht funktioniert jetzt auch aus dem Script.

                    Der Grund übrigens, warum ich dies so mache, anstatt auf den PushOver-Adapter zurückzugreifen ist, dass ich jetzt auch einfach Attachments versenden kann und vor allem unterschiedliche PushOver-Apps referenzieren kann, wozu ich sonst den PushOver-Adapter n-mal installieren müsste.

                    => Problem gelöst!

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    854

                    Online

                    32.5k

                    Benutzer

                    81.7k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe