Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. HTTP POST request an LaMetric-Time (Notification)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    HTTP POST request an LaMetric-Time (Notification)

    This topic has been deleted. Only users with topic management privileges can see it.
    • X
      Xython last edited by

      Das Ergebnis ist eine neue Zeile im Log, hier steht aber nur das die Response ein Objekt ist und keine näheren Infos:
      ` > 15:01:05.156 [info] javascript.0 Start javascript script.js.LaMetric.Skript1

      15:01:05.157 [info] javascript.0 script.js.LaMetric.Skript1: registered 0 subscriptions and 0 schedules

      15:01:05.168 [info] javascript.0 script.js.LaMetric.Skript1: [object Object]

      15:01:05.872 [info] javascript.0 Stop script script.js.LaMetric.Skript1 `
      Hilft das etwas? :?

      UPDATE: Habe etwas herausgefunden, steht weiter unten…

      1 Reply Last reply Reply Quote 0
      • frankjoke
        frankjoke last edited by

        Warum stückelst du den curl Befahl nicht in Javascript zusammen und rufst ihn dort mit

        exec('curl …') einfach auf?

        var cmd = 'curl .....';
        exec(cmd);
        
        
        1 Reply Last reply Reply Quote 0
        • X
          Xython last edited by

          Gute Idee, aber aus einem Grund den ich nicht finden kann geht auch das nicht. Er scheint den Befehl jedoch auszuführen, Ich bekomme folgende Ausgabe im Log:

          15:48:22.060	[info]	javascript.0 script.js.LaMetric.Skript2: exec: curl -X POST -u "dev:039739ce963d7cc61ea7bd44d63defa434838d4c8d1f422134257e59191a7a18" -H "Content-Type: application/json" -d " { "model": { "frames": [ { "icon":"a2867", "text":"Hello!"} ] } }" http://192.168.2.106:8080/api/v2/device/notifications
          

          Aber es funktioniert nicht. Wenn ich mich allerdings über Putty mit der Konsole der RaspberryPi verbinde geht der gleiche Befehl ohne Probleme. IoBroker läuft bei mir aber auf root. Muss ich trotzdem noch berechtigungen geben? 😐

          1 Reply Last reply Reply Quote 0
          • X
            Xython last edited by

            <size size="150">UPDATE:</size>

            Zurück zum vorherigen Ansatz:

            var request = require('request');
            request.post({
                dev:    '039739ce963d7cc61ea7bd44d63defa434838d4c8d1f422134257e59191a7a18',
                contentType: 'application/json',
                url:    'http://laMetric:8080/api/v2/device/notifications',
                form:   '{ \"model\": { \"frames\": [ { \"icon\":\"a2867\", \"text\":\"Hello\!\"} ] } }',
            }, function(error, response, body) {
                if (error) log(error, 'error');
                log(response);
                log(body);
            });
            

            Log(body) erzeugt die folgende Ausgabe im Log:
            > 15:56:25.848 [info] javascript.0 script.js.LaMetric.Skript1: { "errors":[ { "message":"Authorization is required" } ] }
            Es scheint also ein Problem mit dem API-Key zu geben. 😐

            Habt ihr vielleicht eine Idee, wie man diesen als User bzw. Passwort übermitteln kann? (Bei curl entspricht das dem Parameter "-u").

            Auf der Entwickler-Website steht folgendes:
            ` > In order to send a notification you must do HTTP POST request to http://<lametric_time_ip_address>:8080/api/v2/device/notifications endpoint with headers:

            Authorization: Basic <base64(dev:api_key)>Content-Type: application/json

            and body:

            {

            "model": {

            "frames": [

            {

            "icon":"a2867",

            "text":"Hello!"

            }

            ]

            }

            }</base64(dev:api_key)></lametric_time_ip_address> `

            Wisst ihr wie das in js umzusetzten ist? Schon einmal Danke für eure Zeit. 🙂

            1 Reply Last reply Reply Quote 0
            • X
              Xython last edited by

              <size size="150">Lösung:</size>

              Die Authentifizierung kann in der URL stattfinden…
              > http://dev:<api-key>@<lametric-ip>:8080/api/v2/device/notifications</lametric-ip></api-key>

              1 Reply Last reply Reply Quote 0
              • Holger76
                Holger76 last edited by

                Hi,

                ich werd mich hier mal einklinken, da ich seit heute auch ein Besitzer von Lametric bin 8-)

                Ich wollte damit einfach mal etwas rumspielen und teste das Teil gerade in Verbindung mit meinem Xiaomi Cube Controller. Also wenn ich den Cube um 90° drehe, soll eine andere Funktion gewählt werden, zb Licht.. beim nächsten mal Rollos. Das funktioniert auch ganz gut, bisher wurde das über Sprache am Tablet gesagt, nervt aber etwas. Nun habe ich den Codeschnipsel in Blockly eingefügt (Funktionen - Javascript) und funktioniert auch soweit erstmal…

                Nun meine erste Frage: Das "i" am Anfang kann man nicht irgendwie deaktivieren oder ? Es dauert mir noch zu lange, bis der Text angezeigt wird 😕

                Von meinem Gedanken, den prozentualen Einstellungswert zb vom Licht Darzustellen (während des Drehens, sagen wir im Sekundentakt), sollte ich wohl abkommen...

                Dann hätte ich gern als Text den Inhalt einer Variable, welche sich testweise unter 'javascript.0.Meine_Variablen.Text' befindet.

                Wie müsste ich also die Zeile

                form: '{ "model": { "frames": [ { "icon":"a2867", "text":"Mein Text"} ] } }',

                anpassen ?

                1 Reply Last reply Reply Quote 0
                • R
                  R32er last edited by

                  Ich habe seit gestern auch einen LaMetric und macht schon ziemlich Spaß damit Sachen zu entdecken. Aber man möchte ja mehr als nur den Standard.

                  Mit diesen http Sachen kenne ich mich leider nicht so aus. Würde gerne bei bestimmten Ereignissen einen Text anzeigen lassen.

                  Beim Sonos gibt es ja eine http api. Diese muss man bloß auf dem Raspi installieren und starten. Dann mittels einfachen curl Befehlen konnte ich abgelegte soundfiles abspielen lassen.

                  Vielleicht kann mir ja jemand erklären wie man hier vorgeht 🙂

                  1 Reply Last reply Reply Quote 0
                  • R
                    R32er last edited by

                    Kann mir vielleicht jemand sagen wie die Zeile in http also im Browser reinzuschreiben ist?

                    Aus dem Terminal mit curl klappt es schon. Wäre super nett !

                    1 Reply Last reply Reply Quote 0
                    • Holger76
                      Holger76 last edited by

                      @R32er:

                      Kann mir vielleicht jemand sagen wie die Zeile in http also im Browser reinzuschreiben ist?

                      Aus dem Terminal mit curl klappt es schon. Wäre super nett ! ` Hast du den Adapter von lametric installiert? Google mal nach github iobroker lametric.. Das funktioniert dann sehr einfach mit blockly

                      Gesendet von meinem F5121 mit Tapatalk

                      1 Reply Last reply Reply Quote 0
                      • R
                        R32er last edited by

                        @Holger76:

                        @R32er:

                        Kann mir vielleicht jemand sagen wie die Zeile in http also im Browser reinzuschreiben ist?

                        Aus dem Terminal mit curl klappt es schon. Wäre super nett ! ` Hast du den Adapter von lametric installiert? Google mal nach github iobroker lametric.. Das funktioniert dann sehr einfach mit blockly

                        Gesendet von meinem F5121 mit Tapatalk `
                        Bisher nicht. Habe momentan einfach keine Zeit. Aber Danke für den Tipp ich behalte das mal im Hinterkopf. Iobroker habe ich aber den Adapter nicht. Und über blockly weiß ich bisher auch noch nichts.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        641
                        Online

                        31.7k
                        Users

                        79.9k
                        Topics

                        1.3m
                        Posts

                        5
                        12
                        1843
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo