structure readonly möglich?

Begonnen von FHEMAN, 27 Februar 2021, 23:54:01

Vorheriges Thema - Nächstes Thema

FHEMAN

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


NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

frober

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.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

rudolfkoenig

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.

FHEMAN

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?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

frober

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.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

FHEMAN

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. 
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

frober

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.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...