Abfrage einer KNX-Lampe

Hallo,
ich verzweifelt als Anfänger an einer einfachen Abfrage einer KNX-Lampe. Ist sie an oder aus? Meine Daten habe ich mit KNX/EIB Geräte über OPC Export importieren (*.ESF Datei) problemlos importiert und kann auch alles bedienen. Nun möchte ich Scripte schreiben, z.B. „wenn Lampe an  ausschalten / wenn Lampe aus  einschalten.

EIB_Switch(27075 /[Z-KNX\Erdgeschoß\Licht\Decke Esszimmer]/, true); bzw. „false“

Zur Entscheidung wollte ich EIB_RequestStatus(27075); Leseanfrage abschicken nutzen. Mein Test-Script ist derzeit:

echo "wert = ", EIB_RequestStatus(27075);

Ich erhalte aber immer Wert = 1, egal ob die Lampe an oder aus ist.

Konfiguration zu 27075 = Lesen (erlaubt der Instanz den aktuellen…)
Brauche ich spezielle Variable?

Danke und Grüße
Lippydorf

Die Rückgabe von


$status = EIB_RequestStatus(27075);
var_dump($status);

ist True oder False.

damit kann man dann weiterarbeiten.


if($status)
{
//tue was wenn an
}
else
{
 //tue was wenn aus
}

Falsch.
Das ist nur die Rückmeldung das der Status vom Bus gelesen wurde, aber nicht der Status selber.
Der Status ist immer der IPS-Variable mit GetValue zu entnehmen.
Michael

Hallo, danke für die schnelle Antworten.
EIB_RequestStatus(27075); ist wohl so, dass nur der Abfragestatus zurück gemeldet wird. Wei würde der Befehl mit GetValue aussehen? Bin leider php Anfänger-

Grüße
Lippydorf

GetValue


$status = GetValue(12345); // 12345 ist die Objekt ID der Variable  

oder
GetValueFormatted


$status = GetValueFormatted(12345); // 12345 ist die Objekt ID der Variable  

je nachdem was halt benötigt wird.

Beide Befehle …

$status = GetValueFormatted(27075); oder GetValue
var_dump($status);
echo "Ergebnis ", $status;
?>

Führen zur Meldung:
Warning: Variable #27075 existiert nicht in /var/lib/symcon/scripts/43933.ips.php on line 2
bool(false)
Ergebnis

Problem gefunden:

$status = GetValueFormatted(41142);
echo "Ergebnis ist gleich ", $status;

führt zum Ergebnis An oder Aus.

Mein Fehler war, dass ich die Objekt-ID der Lampe (bei mir 27075) und nicht die Objekt-ID (bei mir 41142) des dazugehörigen Boolean-Wertes angegeben habe,

Danke, dass ihr mich auf den richtigen Weg gebracht habt. Vieleicht werde ich irgendwann mein Anfängerstatus überwinden.

Grüße
Lippydorf

genau das selbe hatte ich gestern

zuerst in eine variable mit getvalue den Wert einlesen, und diese dann weiterverwenden

ich finds irgendwie schade, dass solche Beispiele nicht in einer Dokumentation stehen

Schön das alle Befehle beschrieben werden, aber wenn jemand nichts mit php am Hut hat, wirds a bissl schwierig, obwohl die Lösungen relativ einfach aussehen können :slight_smile:

Ist genau wie beim Autofahren. Dazu braucht man einen Führerschein. Um IPS zu nutzen, braucht man ein paar PHP Kenntnisse.

Übrigens: wenn Rückmeldeadressen von KNX korrekt verwendet werden, ist die Leseanfrage mit EIB_RequestStatus in 98% der Fälle überflüssig.

Gruß,
Christoph