Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. jarvis v2.2.0 - just another remarkable vis

NEWS

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

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

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

jarvis v2.2.0 - just another remarkable vis

Geplant Angeheftet Gesperrt Verschoben Tester
jarvismaterialmaterial uimaterialdesignvisvisualisierungvisualization
6.1k Beiträge 316 Kommentatoren 4.2m Aufrufe 273 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Smart81

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

    DiginixD Offline
    DiginixD Offline
    Diginix
    schrieb am zuletzt editiert von
    #5180

    @smart81 Theoretisch könnte das reichen:

    <img src="hier der Wert aus dem Datenpunkt mit dem Pfad zum Bild" />
    

    ..:: So long! Tom ::..

    NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

    S 1 Antwort Letzte Antwort
    0
    • 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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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 Offline
        M Offline
        MCU
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        1
        • SKBS Offline
          SKBS Offline
          SKB
          Developer Most Active
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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 Offline
              M Offline
              MCU
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Offline
                M Offline
                MCU
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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 Offline
                    M Offline
                    MCU
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      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 Offline
                        M Offline
                        MCU
                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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 Offline
                            M Offline
                            MCU
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                              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 Offline
                                M Offline
                                MCU
                                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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 Offline
                                    M Offline
                                    MCU
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • M MCU

                                      @skb Was kommt denn von der App?

                                      SKBS Offline
                                      SKBS Offline
                                      SKB
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      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 Offline
                                        M Offline
                                        MCU
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          746

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe