Eigenschaften EIB Group lesen/setzen

Wie kann ich die Eigenschaften einer EIB Group (z.B. Lesen des aktuellen Wertes vom Bus) in einem Script lesen oder ändern?

Ziel: Wert aller Variablen mit Leseberechtigung vom Bus mittels ‚EIB_RequestStatus‘ in einen definierten Zustand bringen z.B. nach einem Ausfall der Schnittstelle (oder kann man das einfacher haben?).

Danke für die Hilfe, kjb

Paresy hatte dazu ein Besipiel in dem Beitrag „IP-Symcon 2.4 Changelog“ mit eingebunden.

Leider scheind der Beitrag mit dem Update auf 2.5 Verloren gegangen zu sein.

Paresy, vielleicht kannst du dies nochmal in der Doku hinterlegen unter „Vorgehensweise->Wie Kann ich!?“

Danke, Gruß Martin

Ich finde es grade nicht… Hast du es noch bei dir im System?

paresy

Ja, komm aber grad nicht ran. :wink:

Martin

Soooo nun konnte ich es mal Nachschauen.

Du brauchst dafür ein Script mit folgendem Inhalt:

<?
 $ids = IPS_GetInstanceListByModuleID('{D62B95D3-0C5E-406E-B1D9-8D102E50F64B}');
 foreach($ids as $id)
 {
  if(in_array(1, EIB_GetGroupCapabilities($id)))
  {
    EIB_RequestStatus($id);
    IPS_Sleep(100);
  }
 }

?>

Dieses Script trägst du dannn im Eventhandler als Start Script ein.

Bei Bedarf kannst du es auch manuell oder von anderen Scripten aus starten.

Gruß Martin

Super, danke für die schnelle Hilfe.
Für meine weiteren Projekte: Wo finde ich eine Dokumentation zu den EIB Funktionen? Woher weiss ich z.B. was die Rückgabewerte von EIB_GetGroupCapabilities sind? Scheint mir jedenfalls nicht auf den ersten Blick selbsterklärend.

Danke und Gruss, kjb

Tja Doku ist sone Sache…

am besten mit der Forensuche mal schaun was du findest und im Zweifel eben hier fragen.

Zu EIB_GetGroupCapabilities kann ich dir leider nix sagen. Es wird die Konfiguration des Gruppenobjektes (Lesen/Schreiben/Übertragen…) Zurückgeben, aber in welchem Format weiss ich nicht

Gruß Martin

Durch Probieren habe ich die Bedeutung herausbekommen:
Der Befehl liefert einen Array mit maximal 4 Entries (0-3). Die Werte entsprechen den 4 Checkboxen in den Properties und haben folgende Bedeutung:
1 Lesen
2 Senden bei Leseanfrage
3 Schreiben
0 Empfangen
Mit der Doku ist es wirklich ein Kreuz.
Es wäre ja schon super, wenn man eine Übersicht über die (noch) nicht dokumentierten Befehle hätte. Den Rest könnte man dann ja durch entsprechende Tests noch alleine rauskriegen, aber so geht das gar nicht.

Gruß Bonox

Cool, danke für die Rückmeldung!

Bei mir funktioniert das abfragen nicht, müssen bei den Eib Komponenten irgendwelche speziellen Einstellungen gesetzt werden?

Das LESEN-FLAG muss gesetzt sein und das Gerät das LESEN unterstützen!

Gruß,
Peter

Hallo,

weiß auch jemand, wie man das Flag setzen kann, falls es fehlt? Ist eine ziemliche Fleißarbeit um das für 188 EIB Groups per Hand zu machen. Ein EIB_SetGroupCapabilities scheint es nicht zu geben.

Gruß

Andreas

Diese Funktion gibt es, jedoch leider nicht in PHP. Über SOAP kannst du den selben Trick wie bei einer LCN-Funktion verwenden:

Hier die Variante für LCN.


$soap = new SoapClient("http://127.0.0.1:3773/wsdl/IIPSLCNValue");
$soap->__setSoapHeaders(new SOAPHeader("urn:UIPSModuleTypes", 'TIDHeader', array('ID' => 17652)));
$soap->SetValues(Array("lvTValue", "lvR1Value", "lvR1Target", "lvR2Value", "lvR2Target"));

Falls du das für KNX nicht umgebaut bekommst, sag bitte noch mal bescheid, dann versuche ich ein Beispiel zu erstellen :slight_smile:

paresy