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. HTTP POST request an LaMetric-Time (Notification)

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

HTTP POST request an LaMetric-Time (Notification)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 5 Kommentatoren 2.1k Aufrufe
  • Ä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.
  • X Offline
    X Offline
    Xython
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    meine Idee war meine LaMetric-Time (eine smarte LED-Uhr) zu benutzen um mir im lokalen Netzwerk aus ioBroker heraus Nachrichten über Skripte schicken lassen zu können.

    Mit curl funktioniert dies schon mit folgendem Kommando in der Linux-Konsole:

    curl -X POST -u "dev:<your api/key/here="">" -H "Content-Type: application/json" -d " { \"model\": { \"frames\": [ { \"icon\":\"a2867\", \"text\":\"Hello\!\"} ] } }" http://<ip address="">:8080/api/v2/device/notifications</ip></your>
    

    (wie auf der Seite des Herstellers beschrieben: http://lametric-documentation.readthedo … ation.html).

    Jetzt müsste ich nur noch schaffen das aus dem Skript heraus auszuführen, hier mein Ansatz:

    var request = require('request');
    request.post({
        //"laMetric" ist im Router vermerkt und somit bekannt.
        url:    'http://laMetric:8080/api/v2/device/notifications',
        dev:    '039739ce993d7cc61ea7bd44d63defa434858d4c8d1k422134257e59191a0a18',
        form:   '{ \"model\": { \"frames\": [ { \"icon\":\"a2867\", \"text\":\"Hello\!\"} ] } }',
    }, function(error, response, body) {
    
        if (error) log(error, 'error');
    });
    

    Wenn das Skript läuft gibt es zwar keinen Fehler, aber funktionieren tut es auch nicht. :(

    Ich sitz da jetzt schon eine Weile dran und bin so langsam am verzweifeln. Wenn es nur ein unbedeutender Fehler ist tut mir das Leid, aber man lernt schließlich dazu. :D

    Schon einmal vielen Dank im Voraus! :)

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      Hi,

      was passiert wenn du unter….

      if (error) log(error, 'error');
      

      Noch

      log(response) schreibst?

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • X Offline
        X Offline
        Xython
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • frankjokeF Offline
          frankjokeF Offline
          frankjoke
          schrieb am zuletzt editiert von
          #4

          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);
          
          

          Frank,

          NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
          Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

          1 Antwort Letzte Antwort
          0
          • X Offline
            X Offline
            Xython
            schrieb am zuletzt editiert von
            #5

            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 Antwort Letzte Antwort
            0
            • X Offline
              X Offline
              Xython
              schrieb am zuletzt editiert von
              #6

              <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 Antwort Letzte Antwort
              0
              • X Offline
                X Offline
                Xython
                schrieb am zuletzt editiert von
                #7

                <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 Antwort Letzte Antwort
                0
                • Holger76H Offline
                  Holger76H Offline
                  Holger76
                  schrieb am zuletzt editiert von
                  #8

                  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 ?

                  NUC8I5BEH (32GB,1TB-SSD) -> Proxmox VM [ioBroker.Pro auf Debian]+[InfluxDB/Grafana]+[AdGuard]+[ Rasp.matic] + [Conbee3] +[Graylog]+[Octopi]
                  NUC6CAYH (16GB) [Proxmox Backup Server]+[OMV]

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    R32er
                    schrieb am zuletzt editiert von
                    #9

                    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 Antwort Letzte Antwort
                    0
                    • R Offline
                      R Offline
                      R32er
                      schrieb am zuletzt editiert von
                      #10

                      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 Antwort Letzte Antwort
                      0
                      • Holger76H Offline
                        Holger76H Offline
                        Holger76
                        schrieb am zuletzt editiert von
                        #11

                        @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

                        NUC8I5BEH (32GB,1TB-SSD) -> Proxmox VM [ioBroker.Pro auf Debian]+[InfluxDB/Grafana]+[AdGuard]+[ Rasp.matic] + [Conbee3] +[Graylog]+[Octopi]
                        NUC6CAYH (16GB) [Proxmox Backup Server]+[OMV]

                        1 Antwort Letzte Antwort
                        0
                        • R Offline
                          R Offline
                          R32er
                          schrieb am zuletzt editiert von
                          #12

                          @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 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

                          672

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          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