[Modul] Aktivliste

Moin,
ich muss mal noch einen nachlegen …

Wenn ich jetzt die Liste auch in anderen Skripten noch auswerten könnte („ist da etwas an?“) wäre das viel näher an der „Perfektion“, die LCN mir mit seinen gepollten Summen (und max. 12 Meldungen in einer Summe) so nicht bietet.

Und wenn ich dann das was da an ist auch noch als TTS auswerten könnte … „Hammer“.

Grüße, Uwe

Nicht so komfortabel aber ich habe mir als Zwischenlösung mit dem Modul Logikgatter diese Auswertung gebaut.

Grüße
Rolf

Moin Rolf,
danke für den Tipp, das schaue ich mir auch mal näher an - aber auch da sagt die Doku schon: „Das Modul stellt keine PHP-Befehle zur Verfügung.“

Grüße, Uwe

Also das LogikGatter hat eine Ausgang Variable (bool), im Input hab ich alle Fensterkontake eingetragen und als Typ „OR“ gewählt. Sobald mindestens ein Fenster geöffnet ist schaltet der Ausgang auf „true“ ansonsten ist er false. Auf die Variable frage ich dann überall dort ab wo ich es benötige.

So habe ich das bei meinem ersten Test jetzt auch gemacht - leider sehe ich dort nicht direkt im WebDront welche Fenster offen sind (wenn ich in der Aktivliste auch invertieren könnte, hätte ich das dort schon mal).
Ein TTS zu erzeugen was dann die offenen Fenster einzeln ansagt ist aber auch hier wieder nur mit erheblichem (Skript)Aufwand möglich.
Blinkende LED an Tastern oder bunte (Hue) Anzeigen werden bei mir fleglich ignoriert … das würde ich halt gerne versuchen „besser“ zu machen.

Grüße, Uwe - der „in der Summe“ diese Anzeigen mittlerweile als deutlich besser findet als die „unzuverlässige“ (nur auf StatusMELDUNGEN reagierende) LCN-Summe

Ich hab verschiedene Kontaktsensoren, alle bei denen geschlossen = true ist invertiere ich über das Profil (~Window.Reversed), damit funktionieren sie in der Aktivliste. Das finde ich auch für die Anzeige im Webfront die beste Lösung. In kombination mit dem Logikgatter läuft es damit ganz ok, Aktivliste für die Anzeige, Logikgatter für die Automation.

Das war der entscheidende Satz, Rolf.
Ich nutze seit Jahren ein eigenes Profil das „eigentlich“ nichts anderes macht. Es zeigt nur etwas andere Texte und Farben. Damit geht es nicht in der Aktivliste - warum auch immer … (@paresy :thinking: ?)
Mit dem ~Standardprofil funktioniert die Aktivliste.

Danke und Grüße, Uwe

Du könntest mit einem Skript und IPS_GetChildrenIDs($id) gucken, welche Links die Aktivliste „erstellt“ hat.

paresy

Moin,
du weißt schon, dass ich nicht wirklich fit in PHP bin … :rofl:
Ein IPS_GetChildrenIDs($id) liefert mir ein Array von allen in der Liste eingetragenen Geräten und Skripten. Ich brauche aber nur die aktiven, also die die nicht auf ‚hidden‘ stehen. Das kriege ich nicht hin …

Ein IPS_GetName liefert mir dann auch die Namen der Links in der Liste - daraus würde ich dann wohl auch eine TTS-Ansage „zusammenbauen“ können.

Grüße, Uwe

$ansage="Folgende Fenster sind offen: ";
$arr = IPS_GetChildrenIDs($id);
foreach($arr as $cid){
    $oi = IPS_GetObject($cid);
    if(!$oi['ObjectIsHidden']){
      $ansage.=$oi['ObjectName'].", ";
    }
}
1 „Gefällt mir“

Danke, Tobias
Ich hatte ja geahnt, dass Hidden irgendwie abgefragt werden kann. Hab’s nur nicht gefunden.
Hier bekomme ich jetzt als Ausgabe:
Folgende Fenster sind offen: Unnamed Object (ID: 26991), Unnamed Object (ID: 32242),
Das sind die Namen der Links in der Liste - wenn ich da ein IPS_GetName drauf geben würde, hätte ich auch den „richtigen“ Namen. Alternativ könnte man auch den Namen der [ObjectID] aus dem array anfragen - kann man? Ich kann’s nicht … :thinking:

LG, Uwe

Innerhalb der Schleife wird der Name hinzugefügt, aktuell der Objektname (der keinen Namen hat) mit

$ansage.=$oi['ObjectName'].", ";

Das jetzt ersetzen durch

$ansage.=IPS_GetName($cid).", ";

Vielleicht sollten wir mal einen Crashkurs Programmieren machen? Diese Änderung hätte ich dir jetzt schon zugetraut.

Machen wir doch gerade … :rofl:
Probieren (und das getippte verstehen) kann ich gut (ähnliches hatte ich vor meinem Post auch schon versucht) - deine Änderung liefert mir aber jetzt aber für den Link auch wieder nur:
Folgende Fenster sind offen: Unnamed Object (ID: 32242),

Lass uns mal weiter kursen - mein PHP-Latein ist da am Anschlag (aber ich weiß schon „geht nicht gibt es nicht“).
Im ObjectIdent steht schon die richtige ID - aber wie „extrahiere“ ich die?

Ich war schon verwundert, dass du behauptet hast mit IPS_GetName findet man den Namen.

$ansage.=IPS_GetName(IPS_GetLink($cid)['TargetID'])  .", ";

Jetzt habe ich’s (auch verstanden) - diesen Kursusteil kannst du abhaken. Dicken Dank Tobias - schieb die Verwunderung mal einfach auf mein Alter (und/oder auf meine „Grundausbildung“) :rofl:

‚Keine Fenster offen‘ (= keine Ansage) generiere ich jetzt einfach über das LogikGatter-Modul - das in Kombination mit der Aktivliste macht mir so oder so viel bessere Meldungen (und Anzeigen) möglich als jede LCN-Summe das (in IPS) könnte.

LG, Uwe

Hallo ! ich habe zwei Aktivlisten erstellt: eine mit 20 Lichtvariablen aus der ETS und eine mit ähnlich viel eigen erstellen Variablen Boolean (in denen ich kipp und auf/zu von Fenstern aus der ETS zusammenführe).
Die Aktivliste mit Licht funktiuoniert wunderbar, die andere gar nicht. Ich kann die geänderten Schaltzustände im Objektbaum sehen - sie werden aber nicht in die Aktivliste übernommen.
Auch der Test mit verschiedenen Profilen bringt mich nicht weiter.
Irgendwie bin ich ratlos - hat jemand noch einen Tipp?

Für Fensterkontakte nutze ich nicht die Aktivliste sondern das LogikGatter.

Magst du mal ein paar mehr Screenshots zur Konfiguration geben. Aktuell kann ich noch nicht vorstellen, wo der Fehler sein könnte.

paresy

Gerne:




Viele Grüße Bernd

Moin Bernd,
ein typischer Fensterkontakt meldet bei geschlossenem Fenster „ein“ - ausschalten macht da keinen Sinn, bzw. geht gar nicht. Die Aktivliste zeigt ‚nur‘ eingeschaltete Verbraucher, das LogikGatter kann auch offene Fenster anzeigen.

Grüße, Uwe