Bedingungen nur einmal prüfen

Was willst du damit machen?
Mir ist im Tagebuch aufgefallen, dass stets zu jeder Aktion die Bedingungen in einem HG geprüft werden, unabhängig davon, ob dies überhaupt Sinn macht. So habe ich z.B. ein paar HGs um die Beleuchtung unseres Treppenhauses zu steuern. Hier wird jeweils die Helligkeit oben und unten, als auch die Tageszeit (Tag oder Nacht) geprüft. Ich habe insgesamt 4 HGs, die da durchlaufen (wenn unten hell und oben dunkel, dann nur oben Licht an (tagsüber 100%, nachts 30% gedimmt) und dann nochmal wenn oben und unten dunkel (ebenfalls für Tag und Nacht)). Darüber werden dann mehrer Lampen geschaltet (zeitgleich). Läuft also jemand am BWM vorbei, gibt es sofort 15 Einträge im Tagebuch und nichts passiert (weil es hell ist). Damit verbunden natürlich auch die entsprechende Rechenleistung im homee, um die es mir hier eigentlich geht. Zur Verdeutlichung hier mal ein Auszug aus meinem Tagebuch:

Wenn eine Bedingung “Beim Auslösen (Standard)” gewählt wurde, macht es doch gar keinen Sinn, diese bei jeder Aktion, die sowieso nicht ausgeführt wird, nochmal zu prüfen.

Fairer Weise muss ich dazu sagen, dass bei mir zumindest derzeit alles problemlos funktioniert, lediglich meine Tagebuch ist ohne Filter nicht benutzbar.

Warum interessiert es nicht nur dich?
Ich könnte mir vorstellen, dass man hierdurch Ressourcen einsparen könnte und das ganze System dann bei dem einen oder anderen etwas flüssig laufen könnte.

Ich hoffe ich bin mir diesem Gedanken jetzt nicht total auf dem Holzweg.

Dann deaktiviere die HG‘s. Und aktiviere sie erst wieder wenn die Bedingung erfüllt ist.

3 „Gefällt mir“

Es macht sehr wohl Sinn!

Bsp:
Bedingung
Wenn Tür offen
Aktion
Schalte Licht an nach 1 Min
Schalte Licht aus nach 1 Min 5 sek
Sende Message “Tür noch offen” nach 10Min

-> durch das Licht weiß man, ah, Tür noch offen, und schließt sie. Dann bekommt man keine Message. Wenn man die Tür aber offen lässt, bekommt man die Message aufs Handy

Reden wir hier beide von?

Ah, hatte allgemein gedacht. Mein Bsp beim Ausführen der Aktionen

Das nutze ich auch an einiges Stellen, aber da ergibt sich in der Regel das Problem, das zig Aktionen auf einmal nicht ausgeführt werden, auch gar nicht, weil es dann gewöhnlich eh einen Zeitversatz bei den Auslösern gibt (wie in deinem Beispiel).

Mir geht es hier aber tatsächlich um diesen “Standard” Fall, dass beim Auslösen mehrere Geräte geschaltet werden sollen.

@anon11314990 hat sicherlich nicht ganz unrecht, dass man die “Standard” Bedingungen in den produktiven HGs einfach durch weitere HGs ersetzen könnte, die dann die produktiven HGs aktivieren oder deaktivieren. Da es aber beim Auslöser keine UND Verknüpfungen gibt, würde das in meinem Beispiel verdammt viele HGs bedeuten. Ob das dann echt zielführend ist wage ich zu bezweifeln.

Warum Du beim Auslöser eine Und Verknüpfung brauchst verstehe ich nicht?

Soweit ich dich verstanden habe hast du Nacht und Tag aktive HG‘s

Wenn Es Tag wird aktiviere alle Tag aktive HG‘s und deaktiviere alle Nacht aktive HG‘s

Und wenn es Nacht wird umgekehrt.

Ne, so leicht ist es leider nicht.

Ich bräuchte dann also HGs wie:

Wenn oben dunkel
Und unten hell
Und Tag
Dann aktiviere…

Wenn oben dunkel
Und unten dunkel
Und Tag
Dann aktiviere…

Wenn oben dunkel
Und unten hell
Und Nacht
Dann aktiviere…

Wenn oben dunkel
Und unten dunkel
Und Nacht
Dann aktiviere…

Und dann nochmal das ganze mit Auslöser für Tag und Nacht und nochmal das ganze mit Auslöser für unten hell/dunkel. Da würde also schon ein wenig etwas zusammen kommen…

EDIT: Man könnte das natürlich noch weiter verschachteln und erstmal HGs machen, die als Auslöser Tag und Nacht haben und die dann entsprechend die oben/unten hell/dunkel HGs aktivieren bzw. deaktivieren. Aber ich bleibe dennoch dabei, dass ich das nicht für zielführend halte.

Bei genauen studieren Deines Feature Vorschlags, muss ich gestehen, dass ich das Problem nicht wirklich verstehe?

Die Einträge in deinem Tagebuch sagen doch nur das keine Aktion ausgeführt wurde weil die Bedingung zum Zeitpunkt Auslöser nicht zutrifft.
Die einzige Möglichkeit das Ausführen des HG’s zu verhindern ist das HG zu deaktivieren.

Wie soll Deiner Meinung nach die einmalige Prüfung der Bedingungen satt finden ohne das das HG ausgeführt wird?!

Ich versteh es so:
Nur beim der Bedingungsprüfung beim Auslösen langt es ja, wenn man nach einer fehlgeschlagenen Bedingung mit dem weiteren Prüfen aufhört. Das HG wird ja eh nicht ausgelöst. Warum soll ich also, als Beispiel, wenn ich als Bedigung “nur am Tag” und “nur wenn es regnet” und “nur wenn das Licht an ist” noch die zwei letztgenannten Bedingungen prüfen, wenn es eh Nacht ist?

Hier wären meine Fragen:
Sind die Prüfungen für homee wirklich so schlimm oder ists eh egal (dann kann man es so lassen)
Ist eine Exit-Schleife beim Prüfen der Bedigungen evtl. sogar rechenintensiver als einfach alles abarbeiten (dann kann man es so lassen)
Schiesst man sich nicht selber ins Knie, wenn es mal ODER Bedigungen geben wird (Wunschdenken, aber evtl. auf einer geheimen homee Roadmap?) (dann kann man es so lassen)

Die 3 Einträge im TB sind ja nicht auf 3 nicht erfüllte Bedingung zurückzuführen, sonder auf 3 nicht erfüllte Aktionen!

D.h. Anzahl der Aktionen bestimmt die Anzahl der TB Einträge!

1 „Gefällt mir“

@Wildsparrow Jein. Grundsätzlich ja, aber homee scheint doch ein wenig anders zu funktionieren. Die Bedingungen werden nicht nacheinander geprüft (das hatte ich zunächst auch vermutet). Aktuell scheint es wie folgt zu laufen:

Sensor löst HG aus
dann springt homee wohl direkt zur ersten Aktion und prüft, ob alle Bedingungen erfüllt sind
dann zur zweiten Aktion und wieder Prüfung ob alle Bedingungen erfüllt sind
und so weiter bist alle Aktionen abgearbeitet sind.

Ich stelle es mir aber tatsächlich so vor:

Sensor löst HG aus
erste Bedingung wird geprüft (wenn diese nicht zustimmt ist hier Ende)
zweite Bedingung wird geprüft (wenn diese nicht zustimmt ist hier Ende)
uns so weiter

Oder wenn man beim oben abgebildeten Schema bleiben will, dann das die ganzen weiteren Aktionen nicht mehr prüft, wenn es beim ersten schon nicht gepasst hat.

Ob und inwiefern das alles dann Ressourcen spart kann ich nicht beurteilen. Bei der Masse an Tagebucheinträgen, die ich in meinem Beispiel habe, könnte ich mir schon vorstellen, dass es einige Ressourcen sparen würde.

Um es vielleicht nochmal einfach und kurz auf den Punkt zu bringen:

Wenn ich 10 Aktionen ausführen will, wenn es eine Bewegung gibt, dunkel ist und Nacht und homee dann bei der ersten Aktion feststellt, dass es zum Zeitpunkt der Bewegung nicht dunkel ist (oder nicht Nacht), warum muss homee dann bei den anderen 9 Aktionen auch noch prüfen, ob es zum Zeitpunkt der Bewegung dunkel und Nacht war?

Ob er das tatsächlich prüft, oder nur die TG Einträge dazu erzeugt, da bin ich überfragt.

Du kannst ja auf die Schnelle die Zu schaltende Geräte in eine Gruppe packen, dann hast Du nur einen TG Eintrag.

Ja, mit Gedanken Gruppen zu bilden, habe ich auch schon gespielt. Ich müsste natürlich mehrere Gruppen bilden, da ich ja je nachdem wo es dunkel ist auch andere Lampengruppen schalte. Das setzte aber natürlich voraus, dass alle Aktionen Lampen sind (wäre in meinem Beispiel so).

Das würde aber letztendlich nur mein relativ kleines Problem lösen, dass es weniger Tagebucheinträge gibt. Wie ich schon eingangs schrieb, funktioniert aber bei mir ja alles. Es geht also weniger um die konkrete Situation bei mir.

Mein Gedanke dabei war eigentlich vielmehr, dass diese Problematik vielleicht dazu führen könnte, dass es bei einigen nicht so rund läuft. Soweit ich das hier verstanden habe, sind die meisten homee User entweder im Forum gar nicht oder nur sehr begrenzt (nur dann wenn Probleme auftreten) aktiv. Das gleiche gilt wohl auch für Tagebuch-Analysen. Unzufrieden, dass es nicht richtig rund läuft scheinen da mehr zu sein (alles nur gefühlte Werte von mir). Ich wollte mit diesem Thema also eigentlich nichts weiter machen, als mal ein Augenmerk auf etwas zu lenken, was vielleicht Probleme bei Leuten lösen könnte, die gar nichts wissen, dass daher ihre Probleme kommen. Sollte ich mit diesem Gedanken auf dem Holzweg sein, weil z.B. das keine oder kaum Ressourcen frisst, dann ist das für mich auch ok. :slight_smile:

Wie gesagt sollte nur ein “Guck mal dahin, vielleicht hilft es euch” sein und kein “da muss dringend etwas geändert werden”.

Am Höhepunkt meiner homee Karriere hatte ich über 500 HG‘s bei weit über 100 Geräten über 4 Protokolle verteilt.
Ich hatte nicht den Eindruck, dass homee damit überfordert wäre!

Wenn eine SmartHome Zentrale damit überfordert ist, für was sie eigentlich konzipiert wurde, dann stimmt grundsätzlich irgendwas nicht!!

Hier nur eine Vermutung:
Die Bedingungen können ja an zwei Zeitpunkten (Trigger und Aktion) ausgewertet werden. Ausserdem, kann eine Aktion unmittelbar nach dem Trigger oder mit einer definierten Verspätung ausgeführt werden. Um alle verschiedenen Kombinationen davon abzudecken, muss das interne Mechanismus generisch gehalten werden, sodass Optimierungen wie von dir vorgeschlagen nicht möglich sind.

Dass Informationen über nicht erfüllte Bedingungen geloggt werden, ist eigentlich auch logisch. Damit kann man finden eben warum eine HG nicht wie erwartet lief.

Vielleicht kann ein zusätzlicher Filter dafür sorgen dass solche Tagebuch Einträge mit nicht erfüllten Bedingungen maskiert werden oder eben nur sie angezeigt werden?

Mit deiner Vermutung könntest du natürlich Recht habe, @lagavulin. Aber letztendlich können das und vieles andere hier, was vermutet wird wohl nur die Entwickler beantworten.

Da stimme ich dir allerdings nur begrenzt zu. Ich erkenne im Tagebuch ja nicht welche Aktion nicht ausgeführt wurden. Ich bekomme zwar mehrfach die Meldung, dass eine Aktion aufgrund einer nicht erfüllten Bedingung nicht ausgelöst wurde, aber nicht welche. Die Meldungen sind alle exakt identisch. So nutzen die wohl wenig.

Finde den Fehler :slight_smile: Also kurz zur Erläuterung: Das erste Bild ist die erste Aktion, die nicht ausgelöst wird, zu erkennen daran, dass unten noch „Treppe Lampen Tag an unten ausgelöst“ steht. Das zweite Bild zeigt dann die zweite Aktion, die ebenfalls nicht ausgeführt wurde.

EDIT: Das ist übrigens mit ein Grund, warum ich das alles erst gar nicht richtig verstanden habe, da es einfach ständig etliche komplett identische Meldungen gab. Ich hatte das erst so wie @Wildsparrow vermutet, dass jede Bedingung einzeln geprüft wird. Hatte dem aber lange auch nicht wirklich Bedeutung geschenkt, da ja immer alles zu meiner vollsten Zufriedenheit funktioniert hat, abgesehen davon, dass diese Meldungen mein Tagebuch zugespamt haben. Nun war ich dabei grundsätzlich meinen homee mal „aufzuräumen“ und zu prüfen, ob eigentlich alle HGs gut durchlaufen. Und dann habe ich mir das mal genauer angeguckt.

Ja, es wäre schön zu sehen, welche Aktion durch welche Bedingungen nicht ausgelöst werden. Würde beim Troubleshooten sehr helfen. Und bei einem eventuellen zukünftigen Export des Tagebuchs.

VG
M