Passwortabfrage einer einzelnen Instanz möglich?

Hallo Gemeinde,

ich würde gerne auf einem Schalter (im Webfront) eine Passwortabfrage haben.

Einschalten soll es jeder können, jedoch abschalten nur durch abfrage eines Passwortes.

So was habe ich in der Doku nicht gefunden und gehe deshalb davon aus, daß man sowas per php-Script lösen kann.

Hat da jemand mal ein Beispielscript für mich?
Sollte ziemlich einfach gehalten sein, damit ich als php-Dummy das auch nachvollziehen kann… :wink:

Danke und Gruß
Dirk

Hier ein schnelles Beispiel wie es geht:

  1. Originalschalter verstecken
  2. Dummyinstanz „Passwortschalter anlegen“
  3. darunter zwei Scripte anlegen (s.u.)
  4. String Variable „Schalter aus“ anlegen, mit Profil ~Textbox (Eigene Aktion: auf Script „Schalter aus“)
    (ist im Script = $id_passwort)
  5. Bool Variable Status anlegen

Schalter an Script:


    $id_status_schalter  = 45279;
    $id_schalter         = 53463;
    $id_status           = 47983;

    if(GetValueBoolean($id_status_schalter))
    {
        return;
    }
    else
    {
        MXC_SwitchMode($id_schalter, true);
        SetValueBoolean($id_status, true);
    }

Schalter aus Script:


    $id_passwort            = 51657;
    $id_status_schalter     = 45279;
    $id_schalter            = 53463;
    $id_status              = 47983;

    SetValue($IPS_VARIABLE, $IPS_VALUE);
   
    if(GetValueBoolean($id_status_schalter) and GetValueString($id_passwort) == "test")
    {
        MXC_SwitchMode($id_schalter, false);
        SetValueBoolean($id_status, false);
        SetValueString($id_passwort, "");
    }
    else
    {
       return;
    }

Hi Ferengi-Master,

deine Zeilen sind zwar schon etwas älter, aber ich brauche genau die selbe Funktion die du beschrieben hast.
Ich brauche das für meine Alarmanlage.

Ich habe das jetzt mal so erstellt wie von dir beschrieben.

Bekomme aber beim ausführen des Schalter AN Scripts folgende Fehlermeldung.

Parse error:  syntax error, unexpected 'if' (T_IF) in /var/lib/symcon/scripts/49831.ips.php on line 6

Schalter An Script

    $id_status_schalter  = 49808;
    $id_schalter         = 19613;
    $id_status           = 17851

    if(GetValueBoolean($id_status_schalter,true))
    {
        return;
    }
    else
    {
        MXC_SwitchMode($id_schalter, true);
        SetValueBoolean($id_status, true);
    }

Und Schalter Aus Script

<?php
$id_passwort            = 51657;
    $id_status_schalter     = 49808
    $id_schalter            = 19613;
    $id_status              = 17851

    SetValue($IPS_VARIABLE, $IPS_VALUE);
   
    if(GetValueBoolean($id_status_schalter) and GetValueString($id_passwort) == "test")
    {
        MXC_SwitchMode($id_schalter, false);
        SetValueBoolean($id_status, false);
        SetValueString($id_passwort, "");
    }
    else
    {
       return;
    }

Die Variablen und Instanzen sind angelegt.

Hat das von Euch jemand schon mal getestet oder ähnliches im Einsatz ??

Zwei Probleme:
Einerseits in den Zeilen mit den Variablenzuordnungen der IDs muss am Ende jeder Zuordnung $variable = 12345; ein Semikolon stehen.

Zweiten die Systemvariablen $IPS_VARIABLE, $IPS_VALUE)
wurden vor Jahren in $_IPS['VARIABLE'] und $_IPS['VALUE'] umbenannt.

Der einfachste Weg mit Boardmitteln wäre der hier: Passwort geschützte Kategorie im WebFront — IP-Symcon :: Automatisierungssoftware

paresy

Also nach den Korrekturen im Script läuft es immer noch nicht, trotzdem danke.
Ich werde es jetzt wie paresy empfielt machen.
Im Webfront funktioniert das auch wunderbar.

Wie ist es im Mobile Webfront?

Über den Schraubenschlüssel in der App kann ich die Passwortgeschützte Visu laden.
Geht WFC_Switch_Page im Mobile Webfront nicht?
Ich möchte da auch von einer Visu in die andere springen können?

Danke.