Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. LaMetric oder JSON-POST per IOBroker Javascript

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

LaMetric oder JSON-POST per IOBroker Javascript

Scheduled Pinned Locked Moved Skripten / Logik
69 Posts 19 Posters 14.6k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    ronnyw
    wrote on last edited by
    #24

    @mdsv:

    http://xx.xx.xx.xx:8080 mit lokaler IP Adresse geht … siehe auch https://developer.lametric.com .. dort sind die Beispiele.

    Bei mir ging SSL mit lokaler IP auch nicht, aber ist lokal auch nicht notwendig

    Oder SSL über Internet … aber warum drüber schleusen? `

    Genau, über den LaMetric Server wollte ich auch nicht gehen, nur lokal. Danke, dass Du bestätigst, dass es auch ohne SSL geht (ich hatte in irgendeinem Forenbeitrag bei LaMetric aufgeschnappt, dass bestimmte Funktionen nur über SSL gehen - vielleicht ist das aber auch schon wieder überholt). Allerdings bleibt dann das Problem, dass ich einen "wrong API key" zurückbekomme.

    Hier mal meine angepasste Funktion:

    var http = require('http'); 
    var apikey = '1234'; // API-Key von developer.lametric.com
    var deviceIpAddress = getState("javascript.0.LaMetric.Device.IPAddress").val; // LaMetric IP
    var port = '8080';
    
    var optionsTemplate = {
        host: deviceIpAddress,
        port: port,
        path: null,
        method: 'POST',
        headers: {
            'Content-Length': null,
            'Authorization': 'Basic ' + new Buffer('dev' + ':' + apikey).toString('base64')
        }
    };
    
    function LaMetricIndicator(options,data) {
    
        var dataString = JSON.stringify(data);
        options.headers['Content-Length'] = dataString.length;
    
        var req = http.request(options, function(res) {
            log('http Status: ' + res.statusCode);
            log('HEADERS: ' + JSON.stringify(res.headers), (res.statusCode != 201 ? 'warn' : 'info'));
    
            var bodyChunks  = [];
            res.on('data', function(chunk) {
                bodyChunks.push(chunk);
            }).on('end', function() {
                var body = Buffer.concat(bodyChunks);
                log('body: ' + body);
            });
        });
    
        req.on('error', function(e) {
            log('ERROR: ' + e.message, 'warn');
        });
    
        (dataString ? req.write(dataString) : log('Daten: keine Daten im Body angegeben'));
        req.end();
    }
    
    // Indicator Fensterstatus setzen
    
    optionsTemplate.path = '/api/v1/dev/widget/update/com.lametric.<hier-ein-schlüssel-dessen-vertraulichkeit-ich-nicht-einschätzen-kann>/1';
    var dataTemplate = {
        frames:[{
            text: 'Alle zu.',
            icon: 'a135',
            index: 0,
        }]
    }
    
    // Notification
    
    /*
    optionsTemplate.path = '/api/v2/device/notifications';
    var dataTemplate = {
        model: {
            cycles: 0,
            frames: [{
                icon: 'i10462',
                text: 'Hallo Welt.'
            }],
            sound: {
                category: 'notifications',
                id: 'positive6'
            }
        }
    }*/
    
    LaMetricIndicator(optionsTemplate,dataTemplate);</hier-ein-schlüssel-dessen-vertraulichkeit-ich-nicht-einschätzen-kann>
    

    Indicator geht nicht ("wrong api key"), Notification geht :roll:

    (der Sample-Push-Request mit CURL, der einem auf der Developer-Seite mitgegeben wird, funktioniert. (EDIT: Diese Annahme war wohl falsch, zumindest ist es nicht das gleiche! >) Dort wird der API Key ja in den Token encoded (< Ende falsch ;-) ), das Data-Schema sieht gleich aus… ich finde den Unterschied nicht)

    1 Reply Last reply
    0
    • R Offline
      R Offline
      ronnyw
      wrote on last edited by
      #25

      Mit einem Tipp vom LaMetric-Support funktioniert es jetzt doch. Ich dachte zwar, dass ich die Kombination auch ausprobiert hätte, aber anscheinend nicht: die Indicator Apps brauchen als Authentifizierung immer den generierten Token (von dem ich erst dachte er wäre das gleiche wie der in dem Script base64 encodete API Key - ist er aber nicht) in den Headern ("X-Access-Token"), die Notification braucht als Authentifizierung wie in dem Beispiel den API-Key ("Authorization"). (Als Fehlermeldung bei der Indicator App wäre vielleicht statt "Wrong API Key" hilfreicher gewesen "Wrong/missing Token" - das hätte mich eher drauf gebracht ;-) )

      Nun habe ich verschiedene Anzeigebereiche in der LaMetric:

      Fensterstatus

      Aktuelle gespielte Liedtitel (Chromecast)

      Status von Waschmaschine und Trockner mit Benachrichtigung wenn eins fertig ist (steht in der Waschküche im Keller)

      Wetterdaten (die nicht von einer eigenen Wetterstation kommen sondern von einer Station der nahegelegenen Uni geparsed werden)

      Als nächstes möchte ich ein paar Komfortfunktionen umsetzen:

      "Aufstehen"

      "Zu Bett gehen"

      "Wohnung verlassen"

      "Anwesend"

      Wie von mdsv schon erwähnt, können dann die jeweiligen Apps (jede Funktion ist eine eigene kleine App) zu bestimmten Zeiten in den Vordergrund geholt werden, so dass man nicht durchschalten muss (was dann zumindest bei einem festen Tagesrhythmus funktioniert).

      Ich denke ich werde alles über Indicator-Apps lösen, die können alles, was eine Button-App kann, zusätzlich kann ich aber die Anzeigeinhalte flexibler gestalten.

      Wenn ich ein besserer Programmierer (mit mehr Zeit ;-) ) wäre, würde ein LaMetric-Adapter ja ziemlich naheliegen. In Gedanken habe ich schon den kompletten Status- und App-Objekte-Baum in ioBroker liegen, einfaches Ändern der angezeigten Inhalte über die Objekte. Die LaMetric-API ist - soweit ich das beurteilen kann - auch recht simpel. Wäre echt super, wenn diese "Uhr" mehr Anklang finden würde :-)

      Ach ja, ich habe noch ein Problem wenn ich Sonderzeichen in meinen Daten habe (z.B. würden einfache Umlaute im Text in dem Beispielscript derzeit nicht gehen). Hat das schon jemand gelöst? Wie muss ich das encoden?

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mdsv
        wrote on last edited by
        #26

        Wie es scheint, kann LaMetric keine Umlaute und unterdrückt Notification mit Umlauten sogar.

        Bei Unwetterwarnung filtere ich diese dann vorher raus.

        var txt2=txt.replace(/ä/, "ae");

        Geht bestimmt besser.

        1 Reply Last reply
        0
        • R Offline
          R Offline
          ramses
          wrote on last edited by
          #27

          hatte mir auch überlegt ob ich das geld für dieses minderwertige produkt ausgebe.

          leider mangelts an alternativen.

          ich glaub ich warte noch mal ein jahr weiter :-) Vielleicht gibts dann ja was, was sein Geld auch wirklich wert ist.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            malc
            wrote on last edited by
            #28

            Nabend :-)

            Ich kram mal den Post hervor…

            Ich hab das Script erfolgreich eingesetzt, aber:

            Eines meiner Lametric Displays befindet sich meist im Schlafmodus (dunkler Raum). Wenn ich auf dem eine Nachricht anzeigen will erhalte ich:

            script.js.common.Alert: body: { "errors" : [ { "message" : "Only notifications with priority 'critical' are allowed when screensaver is activated" } ] 
            
            

            Ich hab nicht herausgefunden wo ich die Priority einstellen kann, hat da wer einen Tipp für mich?

            Malc

            Fan von ioBroker!

            <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

            …</size>

            1 Reply Last reply
            0
            • enzoE Offline
              enzoE Offline
              enzo
              wrote on last edited by
              #29

              Vorstellung von Matthias haus-automatisierung.com

              ist dabei LaMetric ioBroker adapta zu erstellen. ;)

              https://github.com/klein0r/ioBroker.lametric

              1 Reply Last reply
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                wrote on last edited by
                #30

                @enzo:

                Vorstellung von Matthias haus-automatisierung.com

                ist dabei LaMetric ioBroker adapta zu erstellen. ;)

                https://github.com/klein0r/ioBroker.lametric `

                Daumen hoch!

                Danke für die Info!

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Reply Last reply
                0
                • Espace0401E Offline
                  Espace0401E Offline
                  Espace0401
                  wrote on last edited by
                  #31

                  Ich habe diesen mal ausprobiert. Klappt bisher einwandfrei.

                  Iobroker in LXC-Container auf Proxmox 8 - Sicherung auf PBS - Homematic CCU2 - Netatmo Wetterstation und Thermostat

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Siegfried
                    Forum Testing
                    wrote on last edited by
                    #32

                    Gibt es auch eine anleitung zu dem Adapter?

                    1 Reply Last reply
                    0
                    • Espace0401E Offline
                      Espace0401E Offline
                      Espace0401
                      wrote on last edited by
                      #33

                      Nur das was auf Github steht. Reicht aber doch fürs erste. Einfach mal ausprobieren.

                      Iobroker in LXC-Container auf Proxmox 8 - Sicherung auf PBS - Homematic CCU2 - Netatmo Wetterstation und Thermostat

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Siegfried
                        Forum Testing
                        wrote on last edited by
                        #34

                        Ich bekomme es nicht zu laufen

                        Vieleicht mache ich einen fehler mit dem Key

                        1 Reply Last reply
                        0
                        • Espace0401E Offline
                          Espace0401E Offline
                          Espace0401
                          wrote on last edited by
                          #35

                          Du musst dir hier: https://developer.lametric.com/user/devices einen API Key zulegen und den dann eintragen. Dann sollte der Adapter grün werden und es funktioniert.

                          Iobroker in LXC-Container auf Proxmox 8 - Sicherung auf PBS - Homematic CCU2 - Netatmo Wetterstation und Thermostat

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            Siegfried
                            Forum Testing
                            wrote on last edited by
                            #36

                            Danke

                            Fehler gefunden … ich habe versucht einen Key zu erstelle unter "MY APP" anstelle den API-Key vom Gerät zu nehmen :-(

                            Bin nun mal ein blutiger Anfänger

                            Aber nun kann ich schon mal einen Text Senden.

                            Hab nur noch das Problem dass wenn ich versuche einen Wert zu senden (nicht reiner Text der kommt richtig an); dan steht auf mein LaMetric nur was von jasonobjekt usw... geht das bei dir?

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              Siegfried
                              Forum Testing
                              wrote on last edited by
                              #37

                              Wenn ich folgenden code

                              5988_code.jpg

                              Bekomme ich nur eine Unverständliche Meldung aud meinem Lametric.

                              Selbes bei Telegram gibt saubere werte.

                              Mache ich da was falsch?

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                tristaaan
                                wrote on last edited by
                                #38

                                Hi zusammen,

                                ich habe mir nun auch das Skript von Matthias Kleine installiert. Das Skript funktioniert bei mir leider nicht. Nachdem ich den IP-Adresse & API Key hinterlegt habe, springt die Instanz auf grün. Soweit so gut. Wenn eine Nachricht an die LaMetric versendet wird, auch egal welchen Inhalt die Nachricht enthält, bekomme ich im Log folgende Fehlermeldung: error Status Code: 400 / Content: [object Object]

                                Auszug vom Log:

                                lametric.0	2018-07-11 09:39:06.731	error	Status Code: 400 / Content: [object Object]
                                lametric.0	2018-07-11 09:39:06.680	info	sending request to http://192.168.177.21:8080/api/v2/device/notifications with data: {"priority":"warning","icon_type":"none","lifeTime":3000,"model":{"frames":[{"icon":"'a647'","text":"([getState(\"s
                                lametric.0	2018-07-11 09:39:06.680	info	message {"priority":"warning","icon_type":"none","lifeTime":3000,"model":{"frames":[{"icon":"'a647'","text":"([getState(\"spotify-premium.0.playbackInfo.artistName\").val,' - ',getState(\"spotify-prem
                                lametric.0	2018-07-11 09:39:06.680	info	received message
                                

                                Hat jemand von euch eine Idee, was ich ausprobrobieren kann um den Fehler zu beheben?

                                Beste Grüße Tristaaan

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  manmac
                                  wrote on last edited by
                                  #39

                                  Gibt es schon eine Lösung für den

                                  status Code: 400 / Content: [object Object]?

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    manmac
                                    wrote on last edited by
                                    #40

                                    Lösung: es müssen zwingend alle Parameter einen Wert haben. Ton = ohne funktioniert z.B. nicht

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Siegfried
                                      Forum Testing
                                      wrote on last edited by
                                      #41

                                      Hallo

                                      Hab den Adaptter angepasst dass er auch Variable Werte als Notifikationstext annimmt

                                      Um fehler zu vermeiden ist in der Version auch nicht mehr möglich den Ton auf "none" zu setzen. (status Code: 400 / Content: [object Object]?)

                                      https://github.com/Sigi74/ioBroker.lametric

                                      1 Reply Last reply
                                      0
                                      • M Offline
                                        M Offline
                                        malc
                                        wrote on last edited by
                                        #42

                                        Ich nutze den Adapter sowie auch nativ per Http Request meine LaMetric.

                                        Woran ich bei beiden Wegen scheitere ist es eine Meldung zu senden ohne das ein Ton abgespielt werden soll. In beiden Fällen wird die Nachricht dann nicht angezeigt.

                                        Hat wer da einen Tipp für mich?

                                        Malc

                                        Fan von ioBroker!

                                        <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

                                        …</size>

                                        1 Reply Last reply
                                        0
                                        • J Offline
                                          J Offline
                                          j0hu
                                          wrote on last edited by j0hu
                                          #43

                                          Hallo, ich möchte das Thema "Lametric Indicator App via JSON-Post" nochmal aufwärmen ;-)

                                          Um die aktuelle Leistung meiner PV-Anlage über die Lametric Time anzeigen zu lassen, habe ich eine Indicator-App auf den Developer-Seiten von Lametric erstellt (eine Indicator-App ist für diesen Zweck meine ich besser geeignet, als eine Notification. Nachdem der LaMetric-Adapter von Matthias Kleine nur Notifications unterstützt, kommt dieser hier nicht in Frage).

                                          Die Werte des Wechselrichters sollen vom ioBroker auf die Lametric (die App) gepusht werden. Für diesen Zweck habe ich das Java-Script aus diesem Post verwendet und die Platzhalter (API Key/Access Token, Local Push URL) mit meinen privaten App-Daten ersetzt. Die letzten Bemerkungen von "ronnyw" zu API-Key und Access Token habe ich berücksichtigt - trotzdem werden die Werte nicht zur LaMetric übertragen und folgende Fehler erscheinen im Log:

                                          17:01:03.542	info	javascript.0 (20298) script.js.Testscript: getState(id=lametric.0.meta.wifi.ip, timerId=undefined) => {"val":"192.168.0.17","ack":true,"ts":1583510437713,"q":0,"from":"system.adapter.lametric.0","user":"system.user.admin","lc":1579870802721}
                                          17:01:03.570	info	javascript.0 (20298) script.js.Testscript: http Status: 401
                                          17:01:03.570	warn	javascript.0 (20298) script.js.Testscript: HEADERS: {"content-type":"application/json;charset=UTF8","connection":"close","transfer-encoding":"chunked","date":"Fri, 06 Mar 2020 16:01:03 GMT","server":"lighttpd/1.4.35"}
                                          17:01:03.574	info	javascript.0 (20298) script.js.Testscript: body: { "errors" : [ { "message" : "Wrong api key" } ] }
                                          

                                          Weiter werde ich aus der folgenden, letzten Zeile im Beispielscript nicht schlau:

                                          ...
                                          LaMetricIndicator(optionsTemplate,dataTemplate);</hier-ein-schlüssel-dessen-vertraulichkeit-ich-nicht-einschätzen-kann>
                                          

                                          Gebe ich hier meinen persönlichen "Schlüssel" aus der "Local Push URL" ein, gibt es offenbar einen Syntax-Fehler?!
                                          (Nur am Rande: Komisch ist auch, dass Zeile 97 genannt wird - das Script geht nur bis Zeilennummer 94 <= ein Bug im Edior?)

                                          18:03:43.824	info	javascript.0 (20298) Stop script script.js.Testscript
                                          18:03:43.825	info	javascript.0 (20298) Start javascript script.js.Testscript
                                          18:03:43.826	error	javascript.0 (20298) script.js.Testscript compile failed: at script.js.Testscript:97
                                          

                                          "Betankt" hier irgend jemand von Euch erfolgreich eine Lametric Indicator-App vom ioBroker aus und kann ein funktionierendes Code-Beispiel (via JSON/Java-Script oder ggf. via CURL mit Blockly) zeigen!?

                                          Vielen Dank vorab!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          617

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe