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. Tester
  4. jarvis v2.2.0 - just another remarkable vis

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    993

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

jarvis v2.2.0 - just another remarkable vis

Scheduled Pinned Locked Moved Tester
jarvismaterialmaterial uimaterialdesignvisvisualisierungvisualization
6.1k Posts 316 Posters 4.3m Views 273 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.
  • DiginixD Diginix

    @smart81 Theoretisch könnte das reichen:

    <img src="hier der Wert aus dem Datenpunkt mit dem Pfad zum Bild" />
    
    S Offline
    S Offline
    Smart81
    wrote on last edited by Smart81
    #5181

    @diginix

    Hey !

    Das wäre ja einfach , aber wie weiss er denn das er das letzte jpg dazu nutzen soll?

    sprich , es sind immer andere Namen die das nächste Bild hat leider

    Im pfad befindet sich jpgs und mp4 dateien , aber anzeigen tun er beides nicht :/

    snip.PNG

    M 1 Reply Last reply
    0
    • S Smart81

      @diginix

      Hey !

      Das wäre ja einfach , aber wie weiss er denn das er das letzte jpg dazu nutzen soll?

      sprich , es sind immer andere Namen die das nächste Bild hat leider

      Im pfad befindet sich jpgs und mp4 dateien , aber anzeigen tun er beides nicht :/

      snip.PNG

      M Online
      M Online
      MCU
      wrote on last edited by MCU
      #5182

      @smart81 Zeig doch mal was du in den DP für jarvis schickst.

      Jarvis kann keine relative Pfade verarbeiten. Man muss einen HTTP-Server haben, damit jarvis direkt auf das File zugreifen kann: http://192.168.178.xx/ring/imageA.jpg oder man kopiert die Daten in /vis.0-Verzeichnis. Von dort kann jarvis die Daten auch lesen: http://192.168.178.xx:8082/vis.0/....

      Wie lautet das Objekt für jarvis? 0_userdata.0......

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      S 1 Reply Last reply
      1
      • SKBS Offline
        SKBS Offline
        SKB
        Developer Most Active
        wrote on last edited by SKB
        #5183

        Gibt es eigentlich auch die Möglichkeit, JSON Daten in einen Datenpunkt zu schreiben?

        Hintergrund: Der Roomba Adapter benötigt sowas:

        {
          "command": "stop",
          "time": 0,
          "initiator": "Skript",
          "timestamp":0
        }
        

        Dieser Ansatz klappt leider nicht:

        {
          '{"command":"start"}': 'Starten',
        }
        

        Danke!

        ... wer nicht mit der Zeit geht, geht mit der Zeit ...

        Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

        M 1 Reply Last reply
        0
        • M MCU

          @smart81 Zeig doch mal was du in den DP für jarvis schickst.

          Jarvis kann keine relative Pfade verarbeiten. Man muss einen HTTP-Server haben, damit jarvis direkt auf das File zugreifen kann: http://192.168.178.xx/ring/imageA.jpg oder man kopiert die Daten in /vis.0-Verzeichnis. Von dort kann jarvis die Daten auch lesen: http://192.168.178.xx:8082/vis.0/....

          Wie lautet das Objekt für jarvis? 0_userdata.0......

          S Offline
          S Offline
          Smart81
          wrote on last edited by
          #5184

          @mcu

          Hallo mcu !

          Vielen Dank für die Hilfe :)

          Mein Object heißt so: 0_userdata.0.Camera das hatte ich als Datenpunkt für die ring angelegt.

          Lieben Gruß

          M 1 Reply Last reply
          0
          • S Smart81

            @mcu

            Hallo mcu !

            Vielen Dank für die Hilfe :)

            Mein Object heißt so: 0_userdata.0.Camera das hatte ich als Datenpunkt für die ring angelegt.

            Lieben Gruß

            M Online
            M Online
            MCU
            wrote on last edited by
            #5185

            @smart81
            Kleines Experiment: Ist noch nicht 100%ig. Müssen wir zusammen machen.
            IP anpassen: const serverIP = '192.168.178.xx'; / IP anpassen /

            // **********************************************
            // script zur Erstellung eines DP mit html-Inhalt
            // für die Darstellung von einem image oder einem
            // video in jarvis
            // **********************************************
            // createState('0_userdata.0.jarvis.ringDP', {read: true, write: true, name: "Ring-DP", type: "string", role: "text", def: "" });
            // /opt/iobroker/iobroker-data/files/vis.0/Anruferbild.jpg
            // /media/shares/bilder/Anruferbild.jpg
            
            const jarvisDP = '0_userdata.0.Camera';
            const ringDP = 'ring.0.doorbell_83834915.snapshot_file';
            const serverIP = '192.168.178.xx';  /* IP anpassen */
            let dataBild = '';
            let dataText = 'Ring';
            var fs = require('fs');
            
            on({id: ringDP, change: "any"}, function (obj) {
               let value = obj.state.val;
               // Kopieren der Daten in vis.0
               if (value.indexOf('http')>=0){
                   makeHtml(value);
               }else
               {    
                   const bild1 = fs.readFileSync(value);
                   if (value.indexOf('jpg')>0){
                       log(value);
                       // Wechsel Bild
                       // Auslesen der Verzeichnisse und filename
                       let filename = filenameSuche(value);
                       log("Filename: " +filename);
                       if (dataText == 'Bild1'){
                           dataText = 'Bild2';
                       }else{
                           dataText = 'Bild1';
                       }
                       if (dataText == 'Bild1'){
                           writeFile('vis.0','/main/ring/' + filename, bild1,function(){});  
                       }else{
                           writeFile('vis.0','/main/ring/' + filename, bild1,function(){});  
                       }
                       log('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                       setTimeout(function(){
                           // Bildname toggeln, da sonst jarvis nicht aktualisiert
                           if (dataText == 'Bild1'){
                               makeHtml('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                           }else{
                               makeHtml('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                           }
                           
                       },3000);
                       //makeHtml('http://'+serverIP+':8082/vis.0/main/ring/bild.jpg');
                   }
                   if (value.indexOf('mp4')>0){
                       log(value);
                       writeFile('vis.0','/main/ring/video.mp4', bild1,function(){});
                       if (dataText == 'Bild1'){
                               dataText = 'Bild2';
                           }else{
                               dataText = 'Bild1';
                           }
                       setTimeout(function(){
                           makeHtml('http://'+serverIP+':8082/vis.0/main/ring/video.mp4');
                       },3000);
                   }
               }
            });
            //makeHtml('http://192.168.178.89:8082/vis.0/main/ring/bild.jpg');
            
            function filenameSuche(data){
               let slash = String(data).lastIndexOf('/');
               let verzeichnis = data.substr(0,slash);
               log(verzeichnis);
               return data.substr(slash+1,data.length);
            }
            
            
            
            
            function makeHtml(data){
               //Rest nicht verändern
               let datasrc = data; // 'http://192.168.178.89/download/Just the Way You Are.mp3'
               let dataId = 'video1';
               let startTime = '';
               let imagealt = dataText;
               let imgwidth = '100%'; // auto, %, px
               let imgheight= 'auto'; // auto, % , px
               let videoposter = dataBild;  //'http://192.168.178.89/download/Wecker.gif';
               let autoPlay = ''; // autoplay
               let loop = ''; //loop
               let preload = 'none';
               let muted = ''; //muted
               let htmlCode ='';
            
               htmlCode += '<div>';
               if (datasrc != null || datasrc != undefined) {
                   if (datasrc.indexOf('.mp4')>0 ||datasrc.indexOf('.ogg')>0 || datasrc.indexOf('.mp3')>0 ){
                       htmlCode += '<video id="'+ dataId +'"';
                       htmlCode += ' poster="'+ videoposter +'" ';
                       htmlCode +=  autoPlay;
                       htmlCode += ' alt="' + imagealt + '"';
                       htmlCode += loop;
                       htmlCode += ' preload="'+ preload +'"';
                       htmlCode += muted;
                       htmlCode += ' width="'+ imgwidth + '"';
                       htmlCode += ' height="' + imgheight + '" controls>';
                       if (datasrc.indexOf('.mp3')>0){
                           if (startTime!=''){
                               htmlCode += '<source src="'+ datasrc + '#t=' + startTime + '" type ="audio/mp3"';
                           }else{
                               htmlCode += '<source src="'+ datasrc + '" type ="audio/mp3"';
                           }
                       }else{
                           if (startTime!=''){
                               htmlCode += '<source src="'+ datasrc + '#t=' + startTime +'" type ="video/mp4"';
                           }else{
                               htmlCode += '<source src="'+ datasrc +'" type ="video/mp4"';
                           }
                       }
                       htmlCode += '</video>';
                   }else{
                       htmlCode += '<img width="' + imgwidth + '" height="'+imgheight+'" ';
                       htmlCode += 'src ="'+ datasrc +'" alt="'+ imagealt +'" >';
                   }
               }
               htmlCode += '</div>';
               //log(htmlCode);
               setState(jarvisDP,htmlCode);
            }
            
            

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            S 1 Reply Last reply
            1
            • SKBS SKB

              Gibt es eigentlich auch die Möglichkeit, JSON Daten in einen Datenpunkt zu schreiben?

              Hintergrund: Der Roomba Adapter benötigt sowas:

              {
                "command": "stop",
                "time": 0,
                "initiator": "Skript",
                "timestamp":0
              }
              

              Dieser Ansatz klappt leider nicht:

              {
                '{"command":"start"}': 'Starten',
              }
              

              Danke!

              M Online
              M Online
              MCU
              wrote on last edited by MCU
              #5186

              @skb Also man müsste also in DP dann für Starten schreiben: ??

              {
                "command": "start",
                "time": 0,
                "initiator": "Skript",
                "timestamp":0
              }
              

              und für Stoppen

              {
                "command": "stop",
                "time": 0,
                "initiator": "Skript",
                "timestamp":0
              }
              

              Welche Version nutzt du v2 oder v3?

              NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

              SKBS 1 Reply Last reply
              0
              • M MCU

                @skb Also man müsste also in DP dann für Starten schreiben: ??

                {
                  "command": "start",
                  "time": 0,
                  "initiator": "Skript",
                  "timestamp":0
                }
                

                und für Stoppen

                {
                  "command": "stop",
                  "time": 0,
                  "initiator": "Skript",
                  "timestamp":0
                }
                

                Welche Version nutzt du v2 oder v3?

                SKBS Offline
                SKBS Offline
                SKB
                Developer Most Active
                wrote on last edited by SKB
                #5187

                @mcu Ja, genau.

                Es ist nur noch ein zusätzliches "Handicap" vorhanden.
                Ich versuche mal, es zu erklären.

                Also, der DP "roomba.0.commands._runCommand" nimmt das JSON auf:

                {
                  "command": "start",
                  "time": 0,
                  "initiator": "Skript",
                  "timestamp":0
                }
                

                Dieses wird dann durch den Adapter in 4 einzelne DP'S geschrieben.
                Sieht so aus:
                2021-09-30 21_17_53-objects - ioBroker.png

                Dort stehen die Werte dann einzeln drin. Jetzt würde ich gerne, das in der Dropdown-Box von "command" gelesen wird (geht ja), aber JSON in roomba.0.commands._runCommand geschrieben wird.

                Schreiben habe ich nun mit (erstmal ohne Initiator und timestamp):

                {
                  "{\"command\":\"start\"": "Starten",
                  "{\"command\":\"stop\"}": "Stoppen",
                  "{\"command\":\"Pause\"}": "Pause",
                  "{\"command\":\"resume\"}": "Fortsetzen",
                  "{\"command\":\"dock\"}": "Aufladen",
                  "{\"command\":\"train\"}": "Trainingslauf",
                  "{\"command\":\"evac\"}": "Auffangbehälter leeren",
                  "{\"command\":\"find\"}": "Suchen"
                }
                

                Man müsste quasi einmal lesen und entsprechend ersetzen und einmal schreiben und entsprechend ersetzen.

                Geht das überhaupt?
                Verwende V2.

                ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                M 1 Reply Last reply
                0
                • SKBS SKB

                  @mcu Ja, genau.

                  Es ist nur noch ein zusätzliches "Handicap" vorhanden.
                  Ich versuche mal, es zu erklären.

                  Also, der DP "roomba.0.commands._runCommand" nimmt das JSON auf:

                  {
                    "command": "start",
                    "time": 0,
                    "initiator": "Skript",
                    "timestamp":0
                  }
                  

                  Dieses wird dann durch den Adapter in 4 einzelne DP'S geschrieben.
                  Sieht so aus:
                  2021-09-30 21_17_53-objects - ioBroker.png

                  Dort stehen die Werte dann einzeln drin. Jetzt würde ich gerne, das in der Dropdown-Box von "command" gelesen wird (geht ja), aber JSON in roomba.0.commands._runCommand geschrieben wird.

                  Schreiben habe ich nun mit (erstmal ohne Initiator und timestamp):

                  {
                    "{\"command\":\"start\"": "Starten",
                    "{\"command\":\"stop\"}": "Stoppen",
                    "{\"command\":\"Pause\"}": "Pause",
                    "{\"command\":\"resume\"}": "Fortsetzen",
                    "{\"command\":\"dock\"}": "Aufladen",
                    "{\"command\":\"train\"}": "Trainingslauf",
                    "{\"command\":\"evac\"}": "Auffangbehälter leeren",
                    "{\"command\":\"find\"}": "Suchen"
                  }
                  

                  Man müsste quasi einmal lesen und entsprechend ersetzen und einmal schreiben und entsprechend ersetzen.

                  Geht das überhaupt?
                  Verwende V2.

                  M Online
                  M Online
                  MCU
                  wrote on last edited by MCU
                  #5188

                  @skb Zeig mal den Inhalt von deiner Dropdown-Box in jarvis. Anzeigevariante.

                  Dropdown-Box von "command" gelesen wird (geht ja)

                  Die Dropdownliste wurde in der Anzeigevariante angelegt?

                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                  SKBS 1 Reply Last reply
                  0
                  • M MCU

                    @skb Zeig mal den Inhalt von deiner Dropdown-Box in jarvis. Anzeigevariante.

                    Dropdown-Box von "command" gelesen wird (geht ja)

                    Die Dropdownliste wurde in der Anzeigevariante angelegt?

                    SKBS Offline
                    SKBS Offline
                    SKB
                    Developer Most Active
                    wrote on last edited by SKB
                    #5189

                    @mcu Das ist die Anzeigevariante.

                    {
                      "{\"command\":\"start\"}": "Starten",
                      "{\"command\":\"stop\"}": "Stoppen",
                      "{\"command\":\"Pause\"}": "Pause",
                      "{\"command\":\"resume\"}": "Fortsetzen",
                      "{\"command\":\"dock\"}": "Aufladen",
                      "{\"command\":\"train\"}": "Trainingslauf",
                      "{\"command\":\"evac\"}": "Auffangbehälter leeren",
                      "{\"command\":\"find\"}": "Suchen"
                    }
                    

                    Wo setze ich denn die "Schreibvariante" ein?

                    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                    M 1 Reply Last reply
                    0
                    • SKBS SKB

                      @mcu Das ist die Anzeigevariante.

                      {
                        "{\"command\":\"start\"}": "Starten",
                        "{\"command\":\"stop\"}": "Stoppen",
                        "{\"command\":\"Pause\"}": "Pause",
                        "{\"command\":\"resume\"}": "Fortsetzen",
                        "{\"command\":\"dock\"}": "Aufladen",
                        "{\"command\":\"train\"}": "Trainingslauf",
                        "{\"command\":\"evac\"}": "Auffangbehälter leeren",
                        "{\"command\":\"find\"}": "Suchen"
                      }
                      

                      Wo setze ich denn die "Schreibvariante" ein?

                      M Online
                      M Online
                      MCU
                      wrote on last edited by MCU
                      #5190

                      @skb Wenn man in den Command direkt ein Kommando schreibt passiert dann nichts?
                      415f8d72-9f1f-4a71-8a7a-65c0d460619c-image.png
                      Also wenn man da jetzt "start" oder "stop" bestätigt?

                      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                      SKBS 1 Reply Last reply
                      0
                      • M MCU

                        @skb Wenn man in den Command direkt ein Kommando schreibt passiert dann nichts?
                        415f8d72-9f1f-4a71-8a7a-65c0d460619c-image.png
                        Also wenn man da jetzt "start" oder "stop" bestätigt?

                        SKBS Offline
                        SKBS Offline
                        SKB
                        Developer Most Active
                        wrote on last edited by SKB
                        #5191

                        @mcu Nein, das ist quasi "last" Command. Damit man weiss, was akzeptiert wurde bzw. was der Roomba tut.

                        2021-09-30 21_36_09-objects - ioBroker.png

                        Das reine Kommado geht nur über "roomba.0.commands._runCommand".

                        ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                        Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                        M 1 Reply Last reply
                        0
                        • SKBS SKB

                          @mcu Nein, das ist quasi "last" Command. Damit man weiss, was akzeptiert wurde bzw. was der Roomba tut.

                          2021-09-30 21_36_09-objects - ioBroker.png

                          Das reine Kommado geht nur über "roomba.0.commands._runCommand".

                          M Online
                          M Online
                          MCU
                          wrote on last edited by MCU
                          #5192

                          @skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
                          runcommand braucht immer alle Daten im JSON :

                          {
                            "command": "start",
                            "time": 0,
                            "initiator": "Skript",
                            "timestamp":0
                          }
                          

                          oder reicht auch

                          {
                            "command": "start"
                          }
                          

                          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                          SKBS 1 Reply Last reply
                          0
                          • M MCU

                            @skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
                            runcommand braucht immer alle Daten im JSON :

                            {
                              "command": "start",
                              "time": 0,
                              "initiator": "Skript",
                              "timestamp":0
                            }
                            

                            oder reicht auch

                            {
                              "command": "start"
                            }
                            
                            SKBS Offline
                            SKBS Offline
                            SKB
                            Developer Most Active
                            wrote on last edited by SKB
                            #5193

                            @mcu said in jarvis v2.2.0 - just another remarkable vis:

                            @skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
                            runcommand braucht immer alle Daten im JSON :

                            {
                              "command": "start",
                              "time": 0,
                              "initiator": "Skript",
                              "timestamp":0
                            }
                            

                            Ich würde gerne alle Verwenden, wenn es geht.

                            oder reicht auch

                            {
                              "command": "start"
                            }
                            

                            2020-04-12 14_38_55-adapters - ioBroker.png
                            Das reicht, um den Roomba zu steuern - aber leider werden die 4 DP's nicht gefüllt, da sie nicht komplett übermittelt werden.

                            ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                            Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                            M 1 Reply Last reply
                            0
                            • SKBS SKB

                              @mcu said in jarvis v2.2.0 - just another remarkable vis:

                              @skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
                              runcommand braucht immer alle Daten im JSON :

                              {
                                "command": "start",
                                "time": 0,
                                "initiator": "Skript",
                                "timestamp":0
                              }
                              

                              Ich würde gerne alle Verwenden, wenn es geht.

                              oder reicht auch

                              {
                                "command": "start"
                              }
                              

                              2020-04-12 14_38_55-adapters - ioBroker.png
                              Das reicht, um den Roomba zu steuern - aber leider werden die 4 DP's nicht gefüllt, da sie nicht komplett übermittelt werden.

                              M Online
                              M Online
                              MCU
                              wrote on last edited by MCU
                              #5194

                              @skb Versuch mal bitte als Anzeigevariante für den DP runcommand:

                              {"{'command':'start','time':0,'initiator':'Skript','timestamp':0}":"Starten","{'command':'stop','time':0,'initiator':'Skript','timestamp':0}":"Stoppen"}
                              

                              Datenpunkt (Anzeige) : roomba.0.commands._runCommand
                              Datenpunkt (Trigger) : roomba.0.commands._runCommand

                              Darf man auch als 'initiator': 'jarvis' eintragen?

                              NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                              SKBS 1 Reply Last reply
                              0
                              • M MCU

                                @skb Versuch mal bitte als Anzeigevariante für den DP runcommand:

                                {"{'command':'start','time':0,'initiator':'Skript','timestamp':0}":"Starten","{'command':'stop','time':0,'initiator':'Skript','timestamp':0}":"Stoppen"}
                                

                                Datenpunkt (Anzeige) : roomba.0.commands._runCommand
                                Datenpunkt (Trigger) : roomba.0.commands._runCommand

                                Darf man auch als 'initiator': 'jarvis' eintragen?

                                SKBS Offline
                                SKBS Offline
                                SKB
                                Developer Most Active
                                wrote on last edited by
                                #5195

                                @mcu Das funktioniert solange, bis die App aufm Handy ein Kommando absendet. Dann stimmen die Werte nicht mehr, weil _runCommand mein Kommando beinhaltet und die 4 DP's von oben beinhalten den von der App.
                                Ich denke, ich komme um einen "Hilfsdatenpunkt" nicht herum, oder?

                                ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                M 1 Reply Last reply
                                0
                                • SKBS SKB

                                  @mcu Das funktioniert solange, bis die App aufm Handy ein Kommando absendet. Dann stimmen die Werte nicht mehr, weil _runCommand mein Kommando beinhaltet und die 4 DP's von oben beinhalten den von der App.
                                  Ich denke, ich komme um einen "Hilfsdatenpunkt" nicht herum, oder?

                                  M Online
                                  M Online
                                  MCU
                                  wrote on last edited by
                                  #5196

                                  @skb Was kommt denn von der App?

                                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                  SKBS 1 Reply Last reply
                                  0
                                  • M MCU

                                    @skb Was kommt denn von der App?

                                    SKBS Offline
                                    SKBS Offline
                                    SKB
                                    Developer Most Active
                                    wrote on last edited by
                                    #5197

                                    @mcu Die App steuert den Roboter. Der Adapter liest die Werte aus dem Roboter aus und fügt sie direkt in die 4 DP's ein. runCommand bleibt bestehen. Somit sind die Stati "ungleich".

                                    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                    M 1 Reply Last reply
                                    0
                                    • SKBS SKB

                                      @mcu Die App steuert den Roboter. Der Adapter liest die Werte aus dem Roboter aus und fügt sie direkt in die 4 DP's ein. runCommand bleibt bestehen. Somit sind die Stati "ungleich".

                                      M Online
                                      M Online
                                      MCU
                                      wrote on last edited by MCU
                                      #5198

                                      @skb Ja ist ja kein Problem. Du willst ja mit der Dropdownliste nur steuern. Du kannst ja zusätzlich den command Wert als secondary anzeigen lassen. Dann weißt du was gesendet wurde, ob vom Handy oder jarvis.

                                      Ansonsten gibt es auch noch die Möglichkeit ein Script zu nutzen, um den DP runCommand zu schreiben, falls sich der Wert command verändert und nicht initator:script / jarvis ist.

                                      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                      SKBS 1 Reply Last reply
                                      0
                                      • M MCU

                                        @smart81
                                        Kleines Experiment: Ist noch nicht 100%ig. Müssen wir zusammen machen.
                                        IP anpassen: const serverIP = '192.168.178.xx'; / IP anpassen /

                                        // **********************************************
                                        // script zur Erstellung eines DP mit html-Inhalt
                                        // für die Darstellung von einem image oder einem
                                        // video in jarvis
                                        // **********************************************
                                        // createState('0_userdata.0.jarvis.ringDP', {read: true, write: true, name: "Ring-DP", type: "string", role: "text", def: "" });
                                        // /opt/iobroker/iobroker-data/files/vis.0/Anruferbild.jpg
                                        // /media/shares/bilder/Anruferbild.jpg
                                        
                                        const jarvisDP = '0_userdata.0.Camera';
                                        const ringDP = 'ring.0.doorbell_83834915.snapshot_file';
                                        const serverIP = '192.168.178.xx';  /* IP anpassen */
                                        let dataBild = '';
                                        let dataText = 'Ring';
                                        var fs = require('fs');
                                        
                                        on({id: ringDP, change: "any"}, function (obj) {
                                           let value = obj.state.val;
                                           // Kopieren der Daten in vis.0
                                           if (value.indexOf('http')>=0){
                                               makeHtml(value);
                                           }else
                                           {    
                                               const bild1 = fs.readFileSync(value);
                                               if (value.indexOf('jpg')>0){
                                                   log(value);
                                                   // Wechsel Bild
                                                   // Auslesen der Verzeichnisse und filename
                                                   let filename = filenameSuche(value);
                                                   log("Filename: " +filename);
                                                   if (dataText == 'Bild1'){
                                                       dataText = 'Bild2';
                                                   }else{
                                                       dataText = 'Bild1';
                                                   }
                                                   if (dataText == 'Bild1'){
                                                       writeFile('vis.0','/main/ring/' + filename, bild1,function(){});  
                                                   }else{
                                                       writeFile('vis.0','/main/ring/' + filename, bild1,function(){});  
                                                   }
                                                   log('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                                                   setTimeout(function(){
                                                       // Bildname toggeln, da sonst jarvis nicht aktualisiert
                                                       if (dataText == 'Bild1'){
                                                           makeHtml('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                                                       }else{
                                                           makeHtml('http://'+serverIP+':8082/vis.0/main/ring/'+filename);
                                                       }
                                                       
                                                   },3000);
                                                   //makeHtml('http://'+serverIP+':8082/vis.0/main/ring/bild.jpg');
                                               }
                                               if (value.indexOf('mp4')>0){
                                                   log(value);
                                                   writeFile('vis.0','/main/ring/video.mp4', bild1,function(){});
                                                   if (dataText == 'Bild1'){
                                                           dataText = 'Bild2';
                                                       }else{
                                                           dataText = 'Bild1';
                                                       }
                                                   setTimeout(function(){
                                                       makeHtml('http://'+serverIP+':8082/vis.0/main/ring/video.mp4');
                                                   },3000);
                                               }
                                           }
                                        });
                                        //makeHtml('http://192.168.178.89:8082/vis.0/main/ring/bild.jpg');
                                        
                                        function filenameSuche(data){
                                           let slash = String(data).lastIndexOf('/');
                                           let verzeichnis = data.substr(0,slash);
                                           log(verzeichnis);
                                           return data.substr(slash+1,data.length);
                                        }
                                        
                                        
                                        
                                        
                                        function makeHtml(data){
                                           //Rest nicht verändern
                                           let datasrc = data; // 'http://192.168.178.89/download/Just the Way You Are.mp3'
                                           let dataId = 'video1';
                                           let startTime = '';
                                           let imagealt = dataText;
                                           let imgwidth = '100%'; // auto, %, px
                                           let imgheight= 'auto'; // auto, % , px
                                           let videoposter = dataBild;  //'http://192.168.178.89/download/Wecker.gif';
                                           let autoPlay = ''; // autoplay
                                           let loop = ''; //loop
                                           let preload = 'none';
                                           let muted = ''; //muted
                                           let htmlCode ='';
                                        
                                           htmlCode += '<div>';
                                           if (datasrc != null || datasrc != undefined) {
                                               if (datasrc.indexOf('.mp4')>0 ||datasrc.indexOf('.ogg')>0 || datasrc.indexOf('.mp3')>0 ){
                                                   htmlCode += '<video id="'+ dataId +'"';
                                                   htmlCode += ' poster="'+ videoposter +'" ';
                                                   htmlCode +=  autoPlay;
                                                   htmlCode += ' alt="' + imagealt + '"';
                                                   htmlCode += loop;
                                                   htmlCode += ' preload="'+ preload +'"';
                                                   htmlCode += muted;
                                                   htmlCode += ' width="'+ imgwidth + '"';
                                                   htmlCode += ' height="' + imgheight + '" controls>';
                                                   if (datasrc.indexOf('.mp3')>0){
                                                       if (startTime!=''){
                                                           htmlCode += '<source src="'+ datasrc + '#t=' + startTime + '" type ="audio/mp3"';
                                                       }else{
                                                           htmlCode += '<source src="'+ datasrc + '" type ="audio/mp3"';
                                                       }
                                                   }else{
                                                       if (startTime!=''){
                                                           htmlCode += '<source src="'+ datasrc + '#t=' + startTime +'" type ="video/mp4"';
                                                       }else{
                                                           htmlCode += '<source src="'+ datasrc +'" type ="video/mp4"';
                                                       }
                                                   }
                                                   htmlCode += '</video>';
                                               }else{
                                                   htmlCode += '<img width="' + imgwidth + '" height="'+imgheight+'" ';
                                                   htmlCode += 'src ="'+ datasrc +'" alt="'+ imagealt +'" >';
                                               }
                                           }
                                           htmlCode += '</div>';
                                           //log(htmlCode);
                                           setState(jarvisDP,htmlCode);
                                        }
                                        
                                        

                                        S Offline
                                        S Offline
                                        Smart81
                                        wrote on last edited by Smart81
                                        #5199

                                        @mcu

                                        Moin!

                                        Ich bewundere ja solche Talente :) Für mich ist das unvorstellbar sowas schreiben zu können ;-)

                                        Habe das script erstellt und gestartet , er kopiert nun in vis.0/ring/main die jpgs sauber rein sobald was ausgelöst wird.

                                        Den pfad könnte ich jetzt als displayimage widget bei jarvis eintragen?

                                        Ist es möglich das er immer den selben namen für das Bild nimmt und diesen immer wieder überschreibt? Weil aktuell kopiert er nur die Bilder mit den unterschiedlichen namen in den vis ordner.

                                        M 1 Reply Last reply
                                        0
                                        • S Smart81

                                          @mcu

                                          Moin!

                                          Ich bewundere ja solche Talente :) Für mich ist das unvorstellbar sowas schreiben zu können ;-)

                                          Habe das script erstellt und gestartet , er kopiert nun in vis.0/ring/main die jpgs sauber rein sobald was ausgelöst wird.

                                          Den pfad könnte ich jetzt als displayimage widget bei jarvis eintragen?

                                          Ist es möglich das er immer den selben namen für das Bild nimmt und diesen immer wieder überschreibt? Weil aktuell kopiert er nur die Bilder mit den unterschiedlichen namen in den vis ordner.

                                          M Online
                                          M Online
                                          MCU
                                          wrote on last edited by MCU
                                          #5200

                                          @smart81 Nein, da ja das displayImage einen festen Wert haben möchte. Dann müsste man immer den gleichen Bildnamen verwenden. Da ich aber in v3 damit Probleme hatte, habe ich es wieder auf den "filename" umgestellt.
                                          Ja man kann es auch auf ein Bildnamen einstellen, wie gesagt in v3 gab es damit Probleme.
                                          Wird denn jetzt ein Bild in jarvis angezeigt?

                                          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                          S 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

                                          411

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          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