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.1k

  • 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.
  • siggi85S siggi85

    @haus-automatisierung Funktioniert alles super! Habe heute meiner Tochter einen Film von Disney+ angemacht und in der Zeit alles (clockicons und unzählige Notifications) auf den neuen Adapter umgebaut. :joy:

    Ausschnitt alt


    1af563a1-66fe-463a-9f62-0693184c8c53-grafik.png

    Ausschnitt neu


    21cd41bb-47a1-4af1-b3d2-a7c822fffc62-grafik.png

    Ich hoffe ich klinge nicht undankbar, aber mir ist bei der Migration noch eine Funktion aufgefallen, die ich in dem Zusammenhang nutze: Wäre es noch möglich, eine Datenpunkt zu bauen, um generische Daten an eine App zu senden? Dann kann man sowohl mit custom Apps arbeiten, als auch Apps mit Infos füttern, ohne dass du extra Entwicklungsarbeit reinstecken musst. (Natürlich freue mich mich trotzdem riesig über meine Clockface Datenpunkt ;) )

    Als Beispiel: Ich habe damals eine eigene App gebaut, um die Lautstärke dahinzusenden. Dadurch kann ich auch mehrere schnelle Änderugen (wenn man bspw. auf der Fernbedienung Lautstärke+ drückt) gut verarbeiten. Notifications und pollbasierte DIY Apps sind hier leider keine Lösung.

    Beispielaufruf meiner custom App DenonSound anhand der FEHM Anbindung

    fhem.0.lametric.app | DenonSound push token=!!!!!!!!!!!!!== text=33 icon=a21067 channels=Sound
    
    F Offline
    F Offline
    Fix
    wrote on last edited by
    #60

    @siggi85 Jetzt habe ich vorhin grad einen eigenen Post eröffnet und sehe erst jetzt, dass da ja der alte Post hochgehoben wurde. Genau auch meine Frage wie die von @Samsotin. Bei mir bleibt das Display schwarz. Die ausprobierten Icons habe ich von der LaMetric Dev. Webseite geladen.

    Danke & LG

    Fix

    1 Reply Last reply
    0
    • haus-automatisierungH haus-automatisierung

      @siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.

      siggi85S Offline
      siggi85S Offline
      siggi85
      wrote on last edited by siggi85
      #61

      @haus-automatisierung sagte in LaMetric oder JSON-POST per IOBroker Javascript:

      @siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.

      Habe das letztens so gelöst für mich:
      Habe einen Datenpunkt angelegt, an den ich JSON Content schicken kann, und dieser wird dann direkt an die lametric gesendet (die IP hole ich mir aber aus deinem Adapter :) ).

      function volume(value) {
        if (value == true) {
          setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','43852',', "index": 0 } ] }'].join('')));
        } else if (!value) {
          setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','21067',', "index": 0 } ] }'].join('')));
        } else {
          setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{"frames": [ { "icon": "','21067','", "goalData": { "start": 0, "current": ',getState("denon.0.zoneMain.volume").val,', "end": 50 }, "index": 0 } ] }'].join('')));
        }
      }
      


      on({id: '0_userdata.0.helper.lametric_soundapp', change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      exec((['curl -k -X POST -H "Accept: application/json" -H',' "X-Access-Token: XXXXXXXXXXXXXXXXXXXXXXX"',' -H "Cache-Control: no-cache" -d \'',(obj.state ? obj.state.val : ""),'\' https://',getState('lametric.0.meta.wifi.ip').val,':4343/api/v1/dev/widget/update/com.lametric.XXXXXXXXXXXXXXXXXXXXXXXXXX'].join('')));
      });
      

      Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet, wäre bspw. eine generische Möglichkeit. Aber für mich reicht das erst mal so. :)

      @Samsotin @Fix
      Ich hole mir die Icons von der Lametric Seite: https://developer.lametric.com/icons
      Danach schaue ich nach der ID und hole mir dann den direkten Link des Icons (GIF oder PNG, je nach Image oder Animation):
      Bspw.:
      https://developer.lametric.com/content/apps/icon_thumbs/34.png
      https://developer.lametric.com/content/apps/icon_thumbs/87.gif
      Und den Link dann umrechnen lassen, bspw. hier: https://www.base64-image.de/

      Hier mal ein Beispielaufruf für eine dynamische Animation und ein statisches Icon (als Blockly Export):


      <block xmlns="https://developers.google.com/blockly/xml" type="control" id="=CV+c45iy2|c)LG|0@" x="29.61627960205078" y="-167">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">lametric.0.apps.XXXXXXX.clock.clockface</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="text" id="[6+H/R;8+Km?VSoGRWHV">
      <field name="TEXT">data:image/gif;base64,R0lGODlhCAAIAKIAACQiJIyKjMzOzPQCFLS2tPTGzPxabAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAADEwi6PPbNFBNlpSoEwUUOREgwZAIAIfkECQoAAAAsAAAAAAgACACCJCIkjIqMzM7M/FpstLa09MbMAAAAAAAAAxMIujw+rbg2JJ0qBMFFDkRIMGQCACH5BAkKAAAALAAAAAAIAAgAAAMUCLpsPqy8JuFyxoIQhBcKR4wEYyYAIfkECQoAAAAsAAAAAAgACAAAAxQIumw2o724ypRwhSC6UBshEkyZAAAh+QQJCgAAACwAAAAACAAIAIIkIiSMioz0AhS0trT8WmzMzswAAAAAAAADFAi6TCKkvbgclFeFUHrRwSAOTJkAACH5BAkKAAAALAAAAAAIAAgAAAMTCLo8Y6a9ImGNKgTBRQ5ESDBkAgA7</field>
      </block>
      </value>
      </block>


      <block xmlns="https://developers.google.com/blockly/xml" type="control" id="@Lw3WsbMavgGfy8AV`,2" x="29.61627960205078" y="1415">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">lametric.0.apps.XXXXXXXX.clock.clockface</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="text" id="%OQCe6N]QDoehGmPf0Lw">
      <field name="TEXT">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAUElEQVQYlWNUVFBgQAdXHnz/z8DAwKCjwMnIhCGLBlhgjHv37/+HsZUUFRlhprDAJDs6OhiQFX9jlGBgYGBgIGgFTgU6CpyMRJnAiM2byAAAfR4WsqJz+mUAAAAASUVORK5CYII=</field>
      </block>
      </value>
      </block>

      haus-automatisierungH F S 3 Replies Last reply
      1
      • siggi85S siggi85

        @haus-automatisierung sagte in LaMetric oder JSON-POST per IOBroker Javascript:

        @siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.

        Habe das letztens so gelöst für mich:
        Habe einen Datenpunkt angelegt, an den ich JSON Content schicken kann, und dieser wird dann direkt an die lametric gesendet (die IP hole ich mir aber aus deinem Adapter :) ).

        function volume(value) {
          if (value == true) {
            setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','43852',', "index": 0 } ] }'].join('')));
          } else if (!value) {
            setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','21067',', "index": 0 } ] }'].join('')));
          } else {
            setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{"frames": [ { "icon": "','21067','", "goalData": { "start": 0, "current": ',getState("denon.0.zoneMain.volume").val,', "end": 50 }, "index": 0 } ] }'].join('')));
          }
        }
        


        on({id: '0_userdata.0.helper.lametric_soundapp', change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        exec((['curl -k -X POST -H "Accept: application/json" -H',' "X-Access-Token: XXXXXXXXXXXXXXXXXXXXXXX"',' -H "Cache-Control: no-cache" -d \'',(obj.state ? obj.state.val : ""),'\' https://',getState('lametric.0.meta.wifi.ip').val,':4343/api/v1/dev/widget/update/com.lametric.XXXXXXXXXXXXXXXXXXXXXXXXXX'].join('')));
        });
        

        Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet, wäre bspw. eine generische Möglichkeit. Aber für mich reicht das erst mal so. :)

        @Samsotin @Fix
        Ich hole mir die Icons von der Lametric Seite: https://developer.lametric.com/icons
        Danach schaue ich nach der ID und hole mir dann den direkten Link des Icons (GIF oder PNG, je nach Image oder Animation):
        Bspw.:
        https://developer.lametric.com/content/apps/icon_thumbs/34.png
        https://developer.lametric.com/content/apps/icon_thumbs/87.gif
        Und den Link dann umrechnen lassen, bspw. hier: https://www.base64-image.de/

        Hier mal ein Beispielaufruf für eine dynamische Animation und ein statisches Icon (als Blockly Export):


        <block xmlns="https://developers.google.com/blockly/xml" type="control" id="=CV+c45iy2|c)LG|0@" x="29.61627960205078" y="-167">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">lametric.0.apps.XXXXXXX.clock.clockface</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="text" id="[6+H/R;8+Km?VSoGRWHV">
        <field name="TEXT">data:image/gif;base64,R0lGODlhCAAIAKIAACQiJIyKjMzOzPQCFLS2tPTGzPxabAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAADEwi6PPbNFBNlpSoEwUUOREgwZAIAIfkECQoAAAAsAAAAAAgACACCJCIkjIqMzM7M/FpstLa09MbMAAAAAAAAAxMIujw+rbg2JJ0qBMFFDkRIMGQCACH5BAkKAAAALAAAAAAIAAgAAAMUCLpsPqy8JuFyxoIQhBcKR4wEYyYAIfkECQoAAAAsAAAAAAgACAAAAxQIumw2o724ypRwhSC6UBshEkyZAAAh+QQJCgAAACwAAAAACAAIAIIkIiSMioz0AhS0trT8WmzMzswAAAAAAAADFAi6TCKkvbgclFeFUHrRwSAOTJkAACH5BAkKAAAALAAAAAAIAAgAAAMTCLo8Y6a9ImGNKgTBRQ5ESDBkAgA7</field>
        </block>
        </value>
        </block>


        <block xmlns="https://developers.google.com/blockly/xml" type="control" id="@Lw3WsbMavgGfy8AV`,2" x="29.61627960205078" y="1415">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">lametric.0.apps.XXXXXXXX.clock.clockface</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="text" id="%OQCe6N]QDoehGmPf0Lw">
        <field name="TEXT">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAUElEQVQYlWNUVFBgQAdXHnz/z8DAwKCjwMnIhCGLBlhgjHv37/+HsZUUFRlhprDAJDs6OhiQFX9jlGBgYGBgIGgFTgU6CpyMRJnAiM2byAAAfR4WsqJz+mUAAAAASUVORK5CYII=</field>
        </block>
        </value>
        </block>

        haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        wrote on last edited by
        #62

        @siggi85 sagte in LaMetric oder JSON-POST per IOBroker Javascript:

        Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet

        Klar, ich könnte natürlich in der Konfiguration eine Liste mit AppIDs pflegen, welche "mehr können" und dann kann der Nutzer da JSON hinsenden. Aber mein Problem damit ist: Das ist doch sehr komplex und da entstehen sicher viele Fragen was eigentlich geht usw. Deswegen würde ich das gerne irgendwie abstrahieren und vereinfachen.

        Nur leider trifft da maximale Flexibilität auf einfache Bedienung. Mit dem MyData DIY habe ich dafür ja auch einen Umweg gemacht, nur damit der Nutzer nix mit JSON usw. zu tun hat.

        Theoretisch könnte es ja auch x eigene Apps auf der LaMetric geben, welche alle eigene Daten annehmen können.

        PS: Deine Funktion ist etwas tricky. Da musst Du aufpassen :) !value ist z.B. auch die Zahl 0. Oder ein leerer String. Und gegen true würde ich mit === prüfen, anstatt mit ==. Ansonsten könnte es sein, dass dein else-Teil nie greift.

        !0 === true
        !0.0 === true
        !"" === true
        

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        siggi85S 1 Reply Last reply
        1
        • siggi85S siggi85

          @haus-automatisierung sagte in LaMetric oder JSON-POST per IOBroker Javascript:

          @siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.

          Habe das letztens so gelöst für mich:
          Habe einen Datenpunkt angelegt, an den ich JSON Content schicken kann, und dieser wird dann direkt an die lametric gesendet (die IP hole ich mir aber aus deinem Adapter :) ).

          function volume(value) {
            if (value == true) {
              setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','43852',', "index": 0 } ] }'].join('')));
            } else if (!value) {
              setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','21067',', "index": 0 } ] }'].join('')));
            } else {
              setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{"frames": [ { "icon": "','21067','", "goalData": { "start": 0, "current": ',getState("denon.0.zoneMain.volume").val,', "end": 50 }, "index": 0 } ] }'].join('')));
            }
          }
          


          on({id: '0_userdata.0.helper.lametric_soundapp', change: "any"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          exec((['curl -k -X POST -H "Accept: application/json" -H',' "X-Access-Token: XXXXXXXXXXXXXXXXXXXXXXX"',' -H "Cache-Control: no-cache" -d \'',(obj.state ? obj.state.val : ""),'\' https://',getState('lametric.0.meta.wifi.ip').val,':4343/api/v1/dev/widget/update/com.lametric.XXXXXXXXXXXXXXXXXXXXXXXXXX'].join('')));
          });
          

          Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet, wäre bspw. eine generische Möglichkeit. Aber für mich reicht das erst mal so. :)

          @Samsotin @Fix
          Ich hole mir die Icons von der Lametric Seite: https://developer.lametric.com/icons
          Danach schaue ich nach der ID und hole mir dann den direkten Link des Icons (GIF oder PNG, je nach Image oder Animation):
          Bspw.:
          https://developer.lametric.com/content/apps/icon_thumbs/34.png
          https://developer.lametric.com/content/apps/icon_thumbs/87.gif
          Und den Link dann umrechnen lassen, bspw. hier: https://www.base64-image.de/

          Hier mal ein Beispielaufruf für eine dynamische Animation und ein statisches Icon (als Blockly Export):


          <block xmlns="https://developers.google.com/blockly/xml" type="control" id="=CV+c45iy2|c)LG|0@" x="29.61627960205078" y="-167">
          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
          <field name="OID">lametric.0.apps.XXXXXXX.clock.clockface</field>
          <field name="WITH_DELAY">FALSE</field>
          <value name="VALUE">
          <block type="text" id="[6+H/R;8+Km?VSoGRWHV">
          <field name="TEXT">data:image/gif;base64,R0lGODlhCAAIAKIAACQiJIyKjMzOzPQCFLS2tPTGzPxabAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAADEwi6PPbNFBNlpSoEwUUOREgwZAIAIfkECQoAAAAsAAAAAAgACACCJCIkjIqMzM7M/FpstLa09MbMAAAAAAAAAxMIujw+rbg2JJ0qBMFFDkRIMGQCACH5BAkKAAAALAAAAAAIAAgAAAMUCLpsPqy8JuFyxoIQhBcKR4wEYyYAIfkECQoAAAAsAAAAAAgACAAAAxQIumw2o724ypRwhSC6UBshEkyZAAAh+QQJCgAAACwAAAAACAAIAIIkIiSMioz0AhS0trT8WmzMzswAAAAAAAADFAi6TCKkvbgclFeFUHrRwSAOTJkAACH5BAkKAAAALAAAAAAIAAgAAAMTCLo8Y6a9ImGNKgTBRQ5ESDBkAgA7</field>
          </block>
          </value>
          </block>


          <block xmlns="https://developers.google.com/blockly/xml" type="control" id="@Lw3WsbMavgGfy8AV`,2" x="29.61627960205078" y="1415">
          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
          <field name="OID">lametric.0.apps.XXXXXXXX.clock.clockface</field>
          <field name="WITH_DELAY">FALSE</field>
          <value name="VALUE">
          <block type="text" id="%OQCe6N]QDoehGmPf0Lw">
          <field name="TEXT">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAUElEQVQYlWNUVFBgQAdXHnz/z8DAwKCjwMnIhCGLBlhgjHv37/+HsZUUFRlhprDAJDs6OhiQFX9jlGBgYGBgIGgFTgU6CpyMRJnAiM2byAAAfR4WsqJz+mUAAAAASUVORK5CYII=</field>
          </block>
          </value>
          </block>

          F Offline
          F Offline
          Fix
          wrote on last edited by
          #63

          @siggi85 sagte in LaMetric oder JSON-POST per IOBroker Javascript:

          https://www.base64-image.de/

          Hoi Siggi

          Herzlichen Dank für die Präzisierung. So klappts. Ich habe den Fehler gemacht, dass ich die grossen Icons von der Lametric Webseite heruntergeladen und umgewandelt habe. Das ist super so. Genau das suche ich seit Monaten, juhui!

          Lieben Gruss

          Fix

          1 Reply Last reply
          0
          • siggi85S siggi85

            @haus-automatisierung sagte in LaMetric oder JSON-POST per IOBroker Javascript:

            @siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.

            Habe das letztens so gelöst für mich:
            Habe einen Datenpunkt angelegt, an den ich JSON Content schicken kann, und dieser wird dann direkt an die lametric gesendet (die IP hole ich mir aber aus deinem Adapter :) ).

            function volume(value) {
              if (value == true) {
                setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','43852',', "index": 0 } ] }'].join('')));
              } else if (!value) {
                setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{ "frames": [ { "text": "Mute", "icon": ','21067',', "index": 0 } ] }'].join('')));
              } else {
                setState("0_userdata.0.helper.lametric_soundapp"/*lametric_soundapp*/, (['{"frames": [ { "icon": "','21067','", "goalData": { "start": 0, "current": ',getState("denon.0.zoneMain.volume").val,', "end": 50 }, "index": 0 } ] }'].join('')));
              }
            }
            


            on({id: '0_userdata.0.helper.lametric_soundapp', change: "any"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            exec((['curl -k -X POST -H "Accept: application/json" -H',' "X-Access-Token: XXXXXXXXXXXXXXXXXXXXXXX"',' -H "Cache-Control: no-cache" -d \'',(obj.state ? obj.state.val : ""),'\' https://',getState('lametric.0.meta.wifi.ip').val,':4343/api/v1/dev/widget/update/com.lametric.XXXXXXXXXXXXXXXXXXXXXXXXXX'].join('')));
            });
            

            Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet, wäre bspw. eine generische Möglichkeit. Aber für mich reicht das erst mal so. :)

            @Samsotin @Fix
            Ich hole mir die Icons von der Lametric Seite: https://developer.lametric.com/icons
            Danach schaue ich nach der ID und hole mir dann den direkten Link des Icons (GIF oder PNG, je nach Image oder Animation):
            Bspw.:
            https://developer.lametric.com/content/apps/icon_thumbs/34.png
            https://developer.lametric.com/content/apps/icon_thumbs/87.gif
            Und den Link dann umrechnen lassen, bspw. hier: https://www.base64-image.de/

            Hier mal ein Beispielaufruf für eine dynamische Animation und ein statisches Icon (als Blockly Export):


            <block xmlns="https://developers.google.com/blockly/xml" type="control" id="=CV+c45iy2|c)LG|0@" x="29.61627960205078" y="-167">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">lametric.0.apps.XXXXXXX.clock.clockface</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="text" id="[6+H/R;8+Km?VSoGRWHV">
            <field name="TEXT">data:image/gif;base64,R0lGODlhCAAIAKIAACQiJIyKjMzOzPQCFLS2tPTGzPxabAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAACAAIAAADEwi6PPbNFBNlpSoEwUUOREgwZAIAIfkECQoAAAAsAAAAAAgACACCJCIkjIqMzM7M/FpstLa09MbMAAAAAAAAAxMIujw+rbg2JJ0qBMFFDkRIMGQCACH5BAkKAAAALAAAAAAIAAgAAAMUCLpsPqy8JuFyxoIQhBcKR4wEYyYAIfkECQoAAAAsAAAAAAgACAAAAxQIumw2o724ypRwhSC6UBshEkyZAAAh+QQJCgAAACwAAAAACAAIAIIkIiSMioz0AhS0trT8WmzMzswAAAAAAAADFAi6TCKkvbgclFeFUHrRwSAOTJkAACH5BAkKAAAALAAAAAAIAAgAAAMTCLo8Y6a9ImGNKgTBRQ5ESDBkAgA7</field>
            </block>
            </value>
            </block>


            <block xmlns="https://developers.google.com/blockly/xml" type="control" id="@Lw3WsbMavgGfy8AV`,2" x="29.61627960205078" y="1415">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">lametric.0.apps.XXXXXXXX.clock.clockface</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="text" id="%OQCe6N]QDoehGmPf0Lw">
            <field name="TEXT">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAUElEQVQYlWNUVFBgQAdXHnz/z8DAwKCjwMnIhCGLBlhgjHv37/+HsZUUFRlhprDAJDs6OhiQFX9jlGBgYGBgIGgFTgU6CpyMRJnAiM2byAAAfR4WsqJz+mUAAAAASUVORK5CYII=</field>
            </block>
            </value>
            </block>

            S Offline
            S Offline
            Samsotin
            wrote on last edited by
            #64

            @siggi85 auch von mir ein großes Dankeschön für die detaillierte Beschreibung. Jetzt klappt es.

            1 Reply Last reply
            0
            • haus-automatisierungH haus-automatisierung

              @siggi85 sagte in LaMetric oder JSON-POST per IOBroker Javascript:

              Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet

              Klar, ich könnte natürlich in der Konfiguration eine Liste mit AppIDs pflegen, welche "mehr können" und dann kann der Nutzer da JSON hinsenden. Aber mein Problem damit ist: Das ist doch sehr komplex und da entstehen sicher viele Fragen was eigentlich geht usw. Deswegen würde ich das gerne irgendwie abstrahieren und vereinfachen.

              Nur leider trifft da maximale Flexibilität auf einfache Bedienung. Mit dem MyData DIY habe ich dafür ja auch einen Umweg gemacht, nur damit der Nutzer nix mit JSON usw. zu tun hat.

              Theoretisch könnte es ja auch x eigene Apps auf der LaMetric geben, welche alle eigene Daten annehmen können.

              PS: Deine Funktion ist etwas tricky. Da musst Du aufpassen :) !value ist z.B. auch die Zahl 0. Oder ein leerer String. Und gegen true würde ich mit === prüfen, anstatt mit ==. Ansonsten könnte es sein, dass dein else-Teil nie greift.

              !0 === true
              !0.0 === true
              !"" === true
              
              siggi85S Offline
              siggi85S Offline
              siggi85
              wrote on last edited by
              #65

              @haus-automatisierung Ich verstehe was du meinst. Wenn man den Datenpunkt aber RAW oder JSON nennt, dann muss halt jeder selbst entscheiden ob er überhaupt mit dem Datenpunkt arbeitet. Aber da ich nicht der Entwickler bin, habe ich da auch leicht reden. :P
              Bezüglich der Funktion: Eigentlich ist das ein Blockly, weiß daher gar nicht ob/wie ich das nach deinen Vorgaben umsetzen könnte, ohne das Blockly in ein reines Javascript zu konvertieren (was eigentlich auch nicht schlimm wäre :P).
              Funktioniert mit den entsprechenden Datenpunkten (Mute und Volume) aus dem Denon Adapter aktuell aber ganz gut, daher werde ich das wahrscheinlich erst Mal so lassen. Spätestens wenn ich Probleme kriege, werde ich deinen Thread sicher wieder rauskramen. :D
              Seit ich auf 4k TV umgestiegen bin, zeigt mein Denon Receiver leider nicht mehr die Volume auf dem TV an (gibt es wohl nur in höheren Produktserien die normale Anzeige auf dem TV :-1: ). Da der Denon versteckt in einem Schrank steht und nur über Harmony gesteuert wird, benötige ich die Funktion seit dem mehr denn je. Denn blind die Lautstärke einstellen ist wirklich keine Option.

              @Fix @Samsotin Freut mich, dass ich helfen konnte. :)

              P 1 Reply Last reply
              1
              • siggi85S siggi85

                @haus-automatisierung Ich verstehe was du meinst. Wenn man den Datenpunkt aber RAW oder JSON nennt, dann muss halt jeder selbst entscheiden ob er überhaupt mit dem Datenpunkt arbeitet. Aber da ich nicht der Entwickler bin, habe ich da auch leicht reden. :P
                Bezüglich der Funktion: Eigentlich ist das ein Blockly, weiß daher gar nicht ob/wie ich das nach deinen Vorgaben umsetzen könnte, ohne das Blockly in ein reines Javascript zu konvertieren (was eigentlich auch nicht schlimm wäre :P).
                Funktioniert mit den entsprechenden Datenpunkten (Mute und Volume) aus dem Denon Adapter aktuell aber ganz gut, daher werde ich das wahrscheinlich erst Mal so lassen. Spätestens wenn ich Probleme kriege, werde ich deinen Thread sicher wieder rauskramen. :D
                Seit ich auf 4k TV umgestiegen bin, zeigt mein Denon Receiver leider nicht mehr die Volume auf dem TV an (gibt es wohl nur in höheren Produktserien die normale Anzeige auf dem TV :-1: ). Da der Denon versteckt in einem Schrank steht und nur über Harmony gesteuert wird, benötige ich die Funktion seit dem mehr denn je. Denn blind die Lautstärke einstellen ist wirklich keine Option.

                @Fix @Samsotin Freut mich, dass ich helfen konnte. :)

                P Offline
                P Offline
                pietro
                wrote on last edited by pietro
                #66

                @haus-automatisierung
                Hi, ich verwende schon viele Jahre Lametric und habe dass, was dieser Adapter nun mit My Data DIY leistet mit 27 Handständen umgesetzt (hab mir dazu auch eine eigene Lametric-App gebaut).
                Ich bin total begeistert und möchte nun alles wieder etwas vereinfachen - ABER: Leider haben sehr viele meiner Datenpunkte (beinahe alle) einen Bindestrich im Namen - bei diesen Datenpunkten kann der Adapter leider nicht die Werte auslesen und schreibt ins json einfach den Namen des Datenpunktes anstatt des Wertes.

                Könntest Du dies bitte fixen ?!

                Vielen Dank !

                P haus-automatisierungH 2 Replies Last reply
                0
                • P pietro

                  @haus-automatisierung
                  Hi, ich verwende schon viele Jahre Lametric und habe dass, was dieser Adapter nun mit My Data DIY leistet mit 27 Handständen umgesetzt (hab mir dazu auch eine eigene Lametric-App gebaut).
                  Ich bin total begeistert und möchte nun alles wieder etwas vereinfachen - ABER: Leider haben sehr viele meiner Datenpunkte (beinahe alle) einen Bindestrich im Namen - bei diesen Datenpunkten kann der Adapter leider nicht die Werte auslesen und schreibt ins json einfach den Namen des Datenpunktes anstatt des Wertes.

                  Könntest Du dies bitte fixen ?!

                  Vielen Dank !

                  P Offline
                  P Offline
                  pietro
                  wrote on last edited by
                  #67

                  @haus-automatisierung habs jetzt mal mit der heissen Nadel gefixt:
                  main.js - Zeile 21:
                  this.myDataDiyRegex = /{([_a-zA-Z0-9.#-]+)}/g;

                  Bitte in den code übernehmen.

                  1 Reply Last reply
                  0
                  • P pietro

                    @haus-automatisierung
                    Hi, ich verwende schon viele Jahre Lametric und habe dass, was dieser Adapter nun mit My Data DIY leistet mit 27 Handständen umgesetzt (hab mir dazu auch eine eigene Lametric-App gebaut).
                    Ich bin total begeistert und möchte nun alles wieder etwas vereinfachen - ABER: Leider haben sehr viele meiner Datenpunkte (beinahe alle) einen Bindestrich im Namen - bei diesen Datenpunkten kann der Adapter leider nicht die Werte auslesen und schreibt ins json einfach den Namen des Datenpunktes anstatt des Wertes.

                    Könntest Du dies bitte fixen ?!

                    Vielen Dank !

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    wrote on last edited by
                    #68

                    @pietro sagte in LaMetric oder JSON-POST per IOBroker Javascript:

                    Könntest Du dies bitte fixen ?!

                    Ah stimmt, es gab neulich noch ein Zeichen was ich erlauben musste. Dann nehme ich den Bindestich mal auch noch mit auf. Was man nicht alles vergisst...

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    P 1 Reply Last reply
                    1
                    • haus-automatisierungH haus-automatisierung

                      @pietro sagte in LaMetric oder JSON-POST per IOBroker Javascript:

                      Könntest Du dies bitte fixen ?!

                      Ah stimmt, es gab neulich noch ein Zeichen was ich erlauben musste. Dann nehme ich den Bindestich mal auch noch mit auf. Was man nicht alles vergisst...

                      P Offline
                      P Offline
                      pietro
                      wrote on last edited by
                      #69

                      @haus-automatisierung
                      Vielen Dank !

                      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

                      318

                      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