IPS Sm@rtView

Hallo zusammen,

ich möchte Euch mein kleines Projekt „IPS-Sm@rtview“ vorstellen.
Vielleicht kann es ja der eine oder andere auch gebrauchen.

Die SmartView-Entwicklung entstand durch den Wunsch nach einer einfachen und unabhängigen Statusanzeige beim Fernsehen. (Unabhängig von Mediaportal-Plugins und nativen IPS-Modulen)

Beim Fernsehen sollten IPS-getriggerte Statusmeldungen dezent dargestellt werden. Zudem sollte es möglich sein, ein beliebiges Browserfenster im TV-Bild einzublenden. (z.B. Webcam der Haustür bei Bewegung, Webfront-Instanz etc.)
Mittlerweile hat SmartView auch auf den anderen Rechnern im Haushalt Einzug gehalten. Im Zuge der normalen Desktop-Nutzung wurde auch die Funktionalität erweitert, um permanent ein IPS-Browserfenster in einer auswählbaren Bildschirm-Ecke offen zu halten oder für die Touchscreens einen echten Vollbildmodus zu ermöglichen.

Die Software ist für den Eigenbedarf entwickelt und wird kostenlos zur Verfügung gestellt.
Jeder ist für den Einsatz selbst verantwortlich – für Schäden wird keinerlei Haftung übernommen.

Funktionen:

[ul]
[li]Browser auf Basis von Chrome (Chromium Embedded Framework (CEF))[/li][li]Browserfenster mit eigener URL (URLmin) in frei wählbarer Ecke (Corner)[/li][li]Browserfenster mit eigener URL (URLmax) als Vollbild (Fullscreen)[/li][li]Globales toggeln zwischen URLmin/URLmax/Tray über Hotkey ALT+T[/li][li]IP-Symcon String-Variable steuert SmartView[/li]- Nachrichtenfenster einblenden

  • Browserfenster einblenden
    [li]StayOnTop (z.B. für Nachrichteneinblendung im TV-Programm)[/li][li]Klick auf Nachrichtenfenster öffnet Browserfenster URLmin[/li][li]Multimonitor-Unterstützung für Anzeigeauswahl Monitor-1 oder Monitor-2[/li][li]Auswahl der Anzeigeecke für Message- und Browserfenster[/li][/ul]

Credits:

All trademarks and names mentioned herein belong to their respective owners.

Vielen Dank an Werner (wgreipl) für die Tests und die nützlichen Verbesserungsvorschläge im Vorfeld der Veröffentlichung.

Historie:


V0.11.5	06.09.2016	IPS SDK ersetzt durch Indy idHttp JSON
V0.11.2	24.04.2014	Skin-Auswahl Message-Fenster Black/White
			Font-Auswahl für Message-Fenster
			Bugfix: Message Fadeout
V0.11.1	07.04.2014	Internet-Explorer Emulation-Mode einstellbar. MSDN-Info
			Für IPS umstellen auf „IE11 default mode“ (Standardeinstellung ist IE8.) und Smartview neu starten
			Bugfix: Smartview blockiert Window-Shutdow
V0.11.0	22.02.2014	Chromium ersetzt durch Internet-Explorer
			Entfernt: Klick auf Message-Fenster öffnet Browser Min  Click schließt jetzt das Message-Fenster
			Bugfix: Neue Message wenn Messagefenster bereits offen ist.
			Workaround für videostream.cgi
			Debug-Fenster um empfangende Messages zu kontrollieren (im Kontext-Menü des Tray-Icons)
V0.10.0	16.12.2013	Aktualisiert auf Chromium V29.0 Build 1547
			IPS Json SDK (Achtung: Polling-Zeit und Zugangsdaten in den Settings einstellen)
			Entfernt: SOAP-Verbindung
V0.9.5	04.06.2013	Aktualisiert auf Chromium V25.0 Build 1364 
			Fadegeschwindigkeit einstellbar
			Listener auf IPS Message Browser (Variablen Polling entfällt)
V0.9.0	23.10.2012	Aktualisiert auf Chromium V18.0 Build 1025 | CEF rev. 607
V0.8.1	30.04.2012	Browserfenster nach IPS-Command mit frei wählbarer Ecke (Einstellbar in den Settings)
			Monitor-WakeUp nach IPS-Command (Einstellbar in den Settings)
			Auswahl „Ignoriere IPS-Commands“ (Rechter Mausklick auf Tray-Icon)
			Ignoriere IPS-Commands wenn bestimmte EXE-Datei(en) ausgeführt werden. (z.B. POWERPNT.EXE) 
			Kleinere Bugfixes (Windows7 Standby Query / Browser CleanUp nach IPS-Command , Workarea… )
V0.7.0	13.04.2012	Browse-Kommando öffnet zweite Chrome-Instanz (Bisheriges Browserfenster bleibt unberührt)
			Browse-Fenster mit Fade-In / Fade-Out - Effekt
V0.6.1	21.03.2012	Aktualisiert auf Chrome V17.0 Build 963 | CEF rev. 439
    	HTTP-Accept-Language-Header und Locale auf „de-DE,de“
		Anwendungsstart löscht Browser-Cache (Einstellbar in den Settings)
		Es werden nur noch aktuelle Commands ausgeführt (Variablen-Update innerhalb der letzten 5 Minuten)
V0.5.0	20.03.2012	Chromium-Embedded Erweiterungen | Cache von internem Memory auf Directory umgestellt
                  		Plugin-Unterstützung (JAVA-Applets /PDF etc.)
V0.4.0	19.03.2012	Multimonitor-Unterstützung (Auswahl ob Anzeige auf Monitor-1 oder Monitor-2)
			Auswahl der Anzeigeecke für Message- und Browserfenster
			Standard Info-Icon des Message-Fensters änderbar (info.png überschreiben)
V0.3.1	14.03.2012	Hardcoded-Einstellungen durch Parametrierung ersetzt (für Community-Einsatz)
V0.3.0	12.02.2012	Einfacher IPS-Zugriff für Desktop-Rechner mit URLmin URLmax
V0.2.0	18.01.2012	Command für Browserfenster
V0.1.0	27.11.2011	Grundversion mit Command für Nachrichtenfenster


Download:
Bitte die Lizenzbedingungen und Hinweise in der Doku beachten.

[ul]
[li]Dokumentation[/li][li]IPS-SmartView V0.6.1.72[/li][li]IPS-SmartView V0.7.0.73[/li][li]IPS-SmartView V0.11.5.126[/li][/ul]

Für ein Update nur die smartview.exe austauschen oder vorher die settings.ini sichern. :wink:

Viel Spaß!

Schöne Grüße
Roland

message.jpg

Installation:

[ul]
[li]IP-Symcon String-Variable anlegen[/li][li]SmartView-Dateien entpacken[/li][li]SmartView-Einstellungen bearbeiten[/li](Rechter Mausklick auf SmartView Tray-Icon und Settings auswählen oder direkt die settings.ini)
[li]SmartView (neu-)starten[/li][li]IP-Symcon String-Variable mit Kommando füllen[/li][/ul]

IPS-Einbindung:
SmartView kann über eine IP-Symcon String-Variable gesteuert werden.
Dazu prüft SmartView über ein einstellbares Intervall (Standard 2s) die IPS-Variable auf Änderung und führt den entsprechenden Befehl aus.
Die freie Wahl der Variablen-ID ermöglicht unterschiedliche Anzeigen auf den Clients. (varID1 für Büro, varID2 für Wohnzimmer etc.)

Aufbau der IPS-Syntax:

<?
//ID der Stringvariable
$varID = 12345;  

//Kommando  
$cmd="cmd=msg;w=250;h=100;dur=5;img=\\\server\IP-Symcon\webfront\user\icons\\fixed\info2.png;title=Test-Nachricht;"
 
//Variable schreiben
SetValueString($varID,$cmd);
?>

Beschreibung der IPS Command-Funktionen:
Wichtig: Jeder Parameter muss durch ein Semikolon abgeschlossen werden!

1. Message

msg öffnet ein Nachrichtenfenster (Referenzpunkt ist die ausgewählte Ecke der Settings)

$cmd="cmd=msg;w=250;h=100;dur=5;font=14;img=\\\server\IP-Symcon\webfront\user\icons\\fixed\info2.png;text=Test-Nachricht;"
//oder
$cmd="cmd=msg;dur=5;text=Test-Nachricht;"

cmd 	Kommando (msg = Message)
w 	Fensterbreite 	(Ohne Parameterangabe gilt die Standard-Einstellung der Settings.ini)
h 	Fensterhöhe	(Ohne Parameterangabe gilt die Standard-Einstellung der Settings.ini)
font	Schriftgröße	(Ohne Parameterangabe gilt die Standard-Einstellung der Settings.ini)
dur	Anzeigedauer in s (Ohne Parameterangabe gilt Standard-Anzeigedauer von 8s)
img	Absolut-Pfad zur Grafik (Ohne img-Parameter wird ein Standard Info-Icon angezeigt)
text	Anzeigetext

2. Browse

browse öffnet ein Browserfenster (Referenzpunkt ist die ausgewählte Ecke der Settings)

$cmd="cmd=browse;w=250;h=100;dur=10;url=http://www.google.de;";

cmd	Kommando (browse = Browseranzeige)
w 	Fensterbreite	(Ohne Parameterangabe gilt die Standard-Einstellung der Settings.ini)
h 	Fensterhöhe	(Ohne Parameterangabe gilt die Standard-Einstellung der Settings.ini)
dur	Anzeigedauer in s (ohne dur= bleibt das Fenster geöffnet)
url	URL für Browserfenster

Wird keine Höhe, Breite oder Schriftgröße definiert, dann gelten die Standard-Einstellungen der Settings.ini. Dies ist hilfreich um auf unterschiedlichen Clients (46“ Fernseher oder 17“ Monitor) angepasste Anzeigegrößen zu verwenden ohne explizit für jeden Client andere Parameter über IPS zu deklarieren.

Wow, sieht super aus !

Vielleicht sollten sich critical_limit mit seinem MyHome for Mac und Du zusammentun, der Ansatz ist ja nahezu der gleiche.

Tolle Geschichte ! :slight_smile: :loveips:

Sieht wirklich Klasse aus. Wenn jetzt noch was für VDR käme wäre das perfekt.

…und dann alles auf Qt portieren. Dann wäre auch den Linux Usern geholfen.

Kronos, yavdr hat nen Browser onboard. Da lässt sich vielleicht was basteln…

Gruss, Michael

Auch wenn der Thread damit noch etwas weiter abdriftet. Konkret ginge es um Darstellung auf einem VDR 1.7 basierenden System z.b der Reelbox. Das was der VDR da on Bord hat ist entweder sehr bescheiden oder ich finde nicht das was ich suche.

Sieht wirklich gut aus. Leider funktioniert es nicht mit dem Windows Media Center zusammen.

Hallo Roland,

danke für das tolle Programm!

Mir ist aufgefallen, dass Meldungen mit gleichem Inhalt nicht 2 x hintereinander angzeigt werden. Offensichtlich überprüfst Du die Variablenänderung, nicht die Aktualisierung. Ist das korrekt ? Dadurch kann es vorkommen, dass eine Meldung gleichen Inhalts nicht mehr angezeigt wird, obwohl sie eigentlich relevant ist. Kann man das irgendwo einstellen oder hab’ ich was falsch gemacht ?

Gruß
Walter

Hallo Sven,

irgendwie hat das Windows Mediacenter so seine Eigenheiten. Hatte vor einiger Zeit auch schon mal mit Message-Tools wie Snarl versucht das Mediacenter-Fenster zu überblenden. Dies klappte auch nicht. Ich werde mir das bei Gelegenheit nochmal ansehen.

Hallo Walter,

Du hast recht. Ich prüfe momentan auf unterschiedlichen Inhalt, weil dies fürs Erste schneller zu realisieren war und ich keine Probleme mit unterschiedlichen Zeiten auf den Clients habe.

Als kleinen Workaround kannst Du eine eindeutige ID mit in den String packen.
So in der Art:

$now = time();
$cmd = "cmd=msg;w=250;h=100;dur=5;font=14;img=\\\server\IP-Symcon\webfront\user\icons\\fixed\info2.png;text=Test-Nachricht;id=$now;" 

Schöne Grüße
Roland

Roland,

vielleicht noch eine Idee für Sm@rtView von meiner Seite.

Nach einem Aufruf von

$cmd="cmd=browse;w=250;h=100;dur=10;url=http://www.google.de;"; 

Schließt sich das Corner- bzw. Fullscreenfenster, was ja vielleicht noch in Ordnung ist, aber könnte man nach Ablauf von Duration den alten Zustand wieder herstellen?

Hallo Werner,

hab mir darüber auch schon Gedanken gemacht und finde Deine Idee auch sinnvoll.
Bin aber noch am überlegen, ob man nicht über IPS entsprechende Commands für die Corner- und Fullscreen-Ansicht geben kann (evtl. auch Fenster minimieren) und damit etwas flexibler wäre.
So öffnet „browse“ wie bisher das Fenster in der Ecke und „browseFs“ öffnet die URL als Fullscreen. Damit könnte man dann beliebig zwischen URL’s und den Ansichten wechseln.

Möglicherweise sollte man auch beides kombinieren.
Ohne Angabe einer Dauer: Browserfenster bleibt in der aktuellen Ansicht
Mit Angabe einer Dauer: Browserfenster wechselt in den vorherigen Zustand

Schöne Grüße
Roland

Good Idea.

Ich teste gerne

Hallo Werner,

hab gestern noch etwas mit verschiedenen Einstellungen experimentiert.
Vielleicht wäre es sinnvoller, wenn beim Command „browse“ eine zweite unabhängige Instanz von Chrome eingeblendet wird. (Analog zum Message-Fenster)
Damit hätten wir keine störenden Wechsel, falls der Browser z.B. im Fullscreen ist und auch das Handling über IPS bleibt deutlich einfacher.

Spricht da von Deiner Seite aus irgendetwas dagegen?

Schöne Grüße
Roland

Hallo,
welcher Port muss denn in der Firewall geöffnet werden ?

Gruß epogo / Stephan

Hallo Stephan,

die Kommunikation erfolgt wie bei der Console über den Port 3773.

Schöne Grüße
Roland

Hallo Roland,

der Beitrag ist an mir vorbei geflogen :rolleyes:

Gerne kann beim „browse“ ein extra Fenster aufgehen. Finde die Idee sogar recht interessant.

Hallo Werner,

ist doch kein Thema. Hab die Änderung auch schon grundsätzlich eingebunden.
Bin jedoch seit letzter Woche unterwegs - die aktuelle Version gibt es dann bis zum Wochenende.

Schöne Grüße
Roland

Danke ! Funzt… :slight_smile:

Hallo zusammen,

hier die neue Version:
IPS-SmartView V0.7.0.73


V0.7.0	13.04.2012	Browse-Kommando öffnet zweite Chrome-Instanz (Bisheriges Browserfenster bleibt unberührt) 
                  	Browse-Fenster mit FadeIn / FadeOut - Effekt
V0.6.1	21.03.2012	Aktualisiert auf Chrome V17.0 Build 963 | CEF rev. 439
                  	HTTP-Accept-Language-Header und Locale auf „de-DE,de“
                  	Anwendungsstart löscht Browser-Cache (Einstellbar in den Settings)
V0.5.0	20.03.2012	Chromium-Embedded Erweiterungen | Cache von RAM auf File umgestellt
                  	Plugin-Unterstützung (JAVA-Applets /PDF etc.)
V0.4.0	19.03.2012	Multimonitor-Unterstützung (Auswahl ob Anzeige auf Monitor-1 oder Monitor-2)
                  	Auswahl der Anzeigeecke für Message- und Browserfenster
                  	Standard Info-Icon des Message-Fensters änderbar (info.png überschreiben)
V0.3.1	14.03.2012	Hardcoded-Einstellungen durch Parametrierung ersetzt (für Community-Einsatz)
V0.3.0	12.02.2012	Einfacher IPS-Zugriff für Desktop-Rechner mit URLmin URLmax
V0.2.0	18.01.2012	Command für Browserfenster
V0.1.0	27.11.2011	Grundversion mit Command für Nachrichtenfenster

Für ein Update von V0.6.1 auf V0.7.0 nur die smartview.exe austauschen oder vorher die settings.ini sichern. :wink:

Schöne Grüße
Roland

Hallo Roland,

wieder einmal ein super Job.

Hätte mal wieder einen Vorschlag.

Das Browse-Fenster das über das browse-Commando aufgerufen wird eine wahlfreie Ecke verpassen.

Ansonsten bleibt mir nur ein Danke.