Initialzustand bei Aggregation von Sensoren

Begonnen von Guest, 28 November 2012, 16:54:32

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo *,

ich bin ein Neuling. Deshalb ist die Antwort auf meine Frage vielleicht
ganz einfach...

Ich aggregiere den Zustand mehrerer Sensoren über dummy-Devices, damit ich
Unregelmäßigkeiten sofort erkennen kann. Die dummy-Devices werden dazu
mittels notify getriggert. Nun das Problem:

Solange die Sensoren keine Ausgabe tätigen, befindet sich das dummy-Device
in einem unbestimmten Zustand.
*:-(*  Das ist nicht der von mir gewünschte Überblick...

Erzwinge ich während der Initialisierung*) einen Status, ist es vielleicht
der Falsche, nämlich einer, der nicht der Realität entspricht.
*:-(*  Auch das ist nicht der von mir gewünschte Überblick...

Abhelfen würde es, die Sensoren am Ende der Initialisierung*) zum
Übermitteln ihres Zustandes zu zwingen und damit die Aggregation zu starten.
*Nur wie??*

Die reale Hardware besteht aus vielen HomeMatic Fenstergriffsensoren
(Funk-Fenster-Drehgriffkontakt 'HM-Sec-RHS').
Hier ein bisschen "Pseudocode":

# Definition des Sensors an der rechten Terrassentür im Wohnzimmer des
Erdgeschosses
define EG.WZ.Terrassentuer.rechts CUL_HM XXYYZZ
[...]
attr EG.WZ.Terrassentuer.rechts eventMap closed:geschlossen open:offen
tilted:gekippt
[...]
attr EG.WZ.Terrassentuer.rechts subType threeStateSensor

[Hier werden noch mehr, z. B.  EG.WZ.Terrassentuer.links definiert]

# Aggregat aller Fenster im Wohnzimmer
define EG.WZ.Fenster dummy
attr EG.WZ.Fenster setList geschlossen offen

# Berechnung aller Fenster im Wohnzimmer+)
define EG.WZ.Fenster.Komposition notify EG.WZ.Terrassentuer.* { \
  my $Status1 = $value{"EG.WZ.Terrassentuer.rechts"};; \
  my $Status2 = $value{"EG.WZ.Terrassentuer.links"};; \
  \
  if ($Status1 eq "geschlossen" && $Status2 eq "geschlossen") \
  { \
    fhem "set EG.WZ.Fenster geschlossen";; \
  } \
  else \
  { \
    fhem "set EG.WZ.Fenster offen";; \
  } \
}

# Aggregat aller Fenster und Außentüren im Erdgeschoss
define EG.Fenster_und_Tueren dummy
attr EG.Fenster_und_Tueren setList geschlossen offen

# Berechnung aller Fenster und Außentüren im Erdgeschoss
define EG.Fenster_und_Tueren.Komposition notify
(EG.WZ.Fenster|EG.WZ.Tueren) { \
  my $Status1 = $value{"EG.WZ.Fenster"};; \
  my $Status2 = $value{"EG.WZ.Tueren"};; \
  \
  if ($Status1 eq "geschlossen" && $Status2 eq "geschlossen") \
  { \
    fhem "set EG.Fenster_und_Tueren geschlossen";; \
  } \
  else \
  { \
    fhem "set EG.Fenster_und_Tueren offen";; \
  } \
}

[usw. über Haus bis hin zu Grundstück@)]

MfG
SolRad

*) = von Fhem
+) = entsprechend FHEMWiki<http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify#notify_Befehl_4>
@) = alles nur zur Beruhigung meiner Frau...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Zumindest programmtechnisch kann mit

define SensorenEinlesen notify (global:INITIALIZED|global:REREADCFG) \
  set EG.WZ.Terrassentuer.rechts statusRequest;; \
  set EG.WZ.Terrassentuer.links  statusRequest;; \
[...und ganz viel mehr davon...]

die Kaskade erzwungen werden.

Nur

   1. Fragt statusRequest wirklich bei den Sensoren an? Die Sende-LEDs an
   den Sensoren bleiben nämlich aus...
   2. Wäre getConfig besser geeignet? Die Sende-LEDs an den Sensoren
   bleiben auch hier aus...
   3. Macht das Ganze überhaupt Sinn?


MfG
SolRad

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com