Geräte suche

Hallo zusammen,

kann man auch eine Geräte Suche aus IPS in den Modulen nutzen? Beispiel eine Enocean Gerät suchen wie bei den IPS internen Modulen.

Was hast du denn genau vor? Eine Geräte-, Splitter- oder Device-Instanz? Welcher Part kümmert sich in Symcon um die Suche? Was hilfreich sein kann, ist das Erstellen einer „Dummy“ übergeordneten Instanz um den original Datenfluss auszulesen. Wenn du die Anfrage kennst, kannst du im nächsten Schritt eine „Dummy“ untergeordnete Instanz erstellen für die Antwort.

Alternativ: Vielleicht steht ja schon was im Debug, spätestens im Client Socket.

Eine Geräte Instanz. Die hab ich schon alles fertig aber es geht mir um den Komfort für das eintragen der Geräte ID

So wie bei einigen Enocean Geräten. z.H. der Hoppe Fenstergriff

Diese Funktionalität musst du vermutlich selber nachbauen.
Fertig gibt es da wohl nix.
Ist ein PopupButton mit Liste.
Dein Modul muss dann aber alle Pakete in ReceiveData empfangen und die Liste aktualisieren (UpdateFormField).

Michael

Danke. Fummel gerade mal dran rum aber stecke an der Stelle das ich die Liste im Popup irgendwie nicht auslesen kann.

Ich habe im PopUp eine Liste erstellt und einen Default Wert in der Liste für den Test eingetragen.

Liste ist über RegisterProperty registriert. Wenn ich aber versuche es auszugeben kommt nichts. :confused: Kann es sein das man an die List innerhalb des Popup nicht ran kommt?

Oder ich raff es einfach nicht nicht.

  1. Frage
    Wenn man in ReceiveData reagiert bei der normalen Instanz Verwendung gibt es ja keine Liste. Also es muss nur ausgeführt werden wenn ein Konfigurationsformular geöffnet ist. Kann man das abfragen?

Die Liste sollte im Action Bereich sein und somit gibt es dafür dann kein Property.
Durch einen zusätzlichen Button kannst du z.b. die Adresse der ausgewählte Zeile in eine Property überführen. (OnClick Feld des Button zum ausführen von PHP-Code benutzen).

Ebenso hat der PopupButton eine OnClick Eigenschaft, damit kannst du deiner Instanz sagen, das jemand gerade suchen angeklickt hat.
Michael

Okay hab soweit verstanden.

Kommt man an ein onClick von Standard Button Schliessen im PopUp ran?

Frage mich gerade folgendes:

Ich erkenne dass das PopUp ist auf. Dann kann ich im Recieve die Liste aktualisieren.
Im PopUp ist ein weiterer Button zur Auswahl der Zeile und das Suchen wird beendet.

Hier zwei Punkte.

  1. Kann man auch das Fenster dann per Button schliessen?
  2. Wenn man aber über schliessen raus geht , dann würde das Modul im Suchmodus stehen bleiben.

Das man im Such-Modus ist wollte ich mir über einen Buffer merken (geht jedenfalls so). Der soll ja nicht persistent sein.

  1. kannst du erzwingen, mit ReloadForm. Wobei das passiert automatisch, weil dein Button muss ja die Adresse aus der Liste per IPS_SetProperty und IPS_Applychanges in die Konfig schreiben. Und das sollte die Konsole merken und die Form neu laden.

  2. ist da wohl schlecht. Eventuell beim starten der Suche einen Timer setzen und nach z.b 60 Sekunden den Filter zurücksetzen und die Form neu laden.

Michael

Also wie bei dir unter 1 beschrieben genau so ist es auch.

So richtig fein bin ich dennoch nicht mit nen paar Punkten.

  1. Nachfrage zur Doku der Liste:
//Gebe den Namen der aktuell gewählte Zeile der Tabelle devices aus
{ "type": "Button", "caption": "Ausgabe", "onClick": "print_r($devices['name']);" }

Aber wenn nichts ausgewählt wird dann gibts nen Fehler? weil Zugriff mit Position -1
Wäre ne Implementierung von sizeof() nicht möglich? um das vorher zu checken?

  1. Update der Liste entfernt Auswahl einer Zeile
    Wenn die Werte aktualisiert werden, entfernt dies aber auch eine mögliche vorher ausgewählt Zeile.
    Ich hab nicht gesehen das es ein OnClick auf einer Zeile gibt oder man sonst wieder die Auswahl setzen können.
    Wenn schnell die Liste aktualisiert wird hat man manchmal kaum die Chance noch den Knopf zu drücken.