Grundsätzlich ist das möglich, allerdings nicht mit NEO alleine. NEO für sich stellt zur Zeit weder ein Texteingabe Element zur Verfügung noch hast Du die Möglichkeit irgendeinen Wert mit der NEO Remote alleine mit einem Referenzwert zu vergleichen.
Wenn Du so was also umsetzten willst mit NEO geht das nur in Kombination mit einem Webseitenelement das ein
Formular nutzt. Das HTML Formular muss von einem System zur Verfügung gestellt werden, dass an NEO über ein NEO Plugin angebunden werden kann. Die Aufgabe des eingebundenen Sytems in NEO ist es dann die Formulardaten auszuwerten, diese mit dem Referenzpasswort abzugleichen und davon abhängig eine Variable zu setzten und das Popup dann durch ein erneutes Laden der NEO Seite zu öffnen oder eben nicht.
Als Beispiel wie so was umgesetzt wird mit IP-Symcon mit dem NEO Plugin IP-Symcon. Du brauchst zunächst mindestens 3 Variablen eine vom Typ Boolean (Passwort Check 1) mit Variablenprofil
~Lock.Reversed und eine weitere Variable die das Formular enthält vom Typ String mit dem Variablenprofil
~HTMLBox (Password Form) und eine Variable vom Typ String die das Referenzpasswort enthält für den Vergleich.
optional könnte man noch eine Variable nutzten, die das übergebene Password aus NEO anzeigt.
In der Variable mit dem Formular füllst Du ein einfaches HTML Formular ein, das an NEO übergeben wird. Dies kannst Du bei Bedarf mit CSS vom Layout anpassen.
Der Inhalt der Form Variable wäre einfach:
<form action="http://192.168.55.10:3777/hook/neopasswordform" id="person">
<label for="passwd">Passwort</label>
<input type="password" name="passwd" id="password" maxlength="40">
<button type="reset">Eingaben zurücksetzen</button>
<button type="submit">Eingaben absenden</button>
</form>
Bei
action muss die IP Adresse des Zielsystems stehen mit dem Endpunkt. In diesem Fall ist das die IP Adresse von IP-Symcon und der Endpunkt ist ein Skript auf den der Webhook
/hook/neopassform gerichtet ist.
Jetzt würde man die Variablen im Gerätemanager in NEO importieren.
Auf der Seite, auf der das gesichterte Popup geöffnet werden soll, gibt man nun bei Status die Variable
Passwort Check 1 an und als Aktion
Popup öffnen.
Das bewirkt wenn die Variable nach Prüfung auf true gesetzt wird, das sich das gesicherte Popup öffnet, das geschieht aber nur wenn das übergebene Passwort mit dem Referenzpasswort übereinstimmt.
Dann setzt Du auf der NEO Remote Seite die eigenliche Passwortabfrage, dafür ziehst Du ein Webseitenelement auf der Seite auf und setzt als Status das Formularfeld
Auf der NEO Seite ist jetzt also ein einfaches Formularfeld zu sehen, das Layout ist nach Bedarf per CSS anzupassen.
Hier gibt man nun also in der NEO Remote das Passwort ein und schickt das mit einem Druck auf Eingaben absenden ab.
Wichtig ist noch das in dem Popup das gesichert geöffnet werden soll ein Button zum Schließen gelegt wird. Auf den Button muss ein Makro gelegt werden. Ohne diesen Button lässt sich das Popup nicht schließen, da solange der Wert true ist, das Popup geöffnet bleibt. Das Makro muss also zunächst die Variable wieder auf false setzen und dann das Popup schließen.
Nachdem die Daten also nun übertragen wurden müssen diese geprüft werden und die Variable die das Popup öffnen soll im Bedarfsfall auf true gesetzt werden.
Im simpelsten Fall sieht so was dann so aus:
<?php
// NEO Form auswerten
$broadcast_ip = "192.168.55.255"; // Broadcastadresse für eigenes Subnetz
$remote = "Acer Iconia"; // Remote Name
$page = "Passwort Test"; // NEO Seitenname
if (isset($_GET["passwd"])) {
$password = $_GET["passwd"]; // Passwort auslesen
$control = GetValue(40757); // Referenz auslesen
if($password == $control)// vergleichen
{
SetValueBoolean(26466, true); // Status Variable auf true setzten
SetValue(13928, $password); // Wert zur Kontrolle ablegen
IPS_Sleep(100);
MEDIOLA_PUSH_Sitechange($broadcast_ip, $remote, $page); // Seite neu laden
}
else
{
SetValue(13928, $password);
}
}
function MEDIOLA_PUSH_Sitechange($broadcast_ip, $remote, $page)
{
$port = 1902; //Push Port
$msg = '{XC_EVT}{"func":"changePage","remote":"'.$remote.'","page":"'.$page.'"}';
$len = strlen($msg);//Länge der Message
//var_dump($len);
$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_ip, $port);
socket_close($sock);
}
Hier wird der Wert des Formular entgegengenommen mit dem Referenzwert verglichen und die auslösende Variable die in NEO als Status zugewiesen worden ist auf true gesetzt.
Wenn das Passwort, das im Formular übergeben worden ist, also richtig war, öffnet sich das Popup, da die Statusvariable ihren Wert ändert. Sollte das Passwort falsch sein, passiert auch nichts und das Popup bleibt geschlossen.
Von
Danke, die Funktion war mir selber bisher verborgen geblieben. Das macht es in der Tat einfacher für eine einfache Passwort Abfrage. Wenn man mehrere Parameter abfragen und auswerten will, muss man dann wohl aber immer noch ein HTML Formular nutzten. Das Layout der Abfrage Box kann man nicht anpassen oder?
Von
diese option gibt es aber nicht bei pop-ups !!! ... leider
Von
Die legst Du ja in einem Button an, womit Du das Popup öffnest 😜
Von
@ Fonzo - so kannst Du ja jedes Popup mit einem Passwort schützen, für die normal Sterblichen völlig ausreichend - anpassen vermutlich über CSS 😕
Von
Wenn Du weist wo ich das über CSS anpassen kann wäre ich für einen Tipp dankbar. Das Popup geht bei mir immer an der gleichen Position auf und das Layout passt auch nicht zum Rest der NEO Remote. Insofern würde ich das gerne anpassen wollen wenn ich das denn nutzten würde.
Von
@Fonzo
möchtest du das Pop-Up anpassen oder das Passwort-Feld?
Das Pop-Up kannst du natürlich anpassen, schau mal hier: https://www.mediola.com/service#documentation?product=neo&page=de:creator:ui-popups
Liebe Grüße,
Mona
Von
Ich möchte Fenster mit der Passwort Abfrage, also dieses Popup anpassen, so das es zum restlichen Layout der NEO Remote passt.
Von
@Mona aber das hattest Du ja schon beantwortet das eine Anpassung des Passwortfensters wohl zur Zeit nicht möglich ist. Ist aber nicht im Detail schlimm, ich nutze ja so oder so eigene Formulare die an das Layout der NEO Remote angepasst sind. Hätte nur das ein oder andere einfache Abfrageformular erspart, wenn das bei einfacher Abfrage auch direkt mit NEO funktioniert.
Neuen Kommentar hinzufügen