Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. jarvis v2.2.0 - just another remarkable vis

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    jarvis v2.2.0 - just another remarkable vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • SKB
      SKB Developer Most Active @MCU last edited by

      @mcu den Datenpunkt settings von Jarvis?

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @SKB last edited by

        @skb Ja.

        SKB 1 Reply Last reply Reply Quote 0
        • SKB
          SKB Developer Most Active @MCU last edited by

          @mcu

          {
            "_isSmallScreen": false,
            "_isMobile": false,
            "_isTablet": false,
            "token": "34f3e454dab3493c4f9d54645be194bc",
            "sendUsageData": true,
            "joyrideIntroduction": true,
            "joyrideConfiguration": true,
            "configTab": "layout",
            "configGroupDevices": "function",
            "configExpertMode": false,
            "columnsOnMediumScreenSizes": "3",
            "themeDarkMode": true
          }
          
          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @SKB last edited by MCU

            @skb Danke. Aber ich dachte da wäre ein Notification-DP drin. Welcher Browser war das bei Dir?

            SKB 1 Reply Last reply Reply Quote 0
            • Diginix
              Diginix @MCU last edited by

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

              @diginix Das geht nicht, auch nicht mit v3.
              Man kann aber versuchen die Farbe aus einer root-Variable zu ziehen:

              In CSS muss dann diese definiert werden:

              :root {
                --mein-bg-color: green;
              }
              
              {"default":{"color":"var(--mein-bg-color)"}}
              

              Habe ich noch nicht, muss gleich mal machen.

              EDIT: mit v3 funktioiniert es, v2 kann gerade nicht testen. Du vielleicht?

              Funktioniert perfekt mit v2.

              1 Reply Last reply Reply Quote 1
              • SKB
                SKB Developer Most Active @MCU last edited by

                @mcu Diese hätte ich noch.Screenshot_20210929-231241_Chrome.jpg

                M 1 Reply Last reply Reply Quote 0
                • M
                  MCU @SKB last edited by MCU

                  @skb Bei welchem Browser hast du das Problem? Alle?
                  Ist der Browser so eingestellt, das er nach der Sitzung die Browser-Daten komplett löscht? Dann verliert er natürlich dei Info, das man schon mal "Abbrechen" geklickt hat.
                  Habe jetzt bei Chrome,Firefox,Edge probiert. Erhalte nur einmal die Nachfrage bzgl Notifications. Klicke auf Abbrechen und dann nach F5, bekomme ich keine Nachfrage mehr.

                  SKB 1 Reply Last reply Reply Quote 0
                  • SKB
                    SKB Developer Most Active @MCU last edited by

                    @mcu Also beim Fully Kiosk kann ich nicht akzeptieren sondern nur Abbrechen drücken.
                    Die anderen Browser frieren auf meinem Tablet nach x Stunden Laufzeit ein und die Oberfläche reagiert nicht mehr.
                    Aktuell läuft das Kiosk prima.
                    Ich schaue nochmal in die Reload Daten.
                    Ist aber eigentlich nicht notwendig, Jarvis neu zu laden, oder?

                    1 Reply Last reply Reply Quote 0
                    • S
                      Smart81 @Diginix last edited by

                      @diginix

                      Perfekt ! Das war das Problem 🙂 Vielen Dank diginix !!!!

                      Allerdings hast du natürlich recht , ich kann den map64 wert gar nicht für meine Ring anwenden 😞
                      Datenpunkt: ring.0.doorbell_83834915.snapshot_file

                      Wert: /opt/iobroker/iobroker-data/ring_0/snapshot/snapshot83834915_1632981871393.jpg

                      (Dieser wird immer wieder neu geschrieben sobald a) eine Aktivität ist oder ich den snapshotrequest file button drücke)

                      Eine aktualisierung kann man triggern , jedoch wenn ich diese nun in einen von mir erstellen Datenpunkt schreibe , weiss ich nicht was man noch dazu schreiben müsste 😕

                      Diginix 1 Reply Last reply Reply Quote 0
                      • Diginix
                        Diginix @Smart81 last edited by

                        @smart81 Theoretisch könnte das reichen:

                        <img src="hier der Wert aus dem Datenpunkt mit dem Pfad zum Bild" />
                        
                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Smart81 @Diginix last edited by 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 1 Reply Last reply Reply Quote 0
                          • M
                            MCU @Smart81 last edited by 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 1 Reply Last reply Reply Quote 1
                            • SKB
                              SKB Developer Most Active last edited by 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 1 Reply Last reply Reply Quote 0
                              • S
                                Smart81 @MCU last edited by

                                @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 Reply Quote 0
                                • M
                                  MCU @Smart81 last edited by

                                  @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 1 Reply Last reply Reply Quote 1
                                  • M
                                    MCU @SKB last edited by 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?

                                    SKB 1 Reply Last reply Reply Quote 0
                                    • SKB
                                      SKB Developer Most Active @MCU last edited by 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 1 Reply Last reply Reply Quote 0
                                      • M
                                        MCU @SKB last edited by 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?

                                        SKB 1 Reply Last reply Reply Quote 0
                                        • SKB
                                          SKB Developer Most Active @MCU last edited by 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 1 Reply Last reply Reply Quote 0
                                          • M
                                            MCU @SKB last edited by 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?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            863
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            jarvis material material ui materialdesign vis visualisierung visualization
                                            316
                                            6126
                                            3417957
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo