Zur besten Antwort gewählt
Okt 01, 2019 - 19:44
Falls Du später etwas nutzten willst wie von Dir beschrieben Geräte und Seitenerkennung mit Umleitung auf eine spezifische Seite brauchst Du zwingend für jedes Gerät eine eigene NEO Remote. Eine Seitenumleitung mit Geräteerkennung erfolgt über einen Push an die NEO Remote. Dieser ist aber immer NEO Remote spezifisch, wenn daher mehrere Geräte die gleiche NEO Remote nutzten würden, würde das bedeuten, dass bei einem getriggerten Seitenwechsel auch alle offenen NEO Remotes auf sämtlichen Geräten die Seite wechseln, was meist nicht gewünscht ist, dies soll in der Regel ja Geräte spezifisch stattfinden.
Grundsätzlich musst Du so was wie Makros, Statusregeln oder auch die Gerätedatenbank nicht synchronisieren, denn diese gelten für alle NEO Remotes, die Du unter einem Account anlegst. Daher stehen Dir z.B. so was wie Makros dann auch in jeder neu erstellen Remote zur Verfügung.
Es ist schon nicht verkehrt mit dem Gerät zu starten, was die größte Bildschirmauflösung hat. Alleine aus dem Grund, dass ein iPad meist eine horizontale Darstellung nutzt, auf einem iPhone aber eher Hochformat genutzt wird, lässt sich so ein Layout auch nicht einfach 1:1 übertragen.
Was Du machen kannst ist aber zunächst mal die iPad Remote fertigstellen, mit dem was Du zur Zeit schalten willst. Dann gehst Du auf Fernbedienung ->Speichern unter.. und speicherst die Remote unter einem neuen Namen ab. Anschließend öffnest Du die Kopie der Remote und erstellst innerhalb der Remote eine Seite mit der passenden Auflösung für das Gerät, für das die Remote erstellt wird.
Jetzt suchst Du Dir auf der großen Seite immer Teilbereiche aus die Du auf die kleinere Remote übertragen willst, markierst dort sämtliche Elemente als Gruppe und kopierst diese dann auf die kleinere Seite. Falls Du eine Hintergrundgrafik nutzt musst Du dann für die kleine Seite eben noch die passende Hintergrundgrafik auswählen. Logischerweise passen auf die iPhone Remote weniger Teilbereiche auf die Seite wie auf einem iPad, daher musst Du Dir auch eine andere Seitenaufteilung überlegen und die Seiten untereinander auch anders verlinken. Die Funktion der Gruppen, Buttons und die geschalteten Geräte bleiben aber erhalten, so das sich das Erstellen der Remote großteils auf ein neu anordnen beschränkt.
Falls Du zu einem späteren Zeitpunkt Dinge nutzten willst wie die von Dir erwähnte Geräteerkennung und Seitenkennung einer Remote und Umleitung bei einem Event brauchst Du dazu zusätzliche Software, da NEO selber von sich aus keine Gerätekennung und Seitenkennung schickt. Als Grundvoraussetzung für eine Geräteerkennung braucht jedes Gerät eine feste IP Adresse oder bekommt vom DHCP Server stets die identische IP-Adresse zugewiesen. Dann brauchst Du zusätzlich so was wie einen PHP Server oder z.B. IP-Symcon, das dir eine Gerätekennung durchführen kann.
Am Beispiel IP-Symcon hättest Du z.B. 3 Variablen, eine Zustandsvariable um den Trigger in NEO ein / ausschalten zu können und jeweils eine Variable mit der aktuellen Seite der Remote und eine Variable die die IP Adresse des Geräts enthält.
In NEO selber würde jetzt auf die Seite selber eine Variable als Status gelegt. Als Aktion würde man HTTP Request senden wählen und dort die Adresse des Endpunkts eintragen, der die Geräte und Seiten Erkennung durch führt wie ein PHP Server oder IP-Symcon.
Der HTTP Request sieht dann exemplarisch so aus
und verweist auf einen Webhook und übergibt zum Schluss jeweils den Seitennamen. Das Seitenaktualisierungsintervall stellt man dann auf den gewünschten Wert, abhängig wie oft man eine Seiten und Geräte Erkennung durchführen will.
In einem PHP Server bzw. IP-Symcon kann man nun auswerten was für ein Gerät gerade eine NEO Remote nutzt und welche Seite aktuell von dem Gerät aufgerufen wurde
Dazu wird dann einfach an die NEO Remote im Falle von einem Ereignis eine Mitteilung zu einem Seitenwechsel geschickt, indem der NEO Remote Name und der Seitenname übergeben wird.
So kannst Du also gezielt steuern wann welches Gerät mit einer NEO Remote welche Seite angezeigt bekommen soll, das funktioniert aber nur wenn auch jedes Gerät eine eigene NEO Remote besitzt.
Grundsätzlich musst Du so was wie Makros, Statusregeln oder auch die Gerätedatenbank nicht synchronisieren, denn diese gelten für alle NEO Remotes, die Du unter einem Account anlegst. Daher stehen Dir z.B. so was wie Makros dann auch in jeder neu erstellen Remote zur Verfügung.
Es ist schon nicht verkehrt mit dem Gerät zu starten, was die größte Bildschirmauflösung hat. Alleine aus dem Grund, dass ein iPad meist eine horizontale Darstellung nutzt, auf einem iPhone aber eher Hochformat genutzt wird, lässt sich so ein Layout auch nicht einfach 1:1 übertragen.
Was Du machen kannst ist aber zunächst mal die iPad Remote fertigstellen, mit dem was Du zur Zeit schalten willst. Dann gehst Du auf Fernbedienung ->Speichern unter.. und speicherst die Remote unter einem neuen Namen ab. Anschließend öffnest Du die Kopie der Remote und erstellst innerhalb der Remote eine Seite mit der passenden Auflösung für das Gerät, für das die Remote erstellt wird.
Jetzt suchst Du Dir auf der großen Seite immer Teilbereiche aus die Du auf die kleinere Remote übertragen willst, markierst dort sämtliche Elemente als Gruppe und kopierst diese dann auf die kleinere Seite. Falls Du eine Hintergrundgrafik nutzt musst Du dann für die kleine Seite eben noch die passende Hintergrundgrafik auswählen. Logischerweise passen auf die iPhone Remote weniger Teilbereiche auf die Seite wie auf einem iPad, daher musst Du Dir auch eine andere Seitenaufteilung überlegen und die Seiten untereinander auch anders verlinken. Die Funktion der Gruppen, Buttons und die geschalteten Geräte bleiben aber erhalten, so das sich das Erstellen der Remote großteils auf ein neu anordnen beschränkt.
Falls Du zu einem späteren Zeitpunkt Dinge nutzten willst wie die von Dir erwähnte Geräteerkennung und Seitenkennung einer Remote und Umleitung bei einem Event brauchst Du dazu zusätzliche Software, da NEO selber von sich aus keine Gerätekennung und Seitenkennung schickt. Als Grundvoraussetzung für eine Geräteerkennung braucht jedes Gerät eine feste IP Adresse oder bekommt vom DHCP Server stets die identische IP-Adresse zugewiesen. Dann brauchst Du zusätzlich so was wie einen PHP Server oder z.B. IP-Symcon, das dir eine Gerätekennung durchführen kann.
Am Beispiel IP-Symcon hättest Du z.B. 3 Variablen, eine Zustandsvariable um den Trigger in NEO ein / ausschalten zu können und jeweils eine Variable mit der aktuellen Seite der Remote und eine Variable die die IP Adresse des Geräts enthält.
In NEO selber würde jetzt auf die Seite selber eine Variable als Status gelegt. Als Aktion würde man HTTP Request senden wählen und dort die Adresse des Endpunkts eintragen, der die Geräte und Seiten Erkennung durch führt wie ein PHP Server oder IP-Symcon.
Der HTTP Request sieht dann exemplarisch so aus
http://192.168.55.10:3777/hook/neodevicerecognition?page=index
und verweist auf einen Webhook und übergibt zum Schluss jeweils den Seitennamen. Das Seitenaktualisierungsintervall stellt man dann auf den gewünschten Wert, abhängig wie oft man eine Seiten und Geräte Erkennung durchführen will.
In einem PHP Server bzw. IP-Symcon kann man nun auswerten was für ein Gerät gerade eine NEO Remote nutzt und welche Seite aktuell von dem Gerät aufgerufen wurde
<?php
$address = $_SERVER['REMOTE_ADDR'];
$page = $_GET['page'];
SetValue(53399, $page);
SetValue(24586, $address);
echo 'Webhook NEO Device / Device: ' . $address . ', Page : ' . $page;
Dazu wird dann einfach an die NEO Remote im Falle von einem Ereignis eine Mitteilung zu einem Seitenwechsel geschickt, indem der NEO Remote Name und der Seitenname übergeben wird.
<?php
$remote = "iPhone X";
$page = "Klingel"; // NEO Seitenname
MEDIOLA_PUSH_Sitechange($remote, $page);
function MEDIOLA_PUSH_Sitechange($remote, $page)
{
$port = 1902; //Push Port
$broadcast = "192.168.55.255"; // Broadcastadresse für eigenes Subnetz
$msg = '{XC_EVT}{"func":"changePage","remote":"'.$remote.'","page":"'.$page.'"}';
$len = strlen($msg);//Länge der Message
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $msg, $len, 0, $broadcast, $port);
socket_close($sock);
}
So kannst Du also gezielt steuern wann welches Gerät mit einer NEO Remote welche Seite angezeigt bekommen soll, das funktioniert aber nur wenn auch jedes Gerät eine eigene NEO Remote besitzt.
Von
Hallo Fonzo, herzlichen Dank für diese aufschlussreichen Erläuterungen und Anleitung! Das hilft mir echt weiter!
Neuen Kommentar hinzufügen