Ok, hier ein kleines Script welches eine Integer-Variabel überwacht und eine String erstellt.
String-Variable und Ereignis wird automatisch unterhalb des Scripts erstellt.
Vielleicht kanns jemand brauchen
<?php
$intVariableId = 47143; // Ersetze diese ID durch die tatsächliche ID deiner Integer-Variable
$stringVariableName = "Modus"; // Name der String-Variable
$stringVariableIdent = "ModusStatus"; // Ident der String-Variable
$parentID = $_IPS['SELF']; // Das Skript selbst als Elternobjekt
// String-Variable prüfen und erstellen, falls nicht vorhanden
$stringVariableId = @IPS_GetObjectIDByIdent($stringVariableIdent, $parentID);
if ($stringVariableId === false) {
// String-Variable erstellen
$stringVariableId = IPS_CreateVariable(3); // 3 bedeutet String
IPS_SetName($stringVariableId, $stringVariableName);
IPS_SetIdent($stringVariableId, $stringVariableIdent);
IPS_SetParent($stringVariableId, $parentID); // Unterhalb des Skripts erstellen
}
// Wert der Integer-Variable abrufen
$intValue = GetValue($intVariableId);
// Überprüfen und den entsprechenden String-Wert setzen
switch ($intValue) {
case 0:
$stringValue = "heizen";
break;
case 1:
$stringValue = "Warmwasser";
break;
case 2:
$stringValue = "PVA";
break;
case 3:
$stringValue = "EVU-Sperre";
break;
case 4:
$stringValue = "Abtauen";
break;
case 5:
$stringValue = "Leerlauf";
break;
case 6:
$stringValue = "el. heizen";
break;
case 7:
$stringValue = "kühlen";
break;
default:
$stringValue = "Unbekannt";
break;
}
SetValue($stringVariableId, $stringValue);
// Ereignis erstellen, falls nicht vorhanden
$eventID = @IPS_GetEventIDByName("Ereignis für Variable $intVariableId", $_IPS['SELF']);
if ($eventID === false) {
$eventID = IPS_CreateEvent(0); // 0 bedeutet Ausgelöstes Ereignis
IPS_SetEventTrigger($eventID, 1, $intVariableId); // 1 bedeutet bei Änderung
IPS_SetParent($eventID, $_IPS['SELF']);
IPS_SetName($eventID, "Ereignis für Variable $intVariableId");
IPS_SetEventScript($eventID, "IPS_RunScript(" . $_IPS['SELF'] . ");");
IPS_SetEventActive($eventID, true);
} else {
// Sicherstellen, dass das Ereignis das Skript korrekt zuweist
IPS_SetEventScript($eventID, "IPS_RunScript(" . $_IPS['SELF'] . ");");
}
?>
Ich auch, und das schlimmste ist, dass nun das die Instanz nicht mehr aufzurufen ist.
Und ich habe so viel schon konfiguriert.
Lässt sich da noch was retten?
Ich habe die $$ als Platzhalter für die Integer-Variable eingefügt, jetzt kommt beim starten der Instanz nur noch besagte Fehlermeldung
Oh was ist die Fehlermeldung? bist du auf der Neusten Version?
Habe bei der 0.7 anfangs noch nen Fehler in der BETA gehabt. Sollte mit der neusten Version aber bereits behoben sein.
Sonst bitte den Fehler aus dem Log beim erstellen der Instanz bzw. Laden des Moduls mit schicken.
@firebuster könntest du dir vorstellen, für UI-Elemente die Möglichkeit zu integrieren, durch longpress eines Elementes in ein Untermenu zu gelangen?
Ein Szenarium wäre, über den Toggle Button, welcher das Licht ein und ausschaltet, in das Untermenu zu gelangen, wo zum Beispiel gedimmt oder irgendwelche Farbanpassungen vorgenommen werden können.
Du kannst dafür eine Seite anlegen die deine gewünschten Optionen zeigt und dann bei dem Butten eine Action dafür geben. {"action": {"hold": "page 10"}}
Das funktioniert leider nicht, es findet keine Weiterleitung statt.
Ich habs mal getestet mit Page 2.
Da ich drei Seiten habe müsste ja Page 2 existieren oder?
Ich habe aber nur UI-Elemente, da ist die Page nicht ersichtlich, aber ich denke das startet wohl mit 0 oder 1.