Diashow in Webfront

Hallo zusammen,

ich habe mit iP-Symcon neu gestartet und von den Möglichkeiten sehr angetan ich möchte nun erreichen, dass ich innerhalb des Webfront, meinen Touchscreen in der Diele zum Anzeigen div. Bilder nutzen kann (Diashow).
Eventuell hat sowas schon mal jemand hier umgesetzt.

Ich habe einen gefaketen Screenshot angehängt, wie ich mir das vorstelle.

Folgende Mögichkeiten stelle ich mir vor:

  • Auswahl eines belibiegen Verzeichnisses mit Bildern
  • Sobald die Kategorie Diashow ausgewählt ist wird automatisch ein Bild nach dem anderen angezeigt.
  • die Zeit zwischen den Bildern ist einstellbar
  • Die Bilder werden automatisch auf die zur Verfügung stehende Höhe skalliert.

Nice to have:

  • Sanftes überblenden
  • Tasten für Vor / Zurück / Pause / Play in der unteren Statuszeile von Webfront

Schön wäre zumindest die Grundfunktion mit Boardmitteln von Webfront umsetzen zu können.

Bin für jeden Tip dankbar

Gruß
Micha

iP-Symcon-Diashow-2.jpg

Hmm, dafür könnte man zur Not das Wettermodul missbrauchen :cool: So ohne weiteres nicht möglich.

So ne Art Diashow allerdings mit Cambilder findest Du http://www.ip-symcon.de/forum/f18/videoueberwachung-7827/

oder http://www.ip-symcon.de/forum/f18/webcams-uberwachungskameras-webfront-7705/

Ich werde mir das mit der Diashow als Modul mal überlegen.

ich schau mir die Sachen mal an, ein eigenes Module wäre natürlich super, ich denke das ist für einige interessant, die einen Touchscreen zur Homeautomation Steuerung im Haus verbaut haben.

Im Moment habe ich die Diashow als Bildschirmschoner auf dem mac mini laufen der hinter dem Touchscreen hängt. Bei dieser Lösung habe ich aber keine Möglichkeit parallel Statusmeldungen wie z.B. Post im Briefkasten oder Klingel in abwesenheit bestätigt darzustellen, da diese Infos natürlich hinter dem Bildschirmschoner verschwinden.

Ein Modul würde beides sauber im Webfront verbinden, ich könnte z.B. das Icon in der oberen Statuszeile animieren sobald Post im Briefkasten liegt und dies erkennen obwohl gleichzeitig die letzten Urlaubsbilder über den Screen laufen.

Danke schon mal vorab
Gruß
Micha

Hallo Micha,

hab mal im Netz geschaut und etwas gefunden.

Ist ganz einfach gehalten aber funktioniert. Ist zwar nicht ganz deinen Wünschen entsprechend aber erst mal besser wie gar nichts.

Einfach eine eigene Seite im Webfront anlegen.
Einen Ordner Diashow im user Verzeichnis und die Bilder dorthin kopieren.

<?php
//Diashow(1) mit PHP und JavaScript

//Verzeichnis der Bilder
$verzeichnis = "../user/Diashow/";

//Geschwindigkeit in Millisekunden
// 3000 = 3 Sekunden
$speed = 3500;

echo "
<script type='text/javascript'>
var Animation = new Array();
var bild = new Array();
var i = 0;
";

$ordner = openDir($verzeichnis); 
$by = 0;
while ($file = readDir($ordner)) {
 if($file != "." && $file != "..") {
  echo "bild[$by]='$verzeichnis$file';
";
  $by++;
 }
}
closeDir($ordner);

echo "
for (var r = 0; r < $by; r++) {
 Animation[r]=new Image(); Animation[r].src=bild[r];
}

function anzeigen() {
 if (i < $by) {
  document.images.dummy.src=Animation[i].src;
  i++;
 }
 else {
  i=0;
 }
  setTimeout('anzeigen()', $speed);
}
</script>

<body onLoad='anzeigen();'>
<div style='text-align: center;'><img name='dummy'></div>
";
?> 

Hallo zusammen,

hab da ein Problem mit der Ausführung. Bei mir erscheint nur ein Kästchen mit Symbol drin, aber kein Bild.

Hab unter dem WebFront Configurator eine eigene Seite angelegt und als Adresse …/user/Diashow/Diashow.php eingegeben.
Das gepostete Script hab ich unter der Adresse abgelegt und einige Bilder ins Verzeichniss gelegt aber leider funktioniert es irgendwie nicht.:confused:

Im Ordner Diashow dürfen nur Bilder drinnen sein. Leg deine Seite einfach unter user ab.

Hallo Rainer,

danke für Deinen Input.

Diesen Code-Schnipsel hatte ich auch schon gefunden, ist aber vorallem deshalb unbefriedigend, da er nicht in der Lage ist die Bilder zu skallieren und auf lokale Verzeichnisse zuzugreifen.
Ist aber zunmindest ne gute Basis um daraus was vernünftiges zu bauen, mal sehen was ich daraus machen kann, wenn ich etwas Zeit finde.

Hallo,

habe das Skript etwas verfeinert,

  • filtert jetzt automatisch nur jpg Files aus einem Verzeichnis

  • passt die Bildgrösse dynamisch an die Frame Höhe des Browsers an (nur Firefox u. Safari, nicht in IE)

  • dass das Skript im IE funktioniert müssen jedoch diese Zeilen rausgeschmissen werden:

    window_height = window.innerHeight-20;
    window_width = window.innerWidth;
    document.images.dummy.height=window_height;


<?
//Diashow(1) mit PHP und JavaScript

//Verzeichnis der Bilder
$directory = "../user/Pictures/";

//Geschwindigkeit in Millisekunden
// 3000 = 3 Sekunden
$speed = 3500;

echo "
<script type='text/javascript'>
var Animation = new Array();
var bild = new Array();
var window_height;
var window_width;
var i = 0;
";

function file_extension($filename)
{
return end(explode(".", $filename));
}

$folder = openDir($directory);
$by = 0;
while ($file = readDir($folder)) {
 if($file != "." && $file != ".." && $file[0] != "." && file_extension($file) == "jpg") {
 // $file[0] != "." to suppress Thumbnailfiles of MacOS
  $fullname="$directory$file";
  echo "bild[$by]='$fullname';
";
  $by++;
 }
}
closeDir($folder);

echo "
for (var r = 0; r < $by; r++) {
 Animation[r]=new Image(); Animation[r].src=bild[r];
}

function anzeigen() {
 if (i < $by) {
  document.images.dummy.src=Animation[i].src;
  window_height = window.innerHeight-20;
  window_width = window.innerWidth;
  document.images.dummy.height=window_height;

  i++;
 }
 else {
  i=0;
 }
  setTimeout('anzeigen()', $speed);
}
</script>

<body onLoad='anzeigen();'>
<div style='text-align: center;'><img name='dummy'></div>
";
?>

  • Zugriff auf andere Verzeichnisse als unterhalb webfront geht aus Javascript Sicherheitsgründen im Browser nicht.

Ist rudimentär aber funktioniert, ein Modul wäre natürlich schöner.

Gibt es irgendwo eine Einweisung wie man Module einfach selber bauen kann?

Hallo Micha,

ich denke die Show über eine eigene Seite einbinden ist die einfachste und beste Lösung.
Das ganze per Modul zumachen ist zwar möglich, aber bei jedem Update musst Du wieder alles anpassen.
Es gab mal eine angefangene Doku über ein Modul, diese wurde aus bestimmten Gründen entfernt. Wenn Du so was für dich selber machen willst, ist das beste Beispiel das Wettermodul. Dort siehst Du dann auch was Du alles anpassen musst und wo. Das ganze ist nicht ohne. :wink:

Sowtwas zu machen macht eigentlich nur Sinn, wenn es denn auch mit nach IPS übernommen wird.
Ich habe das ganze ja beim Wettermodul gemacht, solange Horst da nichts dran ändert ist das ja kein Problem.

Wenn das noch ersetzt wird ist auch der Start richtig.

<div style='text-align: center; color:#FFFFFF;'><img name='dummy' alt='Show wird geladen'></div>

Moin zusammen,

hab das Update v0.1 mal installiert.
Läuft leider nicht; auch wenn ich den Pfad anpasse auf

//Verzeichnis der Bilder
$directory = "../user/Diashow/"; 

Habt ihr eine Idee wie man das ganze auch unter WebFront Retro machen könnte? :slight_smile:

Dann könnte ich mein WebPad auch als Bilderrahmen verwenden.:smiley:

Läuft leider nicht; auch wenn ich den Pfad anpasse

Was geht denn nicht, besser was geht denn überhaupt. Am besten Screenshots machen.

Ist halt nur >Show wird geladen< auf der Seite zu sehen.
Aber die Bilder werden nicht geladen. Sind auch nur .jpg Bilder im Ordner.
Nutze ich das von Dir gepostete erste Skript funktioniert es und ich bekomme die Bilder zu sehen.
Benutze FireFox

Gruß Stefan

Seltsam, ist ja nichts anderes, außer das die Höhe und Breite angepasst wird. Hast Du mal auf Seite neu laden geklickt.

Ja, hab auch den Dienst nach jeder Veränderung an der Datei wieder neu gestartet und ebenfalls jedes Mal WebFront neu aufgerufen.

Gruß Stefan

Hallo,
bei mir hat folgendes das Problem gelöst

strtolower(file_extension($file)) == "jpg")

tgusi74

Hallo tgusi74,

danke für den Tip.
Damit hat es funktioniert.:slight_smile:
Jetzt fehlt mir nur noch was ähnliches für das WebFront Retro.
Hat da jemand eine Idee?

Gruß Stefan

Hallo Rainer,
wusste garnicht das Du neben IPS noch soviel Zeit für eine Eisenbahn im Garten Hast.:smiley:

Hallo Leute,

ich weiß nicht, ob dieser Tread noch aktuell ist, habe aber nichts aktuelleres gefunden…:wink:
Ich habe versucht die Anleitung mit allen Änderungen nachzuvollziehen. Da Code lautet dann m.E. wie folgt:

<? 
//Diashow(1) mit PHP und JavaScript 

//Verzeichnis der Bilder 
$verzeichnis = "../user/Diashow/"; 

//Geschwindigkeit in Millisekunden 
// 3000 = 3 Sekunden 
$speed = 3500; 

echo " 
<script type='text/javascript'> 
var Animation = new Array(); 
var bild = new Array(); 
var window_height; 
var window_width; 
var i = 0; 
"; 

function file_extension($filename) 
{ 
return end(explode(".", $filename)); 
} 

$folder = openDir($directory); 
$by = 0; 
while ($file = readDir($folder)) { 
 if($file != "." && $file != ".." && $file[0] != "." && strtolower(file_extension($file))  == "jpg") { 
 // $file[0] != "." to suppress Thumbnailfiles of MacOS 
  $fullname="$directory$file"; 
  echo "bild[$by]='$fullname';
"; 
  $by++; 
 } 
} 
closeDir($folder); 

echo " 
for (var r = 0; r < $by; r++) { 
 Animation[r]=new Image(); Animation[r].src=bild[r]; 
} 

function anzeigen() { 
 if (i < $by) { 
  document.images.dummy.src=Animation[i].src; 
  // window_height = window.innerHeight-20; 
  // window_width = window.innerWidth; 
  // document.images.dummy.height=window_height; 

  i++; 
 } 
 else { 
  i=0; 
 } 
  setTimeout('anzeigen()', $speed); 
} 
</script> 

<body onLoad='anzeigen();'> 
<div style='text-align: center; color:#FFFFFF;'><img name='dummy' alt='Show wird geladen'></div>
"; 
?> 

Bilder sind im oben genannten Verzeichnis.

Seite im Webfront ist eingerichtet, leider sehe ich nur ein weißen Hintergrund mit dem Tooltip „Show wird geladen“ auf einem Bild-Platzhalter (was ja zumindest darauf hindeutet, dass das Skript gefunden wird…)

Habe ich noch etwas vergessen? :confused:

Joachim

Hallo Leute,

habe den Fehler gefunden:
es war die vermischte Verwendung der Variablennamen „$Verzeichnis“ und „$directory“…:stuck_out_tongue:
Ist jetzt korrigiert und läuft.:slight_smile:
Habe aber trotzdem noch ein paar Fragen::wink:

  1. Gibt es schon ein Lösung zur automatischen Skalilerung im IE?
  2. Was muss man ändern, damit der Hintergrund die „typischen“ Webfront-Farben hat?
  3. Wäre es möglich, dass das Webfront nach einer gewissen Zeit von „Untätigkeit“ auf diese Seite springt - quasi als IPS-Webfront-Bildschirmschoner?

Joachim