Feature Request: Suchfunktion

Moin,

bei einem kleinen Webfront vielleicht kein Thema: aber bei 2000 Variablen, wovon ich viele im WebFront/Mobile habe (durchaus sinnvoll gruppiert und sortiert), frage ich mich hin und wieder schon „in welcher Kategorie hattest du nochmal den Zeitplan für den Rasenroboter?“.

Kurzum: eine Suchfunktion nach Stichwort wäre fürchterlich hilfreich. Optimalerweise ebenso wie schon in der Konsole mit direkter Anzeige aller Objekte, in denen das Suchwort vorkommt.

Dankööö & Grüße aus dem Münsterland.
ika… der den Rasenroboter jetzt in den Winterschlaf schickt.

Wo willst du den in der App suchen? :wink:
Michael

ich dachte so iOS-alike, wenn man irgendwo den Screen runterzieht, dass oben ein Suchfeld erscheint.
Optimalerweise wird dann nur rekursiv ab da gesucht, wo ich mich gerade befinde.

Das wäre analog zum Verhalten von Springboard oder innerhalb WhatsApp o.ä. und damit heutzutage „intuitiv“.
Wenn bessere Vorschläge vorhanden sind - gerne her damit :wink:

-push-
ich wollte das Thema mal hochholen. Gibt’s da wirklich so garkein Interesse?!

Habe mich gerade wieder dabei erwischt, dass ich in der App nach einer Variable (die in irgendeiner Unter-Unter-Unterkategorie liegt) ewig lang gesucht habe… irgendwann entnervt an den Rechner gegangen, mein Suchwort in den Filter eingegeben und die Variable sofort griffbereit gehabt.

@ips-team: mich nervt das so sehr, dass ich über paid-feature-request nachdenke! :wink: Wieviel Entwicklungsaufwand ist das? :smiley:

Viele Grüße,
Michael

Das wäre wirklich super. Ich kenne auch die Situation, dass man an den Rechner in den Objektbaum geht, um nach einer Variablen in der App zu suchen.[emoji20]

++1

Die Herausforderung dabei besteht darin, dass die App gar nicht weiß was es alles gibt. Wir fragen ja immer nur die aktuell sichtbare Ebene ab. Also ist der Aufwand wesentlich größer, da man dafür irgendeine neue API bauen müsste.

paresy

Ich persönlich sehe den Sinn darin nicht. Um bei Deinem Beispiel zu bleiben: Wenn ich den Zeitplan für den Rasenroboter suche, dann gäbe es dafür in meinem System zwei Möglichkeiten. Entweder unter Außen - Rasenroboter. Oder unter Einstellungen - Rasenroboter. Ich habe also zwei Möglichkeiten. Spätestens nach dem dritten Mal Suchen, würde ich mir Gedanken um die Struktur meines WebFronts machen.

Manchmal kommt es vor, dass ich das WebFront bei Kunden so anlege, wie ich es für intuitiv halte. Manchmal möchten die Kunden zum Beispiel keine Extra Kategorie „Einstellungen“, sondern wollen es direkt in dem dazugehörigen Raum oder dem Geschoss haben. Kein Problem - wird erledigt. Nach einer Suche hat jedoch noch niemand gefragt.

Moin Standart… danke für deine Meinung; ich habe mir das durchaus schon gedacht, dass das mangelnde Interesse der Leute sich aus Perspektiven erklärt, wie die, die du da beschreibst. Stichwort Einfamilienhaus - Smart Home, bischen KNX und/oder Homematic, fertig - Ende.

Ich dachte allerdings, es gäbe noch mehr etwas anspruchsvollere Anwender. Wenn du weit mehr als tausend darzustellende Variablen hast und mehr oder weniger komplexe Maschinensteuerung betreibst, hilft dir eine gute Struktur allein sicher nicht weiter. Insofern hinkte mein Beispiel mit dem Rasenmäher etwas, sollte nur plakativ sein. Was aber, wenn du nach langer Zeit mal wieder den aktuellen Temperaturwert deiner Lüftersteuerung der Servoeinheit deiner UV-Trockenanlage in Halle2 suchst?! Nein, das kannst du nicht rekursiv als simplen Objektbaum sehen, sondern eher so wie man es im Maschinenbau mit Schalt- und Logikplänen macht. Und spätestens seit „BigData“ geht der allgemeine Trend eh weg von intuitiv nachvollziehbaren Strukturen hin zu Datenwolken, welche mit „AI-Unterstützung“ gefiltert werden… aber jetzt genug vom Bullshit-Buzzword-Bingo, waren nur just my 2 cents :wink:

Ich würde mich freuen, wenn seitens Symcon da iiiirgendwann mittelfristig was passieren würde… ich komme da tatsächlich von dem Standpunkt, dass eine Suchfunktion im modernen UI-Design fast Pflicht ist, egal wie groß sich der allgemeine Bedarf ausdrückt. Oder glaubt ihr, dass Eure iOS-Springboards und Windows-Startmenüs deshalb durchsucht werden können, weil man sie nicht sauber strukturieren kann?! :wink: :wink:

Okay, wir reden also nicht vom normalen Einfamilienhaus. Dann mag die Anforderung Sinn machen. Ich vermute allerdings, dass sich wenige Nutzer von solch komplexen Steuerungen hier im Forum aufhalten.

Vielen Dank für die Erläuterung.

Falls du solch eine Anforderung hast und deine Firma bereit ist die Entwicklung dafür zu tragen (beachte, dass diese für iOS/Android/WebFront parallel kommen müsste) schick uns am besten mal eine Mail an office@symcon.de, sodass wir ins Gespräch kommen und dir ggf. ein Angebot erstellen können.

paresy

Paresy, das hatte ich ohnehin noch vor. Der Thread war grundsätzlich dazu gedacht, um auch mal abzuhorchen ob die Anforderung wirklich so einzigartig ist… und mit Ausnahme von bumas ist das scheinbar so :wink:

Insofern schade, da wir die Gesamtentwicklung wohl nicht alleine tragen wollen (insb. auf Grundlage der Multi-Plattform-Entwicklung). Es ist ja nicht systemkritisch, sondern nur ein Luxusfaktor, der Investitionswiderstand müsste IMHO also im unteren 3-stelligen Bereich bleiben.

Gruß,
ika

Moin zusammen!

Das Kostenangebot von Symcon lautete über circa 6 Entwickler-Tage (inkl. testen, dokumentieren…) und der dafür angebotene Preis erschien uns für den angestrebten Zweck als zu hoch.

Daher habe ich mich gestern Abend mal hingesetzt und die Sache selber geskripted.
Disclaimer: Ich bin kein Entwickler! Außerdem alles Quick&Dirty. Aber für unsere Zwecke reicht es vollkommen aus, tut was es soll.

Vielleicht kann es doch noch irgendwer anders gebrauchen oder irgendjemand möchte das Skript aufräumen & aufhübschen :smiley:

Nachteile zu einer professionellen Implementierung:

-um direkt zum gefundenen Objekt springen zu können, blieb mir nur eine Push-Notification. Eine andere Implementierung von „jump-to-target“ gibt es wohl leider nicht; auch die iOS-/Android-typischen URL-Shemes werden nicht unterstützt.
Das ist zwar etwas lästig, weil es die Notification-Liste in der App zumüllt, aber ich kann damit leben.

-das Skript durchsucht den GANZEN IPS-Objektbaum und zeigt alle relevanten Ergebnisse. Die o.g. Push-Notifications werden ohne weitere Prüfung an den Webfront-Konfigurator geschickt, der im Skript angegeben ist.
Es gibt also keinerlei Berechtigungs-System, welches prüft, ob der Webfront-User die Objekte sehen darf. Hat der User keine Berechtigung für das jeweilige Objekt, funktioniert das „Jump-To“ in der Pushnachricht schlichtweg nicht.

  1. Eine Kategorie im IPS-Objektbaum anlegen, z.B. „Webfront-Suche“
  2. In dieser Kategorie eine Variable vom Typ „String“ anlegen, Name z.B. „SUCHWORT“.
  3. Unterhalb(!) der Variable ein Skript anlegen und den untenstehenden PHP-Code in dieses Skript kopieren.
  4. Die Variable aus Punkt 2 bearbeiten und das Skript aus Punkt 3 unter „Eigene Aktion“ eintragen.

suche1.jpg


<?php

$limitresults = 50;		//zeige max. X Suchergebnisse
$charlimit = 50;		       //zu breite Zeilen werden von rechts abgeschnitten. z.B. 110 für iOS-Querformat, 50 für iOS-Hochformat
$keepresults = 300;          //Zeit bis Ergebnisse automatisch gelöscht werden (in Sekunden)
$webfront = 123456;	       //ID des Webfront-Konfiguratos, an den die Target-Push-Nachricht geschickt wird.

//----------------------------------------------------------------------------
//----------------------------------------------------------------------------

if($_IPS['SENDER'] == "WebFront") { SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); };

$searchstr = GetValue(IPS_GetParent($_IPS['SELF']));
IPS_SetPosition (IPS_GetParent($_IPS['SELF']), 10);
$categoryID = IPS_GetParent(IPS_GetParent($_IPS['SELF']));

for($i=1; $i <= $limitresults; $i++) {
    $deleteold = @IPS_GetObjectIDByIdent ("WF_Suchergebnis".$i, $categoryID);
	if($deleteold) IPS_DeleteScript($deleteold,true);
};
if($_IPS['SENDER'] == "TimerEvent") { return; };

$objectIDs = IPS_GetObjectList();

$i = 1;
foreach($objectIDs as $id)
{
    if ($id != $_IPS['SELF'])
   {
      if($i>$limitresults) { return; };
	  $objname = IPS_GetName($id);
	  $pos = stripos($objname, $searchstr);
	  if ($pos !== false) { 
		$jumpnotification = '<?php WFC_PushNotification ('.$webfront.', "Suche", "'.$objname.'", "", '.IPS_GetParent($id).');';
		$scriptid = IPS_CreateScript(0);
		IPS_SetParent ($scriptid, $categoryID);
		IPS_SetIdent ($scriptid, "WF_Suchergebnis".$i);
		IPS_SetPosition ($scriptid, 1000+$i);
		$shortlocation = substr(IPS_GetLocation($id), ($charlimit*-1)); 
		IPS_SetName($scriptid,$i.". ".$shortlocation); IPS_SetScriptContent($scriptid, $jumpnotification);
		$i++;
		};
    }
};

IPS_SetScriptTimer($_IPS['SELF'], $keepresults);

In den ersten 4 Zeilen des Skriptes müsst(!) ihr noch die Konfigurator-ID Eures gewünschten Webfronts angeben und könnt Einstellungen bzgl. max. Suchergebnisse/Zeichenanzahl setzen.
Außerdem lasse ich nach z.B. 300 Sekunden die Suchergebnisse löschen - so sieht die Kategorie bei Nichtnutzung etwas aufgeräumter für mich aus :wink:

Viele Grüße,
ika