globale Attr / device Attr

Begonnen von andiwi, 28 März 2013, 16:32:03

Vorheriges Thema - Nächstes Thema

andiwi

Hallo,

habe mein Fhem seit rund 2 Wochen im Einsatz - einfach spitze!!!

Auf eine Problematik bin ich gestoßen, vielleicht einfach nur übersehen.

Wie handhabt Ihr das, wenn ihr user defined Attribute benötigt, die aber zb bei allen FS20-RSU's vorhanden sein sollen.

Hatte früher bei meiner eigenen Software immer ein Atribut "Dauerauf" und "Dauerzu" für alle Rolläden mit denen ich schnell die ganzen Script in der ausführung verneinen konnte.

oder ein anderes Besispiel.

Ölbrenner, Heizungspumpe: bei diesen hatte ich bisher immer ein Attribut DauerAus, um z.B im Sommer jegliche Notify's und at's ein Einschalten zu verhindern.

Gut bei 2 Devices kann man auch ein globales Attr dazu verwenden zb. ÖlbrennerDauerAus und HeizungspumpeDauerAus

aber bei 15 Rölläden wird das unübersichtlich - ganz geschweige davon, wenn man mit Schleifen alle FS20RSU abhandeln will, was anscheinend auch möglich sein soll. Wenn dann diese Attribute am Device gekoppelt wären und man die in die Schleife mit einbeziehen könnte, wäre übersichtlicher und einfacher im Handling.

Mal gespannt wie Ihr das so gelöst habt...

Gruß Andreas


UliM

Hi,
mir ist nicht klar, warum Du das als Attribute führen willst.

Entweder Du definierst nen Dummy "Dauerauf", den Du vor dem Runterfahren der Rolläden prüfst.
Oder ich hab die Frage nicht verstanden :)

=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

andiwi

Hi UliM,

klar wenn das ein einzelnes Attribut wäre - ok. Aber das soll je Rolladen sein. Hab auf irgend einer Seite auch mal gelesen (da gings um FHT's), dass man gleiche Typen von Device's auch über ein Array aufrufen kann. Wenn die Dummy's aber jedes mal anders heissen, kann ich die in einer Schleife nicht abfragen. Würden die aber alle DauerAuf heissen, so wie zb. das Attribut room bei allen RSU's gleich ist, dann könnte man die in einer Schleife abfragen.

Ich denk es gibt bestimmt gute Lösungen, aber ich bin eben noch am Suchen....

Gruß Andreas

Zrrronggg!

Alle Rolladen so bennen, dass sie mit "Rollade_..." anfagen und dann später mittels

"Rollade.*" kann man die alle ansprechen.

ggf kann man sie alle mit "type" erwischen.



Zum Thema Array: Meiner Auffassung nach (TM) sind alle z.b. im Wiki dargestellten Lösungen wo irgendwas mit Array gemacht wird umständlicher als nötig und vielfach mit dem Risiko hoher Funklast verbunden. Das kann  Meiner Auffassung nach (TM) in der Regel simpler lösen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

andiwi

das mit den Gefahren von Array kann ich verstehen...

in einer Schleife über ein Array müssen echt alle Eventualitäten gecheckt werden, dass auch keinen unnötigen Sendungen vorgenommen werden.

Allerdings bei 18 Rolläden, scheint mir eine gut definierte Schleife mit einem Array einfachen zu sein als zb. 18 Notify's anzulegen, geschweige zu warten bei einer Änderung.

Mein bisheriger Stand ist folgender:

ein Dummy Frost, der über ein at alle 30min aktualisiert wird. Checkt ob die Temperatur über 3 Grad und das ReadingTimeStamp nicht älter als 1h.

Optimal wären meines Erachtens wenn jetzt bei jedem Rolladen, ein user-defined Attribut "DauerAuf" und "DauerZu" wäre.

Dann könnte man über eine große Schleife die über sunset ausgelöst wird alle Rolläden auf Frost, Dauerauf und Dauerzu testen und entsprechend senden.

Über ein anderes Hitze Notify (Aufbau ähnlich Frost) könnte man auch verhindern, dass im Sommer bei hohen Temperaturen die Rollo's im Obergeschoss schließen (lediglich die unteren wegen Sicherheitsaspekte)

mit Dummy's tu ich mich schwer, da das auch entgegen dem objektorientierten Programmieren wären (abgesehen von globalen attr) - aber möglich wenn man alle Dummy's auch zb. Rolladen_DauerAuf_Bad usw nennen würden und dann über Rolladen_DauerAuf* filtern würde.

Wäre das eigentlich ein großer Aufwand user-defined Attribute per Device einzuführen - was objektorintierter wäre?

andererseits wären doch user-defined Readings genau das was ich wollte - oder?

die laufen doch eigentlich zu den Attr genau parallel oder gibt es da mehr Unterschiede als dass diese über den Empfang verändert werden und noch eine Timestamp besitzen?

Gruß Andreas

Zrrronggg!

Hm. okay, ich denke ich kann dir nicht helfen. Ich hab letztlich zu wenig Ahnung von Programmierung und im Grunde verstehe ich auch noch nicht ganz, was du eigentlich machen willst.

18 Rolladen sind aber auch ne Menge.



FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL