Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. dondento

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    D
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 6
    • Best 0
    • Groups 1

    dondento

    @dondento

    Starter

    0
    Reputation
    2
    Profile views
    6
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    dondento Follow
    Starter

    Latest posts made by dondento

    • RE: [gelöst] Bilder nach Vis.0 uploaden

      @liv-in-sky

      Super, funktioniert prima.
      Vielen Dank

      posted in Visualisierung
      D
      dondento
    • RE: [gelöst] Bilder nach Vis.0 uploaden

      @bahnuhr

      Hallo, hier das Skript:

      fs.readdir('/home/smarthome/Musik', (err, files) => {
          if (err) {
              console.error(err);
          return;
          }
      
          html ="<table width=100% border=0>";
      
          for (i=0;i<files.length;i++) {
              let imagename='/home/smarthome/Musik/'+ files[i]+"/cover.jpg";
              let destinationName ='/opt/iobroker/iobroker-data/files/vis.0/main/Musik/cover' + i + '.jpg';
      
              // fs.copyFile(imagename, destinationName, (err) => {
              //     if (err) {}
              //     else console.log(imagename + ' wurde kopiert');
              // });
      
              fs.readFile(imagename, (err, data)=>{
                  if(err) { }
                  else {
                      console.log("Schreibe nach: " + destinationName);
      
                      fs.writeFile(destinationName, data, (err) => {
                          if (err)
                              console.log(err);
                          else {
                              console.log("File written successfully\n");
                          }
                      });
      
                  }
              })
      
              if (i%4 == 0) html+= "<tr>";
                      
              html+= "<td  align=center style=\"padding:15px\"><div onclick='playAlbum(" + i + ")'><img src= '/vis.0/main/Sonstige/schallplatte.png' style=\"height: 50px; width: 50px;\"></div>" + files[i] + "</td>";
      
              if (i%4 == 3 ) html+="</tr>\r\n";
          }
      
          if (files.length %4 !=3) html+="</tr>\r\n";
      
          html += "</table>\r\n";
      
          html += "<script>function playAlbum(id){\r\n";
          html += "console.log('Spiele Album ' + id);\r\n";
          html += "this.servConn._socket.emit('setState', '0_userdata.0.Musikverzeichnis.Album', id);\r\n";
          html += " }\r\n";
          html += "</script>";
      
          setState('0_userdata.0.Musikverzeichnis.HTML-Alben'/*HTML-Alben*/,html);
      });
      

      }

      Jetzt mal mit readfile und writefile. Kopieren funktioniert, laut Terminal sind die Files vorhanden, jedoch keine Anzeige im Vis-Dateimanager.

      posted in Visualisierung
      D
      dondento
    • [gelöst] Bilder nach Vis.0 uploaden

      Ich möchte Bilder(jpg) über ein Skript in den Ordner /opt/iobroker/iobroker-data/files/vis.0/main/...... kopieren.
      Dies funktioniert, jedoch sind die Bilder im Vis-Dateimanager nicht sichtbar und sie können auch in der View nicht dargestellt werden('File not found').

      Nach langem Suchen bin ich auf den Hinweis 'falsches Format' gestossen und habe es dann über eine fetch-Funktion versucht (URL: IP-Addresse:8082/vis.0/main/........)
      Dies funktioniert leider nicht, da fetch nur absolute URLs akzeptiert.

      Weiss jemand einen Rat?

      Danke

      posted in Visualisierung
      D
      dondento
    • RE: Script auf Ende einer Funktion warten lassen

      @alcalzone
      Das habe ich mir schon gedacht.

      Vielen Dank

      posted in JavaScript
      D
      dondento
    • RE: Script auf Ende einer Funktion warten lassen

      @arteck

      Sollte eigentlich so funktionieren:

      Script:

      ....
      setState('0_userdata.0.MessageBox.cmdString','Fehler;Bitte Menge oder Stückzahl eingeben;OK;Cancel');
      result = Messagebox(); Hier sollte das Script auf 'result' warten.
      ....

      Globale Funktion:

      var result;

      async function MessageBox()
      {
      var cmdString = getState('0_userdata.0.MessageBox.cmdString').val;
      var cmdArray = cmdString.split(';');

      if (cmdArray.length<3) return;
      
      setState('0_userdata.0.MessageBox.Titel', cmdArray[0],true);
      setState('0_userdata.0.MessageBox.Text',cmdArray[1],true);    
      setState('0_userdata.0.MessageBox.Button1.Text', cmdArray[2],true);
      
      result='NaN';
      setState('0_userdata.0.MessageBox.Button1.Sichtbar',true);
      setState('0_userdata.0.MessageBox.Button1.Clicked',false);   
      
      if (cmdArray.length==3) {
          setState('0_userdata.0.MessageBox.Button1.PositionX',215,false);
          setState('0_userdata.0.MessageBox.Button1.PositionY',170,false);
          setState('0_userdata.0.MessageBox.Button2.Sichtbar',false,false);
      } 
      
      if (cmdArray.length==4) {
          setState('0_userdata.0.MessageBox.Button1.PositionX',70,false);
          setState('0_userdata.0.MessageBox.Button1.PositionY',170,false);
      
          setState('0_userdata.0.MessageBox.Button2.Text',cmdArray[3],true);
          setState('0_userdata.0.MessageBox.Button2.Sichtbar',true,false); 
          setState('0_userdata.0.MessageBox.Button2.Clicked',false,false);        
          setState('0_userdata.0.MessageBox.Button2.PositionX',320,false);
          setState('0_userdata.0.MessageBox.Button2.PositionY',170,false); 
      }
      
      setStateDelayed('0_userdata.0.MessageBox.Sichtbar',true,500)
      
      await schleife();
      
      setState('0_userdata.0.MessageBox.Result'/*Result*/,result,true);
      setState('0_userdata.0.MessageBox.Sichtbar'/*Sichtbar*/,false,true);
      
      return result;
      

      }

      function schleife()
      {
      while(result == 'NaN') {}
      }

      // Button 1 wurde geklicked
      on ({id:'0_userdata.0.MessageBox.Button1.Clicked',val:true}, async function(obj){
      obj.state.val=false;
      setState('0_userdata.0.MessageBox.Result',getState('0_userdata.0.MessageBox.Button1.Text').val);
      result=getState('0_userdata.0.MessageBox.Button1.Text'/Text/).val;
      });

      // Button 2 wurde geklicked
      on ({id:'0_userdata.0.MessageBox.Button2.Clicked',val:true}, async function(obj){
      obj.state.val=false;
      setState('0_userdata.0.MessageBox.Result',getState('0_userdata.0.MessageBox.Button2.Text').val);
      result=getState('0_userdata.0.MessageBox.Button2.Text'/Text/).val;
      });

      posted in JavaScript
      D
      dondento
    • Script auf Ende einer Funktion warten lassen

      Hallo,

      ich möchte ein Script erstellen, das eine globale Funktion aufruft.
      Die globale Funktion soll auf einen bestimmten Zustand eines Datenpunktes warten und den Wert an das Script zurückgeben. Das Script soll dabei warten, bis die globale Funktion beendet ist.
      Leider deaktiviert sich sich die Javascript-Instanz jedesmal. Ich habe auch schon alles mögliche mit 'async' und 'await' getestet.
      Weiss jemand eine Möglichkeit, dies zu realisieren?

      posted in JavaScript
      D
      dondento
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo