Ankündigung

Einklappen
Keine Ankündigung bisher.

Slideshow als Startseite

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Slideshow als Startseite

    Hallo,

    ich würde gerne folgendes realisieren:
    Bewegungsmelder holt Tablet aus Standby, dort soll dann eine Slideshow mit Fotos ablaufen die auf einem NAS im Netz liegen, wenn der Bildschirm berührt wird soll die eigentliche Visu aufgerufen werden.
    Der Teil mit dem Bewegungsmelder und Standby ist mir klar, es interessiert mich daher eher wie man die Bilder vom NAS in eine Edomi Visu bekommt und diese dann zyklisch ändert.
    Hat sowas schon jemand realisiert bzw. kann mir sagen wie man das angehen könnte?

    Danke

    #2
    Kann man sowas nicht über das Betriebssystem des visu Rechners / tablet machen??
    Jean-Luc Picard: "Things are only impossible until they are not."

    Kommentar


      #3
      Wenn man darauf verzichtet das beim berühren die Visu startet sicher irgendwie.

      Kommentar


        #4
        vielleicht denke ich da zu einfach, aber eine Idee dazu:
        - eine Seite mit bildschirmfüllendem Visuelement Bild-URL/Webseite (als Startseite oder Screensaver der Visu)
        - das Steuerungs-KO
        entweder mittels einer kleinen Logik (z.B. LBS 19000272) mit einer bregrenzte Auswahl von Bilder befüllen
        oder eine feste URL auf dem NAS, und dort mittels Skript verschiedene Bilder zur verfügung stellen - dann automatische Aktualisierung per Intervall
        - beim Klick-Verhalten den Aufruf der eigentlichen Visu-Startseite hinterlegen

        Kommentar


          #5
          Gibt es sowas wie das Visuelement Bild-URL/Webseite auch für lokal (gemountete) liegende Bilder?
          Ich hab mir einen LBS vorgestellt der mir aus einem vorgegebenen Pfad zufällig Bildpfade in ein iKO schreibt, ich weiß jetzt aber nicht wie ich das Bild im iKO Pfad in der Visu anzeigen kann.

          Kommentar


            #6
            Zitat von Bernator Beitrag anzeigen
            Ich hab mir einen LBS vorgestellt der mir aus einem vorgegebenen Pfad zufällig Bildpfade in ein iKO
            Teste mal folgendes:
            • Einen Ordner im Pfad /usr/local/edomi/www/ anlegen (z.B. img)
            • Dort alle Bilder reinkopieren
            • Den Pfad an E3 des folgenden Bausteines eintragen (/usr/local/edomi/www/img/)
            PHP-Code:

            ###[DEF]###
            [name        =    Random Image]

            [e#1      trigger     = Trigger                            ]
            [e#2      trigger     = Einlesen                            ]
            [e#3                 = Path #init=/usr/local/edomi/www/data/liveproject/visu/img/]
            [e#4                 = Loglevel #init=3]

            [a#1        =    Text]
            [v#1        =  ]                        // Anzahl
            [v#2        =  ]                        // Array
            [v#100        = 0.1 ]                        // Version
            [v#101        = 19999975 ]                    // LBS ID
            [v#102        = Random Image]        // LBS name

            [v#104        = 1 ]                            // One logfile per instance
            [v#105        = 1 ]                            // log ID in each line

            ###[/DEF]###


            ###[HELP]###
            E1 generiert eine zufällige Bild URL
            E2 liest alle Bilddateien aus dem Pfad aus
            E3 Pfad zu den Bildateien

            A1 Bild URL für das Bild-URL/WEBSITE Element in der Visu

            ###[/HELP]###


            ###[LBS]###
            <?
            function LB_LBSID($id) {
                if ($E=logic_getInputs($id)) {

                    $path = $E[3]['value'];
                    LB_LBSID_logging($id, "Image Path $path", 8);
                    // image extensions
                    $extensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp');
                        // iterate
                        if($E[2]['refresh'] ==1 || getSysInfo(1)==1 || $E[3]['refresh'] ==1){
                        // init result
                        $result = array();
                        // directory to scan
                        $directory = new DirectoryIterator($path);    
                        foreach ($directory as $fileinfo) {
                            // must be a file
                            if ($fileinfo->isFile()) {
                                // file extension
                                $extension = strtolower(pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION));
                                // check if extension match
                                if (in_array($extension, $extensions)) {
                                    // add to result
                                    $result[] = $fileinfo->getFilename();
                                }
                            }
                        }
                        setLogicElementVar($id, 1, count($result));
                        $anz = count($result);
                        LB_LBSID_logging($id, "$anz images found", 8);
                        setLogicElementVar($id, 2, serialize($result));
                        LB_LBSID_logging($id, "Image Array ", 8, $result);
                        }
                        if($E[1]['refresh'] ==1 && getLogicElementVar($id, 1) >=1){
                            $result = unserialize(getLogicElementVar($id,2));
                            $img_nr = rand (0,getLogicElementVar($id, 1)-1);
                            $path_out = preg_replace('%(/usr/local/edomi/www/)%x', '/', $path);
                            $img_url = $path_out .$result[$img_nr];
                            logic_setOutput($id,1,$img_url);
                            LB_LBSID_logging($id, "Output Image Nr $img_nr with URL $img_url", 8);
                        }
                }
            }

            function LB_LBSID_logging($id, $msg, $priority = 8, $var = NULL) {
                $E = getLogicEingangDataAll($id);
                $logLevel = $E[4]['value'];
                if (is_int($priority) && $priority <= $logLevel && $priority > 0) {
                    $logLevelNames = array(
                        'none',
                        'emerg',
                        'alert',
                        'crit',
                        'err',
                        'warning',
                        'notice',
                        'info',
                        'debug'
                    );
                    $version = getLogicElementVar($id, 100);
                    $lbsNo = getLogicElementVar($id, 101);
                    $logName = getLogicElementVar($id, 102). "-LBS$lbsNo";
                    $logName = preg_replace('/ /', '_', $logName);
                    if (logic_getVar($id, 104))
                        $logName.= "-$id";
                    if (logic_getVar($id, 105) == 1)
                        $msg.= " ($id)";
                    strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname = 'EXE'. $lbsNo : $scriptname = 'LBS'. $lbsNo;
                    writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname. " [v$version]:\t". $msg);
                    if (isset($var)) {
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname. " [v$version]:\t================ ARRAY/OBJECT START ================");
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname. " [v$version]:\t". json_encode($var));
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname. " [v$version]:\t================ ARRAY/OBJECT  END  ================");
                    }
                }
            }
            ?>
            ###[/LBS]###


            ###[EXEC]###
            <?
            ?>
            ###[/EXEC]###
            • Mit einer 1 an E2 die Bilddateien scannen
            • Mit einem Trigger (minütlich) an E1 eine zufällige Bild URL an A1 ausgeben lassen.
            • Das IKO von A1 mit dem "BILD-URL/WEBSITE" Element auf der Visu verbinden
            • Bescheid geben, ob es funktioniert
            Zuletzt geändert von vento66; 21.05.2018, 11:54.

            Kommentar


              #7
              Ui, genau so hab ich mir das vorgestellt, Danke
              Hab den LBS getestet und funktioniert, nur bei Verzeichnissen mit sehr vielen Bildern gibts dann irgendwann ein Problem mit "$result = unserialize(getLogicElementVar($id,2));" warscheinlich gibts hier ein größenlimit für das array damit das mit serialize/unserialize funktioniert?

              D.h. alles was unter /usr/local/edomi/www/ liegt kann beim "BILD-URL/WEBSITE" Element als URL angegeben werden, hier wäre evtl. ein Hinweis in der Hilfe nicht schlecht

              Kommentar


                #8
                Sicher wird irgendwann die Begrenzung der internen Variable greifen. Dann muss das Array halt ausgelagert werden, ist ja auch kein Problem. Schau ich mir bei Gelegenheit mal an.

                Kommentar


                  #9
                  Alles klar...
                  Ich hab mir jetzt schön die Platte vollgemüllt mit dem nächtlichen backup, das wird ja vom Verzeichnis "/usr/local/edomi" gemacht, wenn man jetzt wie ich nach "/usr/local/edomi/www/photos" einen samba share mounted landet der auch im backup
                  Kann man das irgendwie besser, anders lösen?

                  Kommentar


                    #10
                    einfach außerhalb von /usr/local/edomi mounten

                    Kommentar


                      #11
                      dann funktioniert aber das "BILD-URL/WEBSITE" Element nicht mehr da hier die Bilder ja unter /usr/local/edomi/www/ liegen müssen, oder übersehe ich da jetzt etwas?

                      Kommentar


                        #12
                        Du kannst natürlich auch jeden anderen Pfad nehmen (nicht getestet).

                        Kommentar


                          #13
                          also wenn ich einen anderen Pfad nehme geht es nicht, du hast im lbs ja auch ein:
                          "$path_out = preg_replace('%(/usr/local/edomi/www/)%x', '/', $path);"

                          Hab auch versucht im "BILD-URL/WEBSITE" Element direkt einen lokalen Pfad anzugeben statt einer URL, geht auch nicht.....

                          Kommentar


                            #14
                            Das replace ist eigentlich nur drinn, um den Pfad abzuschneiden. Du kannst natürlich auch nur „photos“ an E3 eingeben. Warum das unterhalb von dem edomi Ordner nicht funktioniert, kann ich im Moment nicht sagen, aber ich denke mal, das der Client nicht so auf den gemounteten Pfad zugreifen kann. Teste doch mal, was passiert wenn Du den Ordner im Netzwerk freigibst, und die komplette URL (IP/xxx/yyy/) an E3 einträgst.
                            Zuletzt geändert von vento66; 22.05.2018, 19:59.

                            Kommentar


                              #15
                              Also ich bring es nicht zum laufen wenn ich es außerhalb von /usr/local/edomi/www/ mounte, sollte das "BILD-URL/WEBSITE" Element damit zurecht kommen?

                              Kommentar

                              Lädt...
                              X