[Modul] openHASP

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'] . ");");
}

?>

ist in der aktuellen BETA möglich.

der Platzhalter $$ wird durch den Wert ValueFormatted ersetzt.

Bekomme eine Fehlermeldung:

richimaint

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.

HI @firebuster , siehe meinen Post. Beim öffnen der Instanz kommt es zu Fehlermeldung.

richimaint

Jetzt kam erst das neue Update, mit dem lässt sich die Instanz wieder öffnen.

richimaint

1 „Gefällt mir“

im Log bzw. den Meldungen von Symcon steht was dabei kaputt gegangen ist bzw. woran es hängt.
ggf. noch mal aktualisieren.

Habe die Grundlegende Funktion für das Manuelle Mapping nun in das Modul V0.8 gepackt.
Aktuell funktionieren „nur“ folgende Verknüpfungen:

  • Text ← Variable
  • Button → Script
  • Toggle-Button ↔ Bool-Variable
  • Slider ↔ IntVariable

Umrechnung mit dem Faktor ist aktuell auch ohne Funktion

Jetzt mit der aktuellsten Beta läuft es mit dem Platzhalter $$ und dem Text zum Variablenwert…
Wow, du bist echt von der fixen Truppe :+1:

1 „Gefällt mir“

Sonderzeichen gehen aber leider ‚noch‘ nicht (in meinem Fall zb ‚ü‘ bei Kühlbetrieb…)

1 „Gefällt mir“