Hintergrundbild automatisch neu laden

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,187
Punkte für Reaktionen
0
Punkte
36
Hallo zusammen,

ich habe auf meinem Snom D385 ein URL zu einem PHP-Script als Hintergrundbild hinterlegt, da ein PNG-Bild mit aktuellen Informationen als Text kombiniert. Im Browser wird das Bild alle 5 Sekunden neu generiert und man sieht den aktualisierten Text. Das Snom zeigt aber nur den Inhalt an, der zum Zeitpunk des ersten Ladens aktuell war, den Refesh im Script bekommt er nicht mit. Kann man das irgendwo einstellen, dass das Snom das Bild selbst alle n Sekunden neu lädt/aktualisiert?

Gruß Patrick
 

Theo Tintensich

Aktives Mitglied
Mitglied seit
10 Mrz 2008
Beiträge
1,745
Punkte für Reaktionen
48
Punkte
48

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,574
Punkte für Reaktionen
332
Punkte
83
Moinsen


Was macht das PHP Skript?
Wenn das PHP dem SNOM eine Minibrowser XML präsentiert, dann sollte dies ( Aktualisierungen ) über das "fetch" Tag passieren.

Hab aber keine Ahnung was das PHP Skript macht.
Scheint ja ein grosses Geheimnis zu sein.
 

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,187
Punkte für Reaktionen
0
Punkte
36
Das Script ist kein Geheimnis, in dem Beispiel schreibt es nur das aktuelle Datum/Uhrzeit auf das Bild und liefert quasi ein JPG zurück .. die URL zum Script hab ich Snom unter Hintergrundbild-URL hinterlegt und beim Neustart wird auch das Bild einmalig geladen, allerdings nicht aktualisiert. An der Stelle nimmt er auch keine Datei für den integrierten XML-Browser, hatte das schon mit der Snom Beispiel-URL http://docs.snom.io/xml_minibrowser/examples/xml/SnomIPPhoneImage.xml probiert

Code:
<?php
/*
image.php
*/
header("Refresh:5");
header("Content-type: image/jpeg");
$imgPath = 'vorlage.jpg';
$image = imagecreatefromjpeg($imgPath); (durch Tippfehler stand dort imagecreatefrompng, hat aber nichts mit dem Refresh zu tun)
$color = imagecolorallocate($image, 255, 255, 255);
$datum = date("d.m.Y");
$uhrzeit = date("H:i:s");
$string = $datum . " " . $uhrzeit;
$fontSize = 50;
$x = 175;
$y = 155;
imagestring($image, $fontSize, $x, $y, $string, $color);
imagejpeg($image);
?>
 
Zuletzt bearbeitet:

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,574
Punkte für Reaktionen
332
Punkte
83
Gibt Fehlermeldungen aus...
( php image.php )
Code:
php image.php
PHP Warning:  imagecreatefrompng(): 'earth1.jpg' is not a valid PNG file in /UNIONFS/var/www/html/image.php on line 8
PHP Warning:  imagecolorallocate() expects parameter 1 to be resource, bool given in /UNIONFS/var/www/html/image.php on line 9
PHP Warning:  imagestring() expects parameter 1 to be resource, bool given in /UNIONFS/var/www/html/image.php on line 16
PHP Warning:  imagejpeg() expects parameter 1 to be resource, bool given in /UNIONFS/var/www/html/image.php on line 17
Habs mal nach Gutdünken geändert...
PHP:
<?php
/*
image.php
*/
header("Refresh:5");
header("Content-type: image/jpg");
$imgPath = 'sphere.png';
$image = imagecreatefrompng($imgPath);
$color = imagecolorallocate($image, 255, 255, 255);
$datum = date("d.m.Y");
$uhrzeit = date("H:i:s");
$string = $datum . " " . $uhrzeit;
$fontSize = 50;
$x = 175;
$y = 155;
imagestring($image, $fontSize, $x, $y, $string, $color);
return imagejpeg($image);
?>
( Input muss *.png sein - das return macht deutlicher was geliefert wird )

Aber das Problem ist...
Das PHP generiert ein Bild, das SNOM zeigt das Bild.
Denkfehler: Das Bild ist keine HTML
( HTML Header werden nicht ausgewertet )
Deswegen: Gibt es auch keinen: Refresh: 5

Normaler Webbrowser beachtet Header obwohl nur ein Bild geladen wurde und keine HTML...
Bildschirmfoto vom 2020-07-17 14-08-41.png
( Chrome "bastelt" selbständig/automatisch* das HTML um das JPG )

Minibrowser XML ist und bleibt XML und kann an der Stelle wo du die PHP eingetragen hast kein Bild liefern.
XML, oder PHP die XML ausliefert, gehört entweder als Event ( siehe Action Script ) oder als Taste ( Typ Action Script ) eingetragen.
Mit <fetch mil="5000" >http://xmlserver/bildzeit.xml</fetch> oder <fetch mil="5000" >http://xmlserver/bildzeit.php</fetch> wenn die PHP XML ausliefert, soll sie sich dann alle 5000 millisekunden selber aufrufen.
Das wäre das Minibrowser XML Äquivalent zu: Refresh: 5


* Wegen header("content-type: image/jpg");
Als unformatierter Text: header("content-type: text/plain");
 
Zuletzt bearbeitet:

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,187
Punkte für Reaktionen
0
Punkte
36
Ja da war ein Tippfehler (war eine ältere Kopie des Scripts was ich von JPG nach PNG geändert hatte ..
sollte $image = imagecreatefromjpeg($imgPath); statt $image = imagecreatefrompng($imgPath); lauten

Ergebnis ist ein Bild .. und das ist leider das Problem .. vermutlich wird sich der Refesh nicht lösen lassen
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,574
Punkte für Reaktionen
332
Punkte
83
Nimm mal deine Beispiel URL als Grundgerüst.
Leg es auf dem Webbrowser ab.
Dann Taste belegen mit ( Typ Action Script )
Bau das <fetch> ein bis es passt.
Dann kannst du mit PHP und "return" als String die XML mit PHP ausliefern lassen.
( Taste mit *.php belegen nicht vergessen )
Danach ( Erfolgserlebnis ;) ) kannst du beginnen vor dem "return" dein Bild letztendlich als Base64 in einer Variable abzulegen und innerhalb des "return" Strings einzubauen.
Stichwort: Verkettungsoperator
Pass aber beim Quoten auf.
PHP:
return 'Mit Hochkommata angefangen braucht es keine Maske für die "Gänsefüsse" und ist ein "wenig" Stressfreier. Aber die Hochkommata im Text selber müssen \'so\' maskiert werden und umgekehrt.'
 
Zuletzt bearbeitet:

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,187
Punkte für Reaktionen
0
Punkte
36
Über eine Action-URL funktioniert das, wenn ich es auf eine Taste lege

Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneImageFile>
<LocationX>00</LocationX>
<LocationY>00</LocationY>
<URL>snom.php</URL>
<fetch mil="200">snom.xml</fetch>
</SnomIPPhoneImageFile>
-- Zusammenführung Doppelpost gemäß Boardregeln by stoney

@koyaanisqatsi Problem ist hier nur, dass er bei Hintergrundbild-URL nur ein PNG und kein XML aktzeptiert bzw. ausführt, andere Idee war das ganze im der XML-Ruhebildschirm-URL des SIP-Accounts zu hinterlegen. Das Idle Screen XML hat aber wirder kein Refresh
 
Zuletzt bearbeitet von einem Moderator:

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,574
Punkte für Reaktionen
332
Punkte
83
Mit anderen Worten...
Es muss also eine XML her, die das Setting für das Hintergrundbild "ändert".
Ja, auch das ist möglich, aber dein Webserver braucht dafür die Erlaubnis.
Beispiel für die Änderung der Settings ( Deutsch/Englisch )
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneText>
<if condition="$(lines:connected)==0">
<if condition="$(set:language)==Deutsch">
<fetch mil="3000">snom://mb_exit#set:language=English</fetch>
<led number="1">off</led>
<text>$(set:language) -> English</text>
</if>
<if condition="$(set:language)==English">
<fetch mil="3000">snom://mb_exit#set:language=Deutsch</fetch>
<led number="1" color="orange">on</led>
<text>$(set:language) -> Deutsch</text>
</if>
</if>
<else>
<fetch mil="3000">snom://mb_exit</fetch>
<led number="1" color="orange">blinkfast</led>
<text>Line BUSY</text>
</else>
</SnomIPPhoneText>
Funktioniert wie ein FlippFlopp Schalter...
Wenn Deutsch dann Englisch ( LED aus )
Wenn Englisch dann Deutsch ( LED an )
Außer es wird gerade telefoniert.
Dann wird nur mit "Line BUSY" für 3s im Display und einer hektisch blinkenden LED genervt.
:p

Siehe für die vorherige Erlaubnis...
https://service.snom.com/display/wiki/mb_trusted_hosts

Wie das Setting für das Hintergrundbild heisst findest du bestimmt alleine raus, oder?
 
Zuletzt bearbeitet:

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,187
Punkte für Reaktionen
0
Punkte
36
Merci :)
 

Zurzeit aktive Besucher

3CX

Statistik des Forums

Themen
235,914
Beiträge
2,067,827
Mitglieder
356,957
Neuestes Mitglied
IBimsShweit