Uhrzeit

Hallo
leider bekomme ich auch dort „file not found“

Den ordner „Digitaluhr“ habe ich auch entfernt

./webfront/user…

habe ich auch schon probiert
ebenso

./user…

ich hoffe ich habe das alles auch richtig in windows abgelegt.
Im Browser klappt es mit dem pfad -> file///c:/…

edit:
Symcon scheint mit dem neuen ordner, von mir angelegten, Ordner „user“ nicht klar zukommen.
Wenn ich die Dateien direkt in den Ordner „Webfront“ verschiebe, bekomme ich zumindest die meldung „file not found“ nicht mehr.

Sehen kann ich die Uhr aber dennoch nicht

Du bist im Programm Ordner, da hast du nix anzufassen.
Deine Daten gehören unter c:/ProgramData/Symcon/WebFront/User
Siehe ‚Wo finde ich was‘
https://www.symcon.de/service/dokumentation/installation/windows/
Michael

Guten Morgen,
danke für den hinweis.

Ich habe das jetzt mal umgesetzt, leider mit dem gleichen Ergebniss.
Die Uhr wird mir nicht Angzeigt.

Ich habe dann mal testweise eine andere .html in diese Struktur kopiert und im WF den Pfad geändert.
Diese .html wird mir dann direkt angezeigt
Somit muss es ja am Skript liegen.

Ich habe das Skript jetzt mal Testweise unter IPS direkt, im skripteditor, getestet.
Keine Fehlermeldungen aber auch dort wird mir nichts angezeigt

Anbei mal das skript

<html>

    <head>
        <title>
          Digitaluhr
        </title>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <script type="text/javascript" src="user/digitaluhr/dhtml.js"></script>
        <link rel="stylesheet" href="_css/webfront.css">

        <!-- script für laufendes Datum/Uhrzeit --------------------------------->
        <!-- ursprung: http://www.html-seminar.de/html-css-php-forum/board40-themenbereiche/board5-javascript/p13040-laufende-uhr/#post13040-->

        <script type="text/javascript">
        function ZeitAnzeigen () {
            var Wochentagname = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
                                        "Donnerstag", "Freitag", "Samstag");
            var Jetzt = new Date();
            var Tag = Jetzt.getDate();
            var Monat = Jetzt.getMonth() + 1;
            var Jahr = Jetzt.getYear();
            if (Jahr < 999)
            Jahr += 1900;
            var Stunden = Jetzt.getHours();
            var Minuten = Jetzt.getMinutes();
            var Sekunden = Jetzt.getSeconds();
            var WoTag = Jetzt.getDay();
            var Vortag = (Tag < 10) ? "0" : "";
            var Vormon = (Monat < 10) ? ".0" : ".";
            var Vorstd = (Stunden < 10) ? "0" : "";
            var Vormin = (Minuten < 10) ? ":0" : ":";
            var Vorsek = (Sekunden < 10) ? ":0" : ":";
            var Datum = Vortag + Tag + Vormon + Monat + "." + Jahr;
            var Datum2 = Wochentagname[WoTag] + " " + Datum;
            var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden;
            var Gesamt = Wochentagname[WoTag] + " " + Datum + ", " + Uhrzeit;
            if (DHTML) {
            //setContent("id", "Uhr", null, Gesamt);
            setContent("id", "Uhr", null, Uhrzeit);
            setContent("id", "Datum2", null, Datum2);
            window.setTimeout("ZeitAnzeigen()", 1000);
            }
        }
        </script>
        <!-- Ende script für laufendes Datum/Uhrzeit --------------------------------->
    </head>

    <body onLoad="window.setTimeout('ZeitAnzeigen()', 1000)">

        <table width=100%; height=100%>
            <tr>
                <td align="center"; valign="bottom">
                    <div id="Datum2" style="font-family:'arial';font-weight:bold; color:grey; font-size: 3em;">
                    </div>
                </td>
            </tr>
            <tr>
                <td align="center"; valign="top">
                    <div id="Uhr" style="font-family:'arial';font-weight:bold; color:grey; font-size: 10em;">
                    </div>
                </td>
            </tr>
        </table>
        
    </body>

</html>  

Wenn es dir nur um die Darstellung aus Beitrag #5 geht, warum schreibst du nicht einfach die Uhrzeit in eine Variable und zeigst die an?

Formatieren kannst du ja problemlos mit HTML und CSS.

Guten Morgen Ralf,

ist das Skript denn nicht genau dafür ausgelegt?
Kann das problem nicht auch diese dhtml.js sein?

Die html wird ja gefunden, nur nicht angezeigt

jein, eher nein :wink:

Dein HTML ist eine vollwertige, externe Seite, die eigenständig vermutlich funktioniert.

Symcon entfernt ein paar Teile, die nicht mehrfach im HTML vorkommen dürfen, also z.B.

<html>, ...

und vermutlich entscheidend

 <body onLoad="window.setTimeout('ZeitAnzeigen()', 1000)">

body hat bereits die Webfront Seite selber, womit die Aktualisierung vermutlich nicht gestartet wird. Die externe Datei wird vermutlich sogar gelesen.

ja wenn ich den gesamten pfad der html im browser aufrufe wird sie angezeigt.

Wie müsste ich denn jetzt die html ändern um sie für IPS lauffähig zu bekommen?

Ich denke, dass wirst du nicht zum Laufen bekommen, da der Start des Javascripts im Webfront nicht funktioniert.

Danke für die infos…
Schade…
In einem anderen Thread gibt es eine Lösung ohne Java.
Diese habe ich grad mal Probiert…Klappt…

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function updateTime() {
	var date = new Date();
	var stunden = date.getHours();
	var minuten = date.getMinutes();
  	var sekunden = date.getSeconds();
   var vor_std = (stunden < 10) ? "0" : "";
   var vor_min = (minuten < 10) ? "0" : "";
   var vor_sek = (sekunden < 10) ? "0" : "";

	var tag = date.getDate();
	var monatDesJahres = date.getMonth();
	var jahr = date.getFullYear();
	var tagInWoche = date.getDay();
	var wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
	var monat = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");


	var datum = wochentag[tagInWoche] + ", " + tag + ". " + monat[monatDesJahres] + " " + jahr + " " + stunden + ":" + minuten;
  	var zeit = vor_std + stunden + ":" + vor_min + minuten + ":" + vor_sek + sekunden;

	document.getElementById("time").innerHTML = zeit;
	setTimeout(updateTime, 1000);
}

window.addEventListener("load", updateTime);

</script>
</head>
<body>

	<div id="time" style="font-weight:bold; font-size: 15em;">
	</div>

</body>
</html>

Mal sehen ob ich es hin bekomme beide Skripte so zu kombinieren das ich die Gleiche Anzeige erhalte wie im Beispiel #5

Das wird auch nicht wirklich funktionieren, da Javascript üblicherweise im „header“ geladen wird.

Müssen es unbedingt auch Sekunden sein? Dann müsste ein Script sekündlich laufen, was nicht so schön ist.

ne sek sind nicht notwendig
aber datum, tag etc wären toll

Folgendes nutze ich, hier leicht abgewandelt, du musst bei SetValueString die ID einer String Variable eintragen und das Script per TimerEvent alle 60 Sekunden aufrufen.

Den Feiertagsteil kannst du auch rauswerfen, Finetuning mit CSS in der Zeile bei $content.


<?php

$currenttime = date("d.m.Y") . " " . date("H:i");
$dow = date("w");
switch($dow) {
    case "0" :
      $day = "So";
      break;
    case "1" :
      $day = "Mo";
      break;
    case "2" :
      $day = "Di";
      break;
    case "3" :
      $day = "Mi";
      break;
    case "4" :
      $day = "Do";
      break;
    case "5" :
      $day = "Fr";
      break;
    case "6" :
      $day = "Sa";
      break;
}
$heuteD = date("d");
$heuteM = date("m");
$heuteY = date("Y");
$heute = mktime( 0, 0, 0, $heuteM, $heuteD, $heuteY );
$feiertag = array_search($heute, getGermanPublicHolidays(date("Y",$heute)));
if (!$feiertag)
	$feiertag = "";

$content = '<p>'.$feiertag.'</p><p>'.$day.'</p><p style="font-size: 3em;">'.$currenttime.'</p>';
SetValueString(24356, $content);


function getGermanPublicHolidays($year = null) {
	if(!$easter = easter_date($year)) return false;
	else {
		$holidays['Neujahr']             = mktime(0,0,0,1,1,$year);
//		$holidays['Rosenmontag']         = strtotime("-48 days", $easter);
		$holidays['Tag der Arbeit']      = mktime(0,0,0,5,1,$year);
		$holidays['Karfreitag']          = strtotime("-2 days", $easter);
		$holidays['Ostern']              = $easter;
		$holidays['Ostersonntag']        = $easter;
		$holidays['Ostermontag']         = strtotime("+1 day", $easter);
		$holidays['Himmelfahrt']         = strtotime("+39 days", $easter);
		$holidays['Pfingsten']           = strtotime("+49 days", $easter);
		$holidays['Pfingstsonntag']      = strtotime("+49 days", $easter);
		$holidays['Pfingstmontag']       = strtotime("+50 days", $easter);
//		$holidays['Fronleichnam']        = strtotime("+60 days", $easter);
		$holidays['Tag der Einheit']     = mktime(0,0,0,10,3,$year);
		$holidays['Reformationstag']     = mktime(0,0,0,10,31,$year);
		$holidays['Heiligabend']         = mktime(0,0,0,12,24,$year);
		$holidays['1. Weihnachtsfeiertag'] = mktime(0,0,0,12,25,$year);
		$holidays['2. Weihnachtsfeiertag'] = mktime(0,0,0,12,26,$year);
		$holidays['Silvester']           = mktime(0,0,0,12,31,$year);
		$holidays['1. Advent']           = strtotime("1 sunday", mktime(0,0,0,11,26,$year));
		$holidays['2. Advent']           = strtotime("2 sunday", mktime(0,0,0,11,26,$year));
		$holidays['3. Advent']           = strtotime("3 sunday", mktime(0,0,0,11,26,$year));
		$holidays['4. Advent']           = strtotime("4 sunday", mktime(0,0,0,11,26,$year));
		return $holidays;
	}
}

meine Digital-Uhr läuft nur mit einem Skript und 11x .png und lässt sich super aus der Entfernung lesen

2021-01-21 (2).png

Hätte auch noch eine Inspiration, läuft bei mir als Screensaver im Idle Widget :wink:

Sorry fürs OT
Heiko

Hast du ein Script und die Bilder greifbar?

Gesendet von meinem SM-T860 mit Tapatalk

Das Skript kann das Datum ja ausgeben.
Dazu muss ich nur .innerHTML=Zeit; in Datum ändern

Ich habe jetzt schon einiges getestet aber ich bekomme entweder die Zeit oder das Datum angezeigt.
Ist beides irgendwie möglich ohne 2 Skripte und 2 Externe Seiten einfügen zu müssen?

Hast du ein Script und die Bilder greifbar?

Skript ja, Bilder nein, denn die unterliegen ja dem copyright. kannst du dir aber aus Colibrico ziehen.
Varis müssen manuell angelegt werden.
Läuft jetzt schon seit Jahren und ist nur 2x „stehen geblieben“ weil Webfront sich aufgehängt hat
gerade gesehn: die IPS-Pfade werden unterdrückt, deshalb Vari-IDs und Typ im Screenshot
Die Ergebnis-Vari kann dann irgendwo eingebaut werden

<?
// Digital Uhrzeit im Webfront

 // Stunde:Minute
	 $timeH = date("H");
	 $minutes = date("i");
	 setvalue(38746,$timeH);
	 setvalue(22328,$minutes);
	 $temp	=	getvalue(22328);
	 $min	=	 substr($temp,1);
	 $max	=	 substr($temp,0,1);
	 setvalue(42485,$max);
	 setvalue(29793,$min);
	 $ergebnis	=	35315;
	 $vorne		=	53922;
	 $hinten	=	33138;
 
 //PNGs kommen aus Colibrico und werden irgendwo deponiert, ggf Pfad anpassen
 
 // Digits abholen
 $dot		= '<img src="\\user\\icons\\digits\\doppeldot.png">';
 $null		= '<img src="\\user\\icons\\digits\\0.png">';
 $eins		= '<img src="\\user\\icons\\digits\\1.png">';
 $zwei		= '<img src="\\user\\icons\\digits\\2.png">';
 $drei		= '<img src="\\user\\icons\\digits\\3.png">';
 $vier		= '<img src="\\user\\icons\\digits\\4.png">';
 $fünf		= '<img src="\\user\\icons\\digits\\5.png">';
 $sechs		= '<img src="\\user\\icons\\digits\\6.png">';
 $sieben	= '<img src="\\user\\icons\\digits\\7.png">';
 $acht		= '<img src="\\user\\icons\\digits\\8.png">';
 $neun		= '<img src="\\user\\icons\\digits\\9.png">';

 
 // Digits zusammensetzen
 
   switch ($timeH) // hier die Stunden
  	{
	case 0: 
    	setvalue($ergebnis, $null.$null);      
	break; 
	 
	case 1: 
    	setvalue($ergebnis, $null.$eins);      
	break;
				 
	case 2: 
    	setvalue($ergebnis, $null.$zwei);      
	break;
									 
	case 3: 
    	setvalue($ergebnis, $null.$drei);      
	break;

	case 4: 
    	setvalue($ergebnis, $null.$vier);      
	break;
				 
	case 5: 
    	setvalue($ergebnis, $null.$fünf);      
	break;
				 
	case 6: 
    	setvalue($ergebnis, $null.$sechs);      
	break;
									 
	case 7: 
    	setvalue($ergebnis, $null.$sieben);      
	break;
		
	case 8: 
    	setvalue($ergebnis, $null.$acht);      
	break;
				 
	case 9: 
    	setvalue($ergebnis, $null.$neun);      
	break;
									 
//------------------------------------------------------------------------

	case 10: 
    	setvalue($ergebnis, $eins.$null);      
	break; 
	 
	case 11: 
    	setvalue($ergebnis, $eins.$eins);      
	break;
				 
	case 12: 
    	setvalue($ergebnis, $eins.$zwei);      
	break;
									 
	case 13: 
    	setvalue($ergebnis, $eins.$drei);      
	break;

	case 14: 
    	setvalue($ergebnis, $eins.$vier);      
	break;
				 
	case 15: 
    	setvalue($ergebnis, $eins.$fünf);      
	break;
				 
	case 16: 
    	setvalue($ergebnis, $eins.$sechs);      
	break;
									 
	case 17: 
    	setvalue($ergebnis, $eins.$sieben);      
	break;
		
	case 18: 
    	setvalue($ergebnis, $eins.$acht);      
	break;
				 
	case 19: 
    	setvalue($ergebnis, $eins.$neun);      
	break;

//------------------------------------------------------------------------
									 
	case 20: 
    	setvalue($ergebnis, $zwei.$null);      
	break;  
	case 21: 
    	setvalue($ergebnis, $zwei.$eins);      
	break;
				 
	case 22: 
    	setvalue($ergebnis, $zwei.$zwei);      
	break;
									 
	case 23: 
    	setvalue($ergebnis, $zwei.$drei);      
	break;

//------------------------------------------------------------------------

	} 


   switch ($max) // 10er Minuten (min_vorne)
  	{
	case 0: 
    	setvalue($vorne, $null);      
	break; 
	 
	case 1: 
    	setvalue($vorne, $eins);    
	break;
				 
	case 2: 
    	setvalue($vorne, $zwei);
	break;
									 
	case 3: 
    	setvalue($vorne, $drei);     
	break;

	case 4: 
    	setvalue($vorne, $vier);      
	break;
				 
	case 5: 
    	setvalue($vorne, $fünf);    
	break;
 }
 


   switch ($min) // 1er Minuten (min_hinten)
  	{
	case 0: 
    	setvalue($hinten, $null);      
	break; 
	 
	case 1: 
    	setvalue($hinten, $eins);    
	break;
				 
	case 2: 
    	setvalue($hinten, $zwei);
	break;
									 
	case 3: 
    	setvalue($hinten, $drei);     
	break;

	case 4: 
    	setvalue($hinten, $vier);      
	break;
				 
	case 5: 
    	setvalue($hinten, $fünf);    
	break;
	
	case 6: 
    	setvalue($hinten, $sechs);  
	break;

	case 7: 
    	setvalue($hinten, $sieben);      
	break;
				 
	case 8: 
    	setvalue($hinten, $acht);    
	break;
	
	case 9: 
    	setvalue($hinten, $neun);  
	break;	
	
 }

$temp1	=	getvalue(35315);
$temp2	=	getvalue(53922).getvalue(33138);

setvalue(11044, "<center>".$temp1.$dot.$temp2); 

Hi, ist das im IPS?

Gruß

Die Suche liefert
Wie externe Seite (Beispiel: Wordclock) im Webfront automatisch skalieren?

oder besser dort Beitrag #9 :wink:

Perfekt, wusste selber schon gar nicht mehr ob ich das veröffentlicht hatte :wink:

Gruß Heiko