Guten Abend,
ich möchte für diverse Rolladenaktionen structure verwenden, um bspw. (fast) alle Ost-Rollos zu erfassen via
define Rollos.Alle structure Rollos.Alle Rollo.(E|O)G.*:FILTER=Himmelsrichtung=OST:FILTER=i:NAME!=Rollo.EG.WC
Schalten via "set Rollos.Alle off" soll jedoch ausschließlich über ein eigenes Notify geschehen und *nicht* über die Structure. Quasi als reaonly structure. (Hintergrund ist, dass ich im Notify sehr viel mit weiteren Filtern arbeite.)
Wie kann ich das realisieren?
ReadingsGroup als Alternative fällt meiner Meinung nach aus, weil ich hier nicht den gesammelten state angezeigt bekomme bzw. verwerten kann.
Danke für jede Hilfe!
Ronny
Readonly wird vermutlich nicht gehen, da du das Set ja fürs notify brauchst.
Structure in einen eigenen Raum und diese dann verstecken ( hiddenroom).
Wenn du state brauchst, dann nimm zusätzlich readingsProxy.
ZitatSchalten via "set Rollos.Alle off" soll jedoch ausschließlich über ein eigenes Notify geschehen und *nicht* über die Structure.
Diesen Satz verstehe ich nicht. Ich habe mit der Semantik mein Problem, nicht mit der Syntax.
Wenn es um die FHEMEB (telnet/etc) Bedienung geht, dann kann man das Problem auch mit einer allowed Instanz loesen, neben dem o.g. Verstecken.
Derzeit verwende ich Dummys in der Form Rollos.NORD, Rollos.EG, Rollos.Alle und ein Notify Rollos.(EG|OG|NORD|OST|SUED|WEST).*(on|off).*
Diese Dummys wollte ich upgraden zu schlauen Structures. Und diese (dahinterliegenden Devices) sollten daher nicht zwangsläufig schalten.
Wenn ich es aber gerade richtig überlege, kann ich das Thema schon damit lösen, dass ich die Structure Devices einfach zusätzlich anlege (struc.Rollos.NORD, ...) und auswerte, aber nie schalte. Die Dummys benötige ich ja leider trotzdem noch, um Errorlogs zu vermeiden.
Konntet ihr nachvollziehen, was ich meine?
Zitat von: FHEMAN am 04 März 2021, 17:59:56
Derzeit verwende ich Dummys in der Form Rollos.NORD, Rollos.EG, Rollos.Alle und ein Notify Rollos.(EG|OG|NORD|OST|SUED|WEST).*(on|off).*
Diese Dummys wollte ich upgraden zu schlauen Structures. Und diese (dahinterliegenden Devices) sollten daher nicht zwangsläufig schalten.
Wenn ich es aber gerade richtig überlege, kann ich das Thema schon damit lösen, dass ich die Structure Devices einfach zusätzlich anlege (struc.Rollos.NORD, ...) und auswerte, aber nie schalte. Die Dummys benötige ich ja leider trotzdem noch, um Errorlogs zu vermeiden.
Konntet ihr nachvollziehen, was ich meine?
Nicht wirklich..für was Dummys beim Rolladen und welche Errorlogs?
Vielleicht teilst du uns Mal mit, wie die Rolladen gesteuert werden.
Okay, es wird hoffentlich klarer, wenn ich mal den Kern des Notifies poste:
notify Rollos.(EG|OG|NORD|OST|SUED|WEST).*(on|off).* {
...
if ($EVENT eq "off") {
...
} elsif ($EVENT eq "off-lüften") {
$EVENT = "off";
$WindowTuerOpenFilter = ":FILTER=r:Fensterstatus!=open|dooropen|tilt|doortilt:FILTER=a:ignorieren!=.*$EVENT.*";
$WindowOpenSetting = ":FILTER=r:Fensterstatus=open|dooropen|tilt|doortilt:FILTER=a:ignorieren!=.*$EVENT.*:FILTER=r:pct>18 18";
$WindowOpenSettingQueue = ":FILTER=r:Fensterstatus=open|dooropen|tilt|doortilt:FILTER=a:ignorieren!=.*$EVENT.*:FILTER=r:pct>18";
} elsif (($EVENT eq "on") && ((Value("Alarmanlage") ne "on") || (Value("Anwesenheit") ne "off"))) {
# Nur die Rolläden mit offener Terrassentür (=dooropen) dürfen nicht RUNTER gehen, nicht mal zum belüften!
$WindowTuerOpenFilter = ":FILTER=r:Fensterstatus!=open|dooropen|tilt|doortilt:FILTER=a:ignorieren!=.*$EVENT.*";
} elsif {}
...
if ($NAME eq "Rollos.EG.WZ") {
$Devices = "Rollo.EG.*:FILTER=i:NAME!=Rollo.EG.WC";
} elsif ($NAME eq "Rollos.EG.Alle") {
$Devices = "Rollo.EG.*";
} elsif ($NAME eq "Rollos.OG.Alle") {
$Devices = "Rollo.OG.*";
} elsif ($NAME eq "Rollos.NORD") {
$Devices = "Rollo.(E|O)G.*:FILTER=Himmelsrichtung=NORD";
} elsif ($NAME eq "Rollos.OST") {
$Devices = "Rollo.(E|O)G.*:FILTER=Himmelsrichtung=OST";
}
...
if ($Devices) {
fhem("set $Devices$WindowTuerOpenFilter $EVENT");
if ($WindowOpenSetting) { fhem("set $Devices$WindowOpenSetting");}
}
}
Mit Errorlogs meine ich Errors im Log, wenn die Dummys nicht exisiteren. Denn theoretisch würde das Notify ja auch ohne Dummy ansprechen.
Was ich eigentlich will, ist vor dem Schalten eine Rollogruppe zu prüfen, ob diese schon den Zielzustand hat. Daher die vorherige Auswertung über structure oder ...
Klar könnte ich das mit einem eigenen Dummy und Logik dahinter selbst bauen.
Aber ich gehe aktuell noch davon aus, dass ich das mit vorhandenen Mitteln hinbekomme.
Du hast doch pro Rollo ein Device, über das du ihn steuerst. Dieses Device hat, den Zustand des Rollos in der Regel als reading.
Prinzipiell kannst du auch so alle Zustände überwachen oder halt mit einer structure.
Ich sehe immer noch kein Bedarf für ein Dummy. Erst Recht nicht, wenn die Steuerung auch ohne Dummy funktioniert..
Um die Errorlogs zu verhindern, entferne die Abfrage dieser im notify.