Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Verzeichnisrechte für VIS

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Verzeichnisrechte für VIS

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      LoxDUS last edited by

      Hallo,

      jedesmal wenn der Klingeltaster betätigt wird, wird ein Snapshot von einer Aussenkamera auf einen, am ioBroker Server angeschlossene SD-Karte geschrieben.
      Bisher habe ich den Snapshot immer direkt in das VIS-Verzeichnis abgelegt und konnte dann auch problemlos auf die Bilder von VIS aus zugreifen:

      im HTML-Widget:

       <img src="{javascript.0.Sonderfunktionen.KlingelBild1}" height="100" width="175"> 
      

      in "javascript.0.Sonderfunktionen.KlingelBild1" steht das Verzeichnis sowie der Name:

       ...      
       // Bilder durchrotieren. An position 0 steht immer das letzte Bild
       KlingelBilder[2] = KlingelBilder[1];
       KlingelBilder[1] = KlingelBilder[0];
       KlingelBilder[0] = '/vis/KameraBilder/' + Name;    // Bildname mit Verzeichnis merken
       setState('javascript.0.Sonderfunktionen.KlingelBild1', KlingelBilder[0]);
       setState('javascript.0.Sonderfunktionen.KlingelBild2', KlingelBilder[1]);
       setState('javascript.0.Sonderfunktionen.KlingelBild3', KlingelBilder[2]);
      ...
      

      Das hat auch immer gut funktioniert bis ich jetzt die Bilder auf der SD-Karte speichere. Also nicht mehr im VIS-Verzeichnis.

      var img_path = '/home/USB/bellpics/';
      ...
          // Bildnamen erzeugen
          var Name = 'Eing_'+time.getFullYear()+time.getMonth()+time.getDate()+'_'+time.getHours()+time.getMinutes()+time.getSeconds()+'.jpg';
          request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(img_path + Name, body, 'binary', function(err) {
      ...
      

      das Verzeichnis /home/USB/bellpics wird auf die SD-Karte gemountet und hat folgende Rechte:

      2019-12-11 22_00_45-artur@IOBROKER2_ _home_USB.png

      Wie kann ich denn jetzt direkt auf das neue Bilderverzeichnis von VIS aus zugreifen? Ich habe schon versucht einen Symbolischen Link im VIS-Verzeichnis anzulegen der auf dieses Bilderverzeichnis zeigt. Das scheint aber nicht zu funktionieren weil ?Die Rechte nicht passen?

      2019-12-11 21_59_09-artur@IOBROKER2_ _home_USB.png
      Wie muss der Link im HTML-Code aussehen um direkt auf das SD-Kartenverzeichnis von VIS aus zuzugreifen?

      Kann mir das jemand helfen?

      Vielen Dank,

      Artur

      Peoples 1 Reply Last reply Reply Quote 0
      • Peoples
        Peoples @LoxDUS last edited by Peoples

        @LoxDUS

        Mit der Einführung von js-controller 2.0 haben sich die Verzeichnisrechte geändert, wahrscheinlich liegts daran.

        Hier der link zum Beitrag:
        https://forum.iobroker.net/topic/26759/js-controller-2-jetzt-für-alle-im-stable/2

        Und hier ein alter Beitrag von mir wo ich ein Script eingestellt habe mit dem es wieder funktioniert:
        https://forum.iobroker.net/topic/25541/gelöst-wie-writefile-in-js-script-nutzen/53

        1 Reply Last reply Reply Quote 0
        • L
          LoxDUS last edited by

          Ich habe noch ein wenig rumexperimentiert und folgendes heraus gefunden:
          Das speichern mit "writeFile" funktioniert wunderbar, auch wenn man in ein Verzeichnis schreibt das eigentlich nur ein Symbolischer Link ist. Diese Dateien werden aber nicht von VIS gesehen obwohl exakt die gleichen Berechtigungen und Owner an den Dateien hängen wie bei Dateien die von VIS gesehen werden (nämlich genau die Dateien, die man über den Dateiexplorer von VIS hochgeladen hat. Nehme ich die für VIS "nicht" sichtbaren Dateien und lade sie per Dateiexplorer von VIS in exakt das gleiche Verzeichnis hoch, werden sie auch von VIS gesehen. Ich vermute also das diese Dateien irgendwie noch "registriert" werden müssen damit VIS sie sieht....

          @Peoples
          Vielen Dank für den Hinweis. Ich habe mir Dein Script mal angesehen. Prinzipiell habe ich das gleiche gemacht. Bis auf diesen kleinen Unterschied:

          ...
           var data = fs.readFileSync('/tmp/image.jpg');
              writeFile('vis.'+visInstance, imageFolder + fname, data, function (error) {
          ...
          

          Hier wird dann wahrscheinlich (mit "fs.readFileSync" - ich weis es aber nicht -) die Bilddatei der DB bekannt gemacht? Das habe ich vorher, also mit der "alten" js.controller Version (<2.0) nicht gemacht und es hatte funktioniert.
          Wie auch immer, ich habe Deinen Code genommen und meinen Bedürfnissen ein wenig angepasst und nun funktioniert es auch bei mir mit den Symbolischen Links auf die gemountete SD-Karte.

          Vielen Dank für deine Hilfe.

          Artur

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

          Support us

          ioBroker
          Community Adapters
          Donate

          571
          Online

          31.9k
          Users

          80.1k
          Topics

          1.3m
          Posts

          camera how-to vis
          2
          3
          390
          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