Notifications verschiedene Endgeräte und neue Visu

Ich habe für unsere iPhones und Rechner 2 unterschiedliche Visus erstellt. Dann kann man dort Gitter etc. anpassen. Der einzige Nachteil ist, das Notifications nur auf einer ankommen - also auf der die konfiguriert es. Es müsste also irgendwie eine globale Notification geben oder ich habe einen Denkfehler.

Du schickst die Notification immer an eine Visualisierungsinstanz.

ja - soweit so klar, aber was wenn ich die Notification auf allen Instanzen haben will?

Dann machst du für jede Instanz einen Push.
Ich hab mir dafür eine eigene Funktion gebaut.

Das wollte ich gerade vermeiden, da ich ja einige Module haben die auch Nachrichten senden und bisher kam man mit einer Instanz hin. Ich finde es ja nicht so gut, wenn ich dort mehrere Instanzen aufrufen müsste. Gehen tut es, aber eine globale Funktion fände ich nicht so schlecht.

Die hab ich mir eben selber gebaut :wink:
War einmal ein Aufwand alles durchzusuchen, aber es lohnt. Du könntest es auch mit IPS_RunScriptEx machen. Hat den selben Effekt.

Das ist genauso wie vorher.
Hast du beim Webfront verschiedene pro Mobile Device oder Rechner angelegt ging das Push oder SendNotification auch nur an eine Instanz.
Somit ist eher die Frage, brauchst du wirklich mehrere Visu Instanzen?
Michael

Faire Frage ob man mehrere braucht - bei der alten hatte ich nur eine.

Durch die Kacheln und die Anpassungen in Bezug auf Größe und Aufteilung denke ich, dass ich für große (PC) und kleine Bildschirme schon unterschiedliche verwenden will/sollte. Alles über eine Instanz führt m.E. zu sehr unschönen Darstellungen?

Wie hast du es für Smartphone und PC gelöst?

Ich weiß, die Frage ist nicht an mich gerichtet, aber ich sags dir trotzdem :smiley:
Die Mobile Darstellung war mir schon früher mehr oder weniger egal. Ob das jetzt alles so super toll ausgesehen hat oder nicht. Wichtig war mir nur, dass ich überall hin komme. Daher gab es fürs Handy und für den PC/Laptop nur eine. Bei der neuen Kachelvisualsierung ist das ganze wesentlich schöner am Handy. Und mit den unterschiedlichen Profilen kann ich mir die Optik unabhängig vom großen Schirm herrichten. Aber auch bei der KachelVisu hab ich für alles nur eine Instanz.
Lediglich für die (bis jetzt) zwei Tablets habe ich zwei unterschiedliche Visualisierungen, da hier nur ein Ausschnitt aus der Gesamtmenge angezeigt wird.

2 „Gefällt mir“

Effektiv noch gar nicht, weil ich nicht dazu komme.
Aber es wird bei mir nur ein Visu Instanz geben.
Es gibt ja verschiedene Profile für Mobile und Browser. Ich werde eine Konfig vorgeben (auf dem Server speichern) und anschließend kann es jeder ja selber anpassen, wird dann aber halt nur lokal gespeichert.
Michael

Magst Du das bitte kopierbar posten? Finde ich eine super Idee und würde ich gerne versuchen auch wenn ich erst noch lernen muss wie ich Funktionen sinnvoll verwende.

Cheers Seppm

Sicher

function Global_IPS_Nachricht($titel,$text)
{
    WFC_PushNotification(56676,$titel,date("H:i",time())." ".$text,"",0); /*mobil*/
    WFC_SendNotification(56676,$titel,date("H:i",time())." ".$text,"",10); /*web*/
    WFC_SendNotification(58243,$titel,date("H:i",time())." ".$text,"",10); /*wohnen*/
    WFC_SendNotification(25847,$titel,date("H:i",time())." ".$text,"",10); /*vorzimmer*/   
    VISU_PostNotification(37193, $titel, date("H:i",time())." ".$text, "Info", 0); /*HauptKachel*/
    VISU_PostNotification(30362, $titel, date("H:i",time())." ".$text, "Info", 0); /*WohnenKachel*/

}

Die Funkton ist teil eines größeren Skripts, welche noch mehr Funktionen erhält.
Damit die Funktionen überall verwendet werden können, ist der Verweis auf die Datei des Skriptes „Globale Funktionen“ in die autoload.php eingetragen. Somit sind die Funktionen in jedem Skript verwendbar.

<?php
function autoload_schreiben()
{
    $zeile = "<?php\n";
    $zeile.= "//Globale Funktionen\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/56790.ips.php\");\n";
    $zeile.= "//Nmap Netzwerkscanner\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/57045.ips.php\");\n";
    $zeile.= "//Amazon Echo\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/26244.ips.php\");\n";
    $zeile.= "//Evohome\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/23877.ips.php\");\n";
    $zeile.= "//Logfile\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/26549.ips.php\");\n";
    $zeile.= "//iRobot\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/25536.ips.php\");\n";
    $zeile.= "//Nanoleaf\n";
    $zeile.= "require_once(IPS_GetKernelDir() . \"/scripts/38857.ips.php\");\n";

    echo $zeile;
    $handle=fopen ("__autoload.php","w");
    fwrite($handle,$zeile);
    fclose($handle);
}
function autoload_lesen()
{
    $handle=fopen("__autoload.php","r");
    var_dump(fread($handle,filesize ("__autoload.php")));
    fclose($handle);
}
autoload_schreiben();
autoload_lesen();

Das sieht dann bei mir so aus. Mein IPS läuft auf Windows. Für Linux kann es sein, dass es angepasst werden muss. Ich habe mir mehrere „Globale“ gemacht, weil ich das extrem praktisch finde.

Die __autoload.php sieht dann bei mir so aus

<?php
//Globale Funktionen
require_once(IPS_GetKernelDir() . "/scripts/56790.ips.php");
//Nmap Netzwerkscanner
require_once(IPS_GetKernelDir() . "/scripts/57045.ips.php");
//Amazon Echo
require_once(IPS_GetKernelDir() . "/scripts/26244.ips.php");
//Evohome
require_once(IPS_GetKernelDir() . "/scripts/23877.ips.php");
//Logfile
require_once(IPS_GetKernelDir() . "/scripts/26549.ips.php");
//iRobot
require_once(IPS_GetKernelDir() . "/scripts/25536.ips.php");
//Nanoleaf
require_once(IPS_GetKernelDir() . "/scripts/38857.ips.php");

Man sollte aber sehr vorsichtig damit sein. Da die Autoload bzw. die Skripte immer geladen werden, kann ein Fehler soweit führen, dass Fehler auftauchen, die offensichtlich mit dem Fehlerort gar nichts zu tun haben. Das können Module oder auch eigene Skripte sein. Bevor man so ein Skritp in die Autoload hängt, sollte man sicher sein, dass kein formaler Fehler (den PHP als Fehler betrachtet) drinnen ist. Sonst wirds wirklich unschön. Hatte ich schon das eine oder andere mal.

1 „Gefällt mir“

@seppm Ich habe noch was an meinem Beitrag gändert, mit einem Warnhinweis. Das wirklich beachten.

VIELEN Dank, da werde ich mich mal reinwühlen (warum macht die Fehlerkorrektur da “reinwürgen” draus? :wink: - ob das ein Zeichen ist) nächste Woche wenn es vlt. Bissl ruhiger ist.

Deinen Hinweis auf Autoload werde ich Ernst nehmen!

Cheers Seppm

Sehr gut. Ich mache es immer so, dass ich es zuerst so erstelle, bis alles funktioniert. Dann erst in die Autoload.

1 „Gefällt mir“