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
@) = alles nur zur Beruhigung meiner Frau...
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
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