FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: eldrik am 11 Mai 2014, 22:31:46

Titel: Zweite Werteabfrage verzögert dürchführen
Beitrag von: eldrik am 11 Mai 2014, 22:31:46
Hi,

Ich habe derzeit einen readingsProxy, welcher auf einen Pin meines 1 Wire ds2408 hört, ändert sich dieser wird eine Funktion über valueFn aufgerufen.

Über die Funktion Frage ich den einen Pin ab, an dem ein Reedkontakt einer Schiebetür hängt und an einem anderen Pin hängt ein weiterer Reedkontakt der Schiebetür, mit beiden zusammen stelle ich den Zustand der Tür fest, geschlossen, gekippt oder geöffnet.

Nun kann es jedoch sein, dass im Falle einer geöffneten Tür, der zweite Reedkontakt noch nicht den Wert geändert hat und der Status wird als Konsequenz nicht korrekt angezeigt.

Wie kann ich die Abfrage des zweiten Werts um einen Sicherheitspuffer hinauszögern?

Das ist mein derzeit verwendeter Code:

{ if ($VALUE == "0" && ReadingsVal("F2Contact_EG_rechts1","sensed.5","0") == "0"){"closed"} elsif ($VALUE == "1" && ReadingsVal("F2Contact_EG_rechts1","sensed.5","0") == "0"){"tilted"} elsif ($VALUE == "1" && ReadingsVal("F2Contact_EG_rechts1","sensed.5","0") == "1"){"open"}}

Über eure Unterstützung Würde ich mich freuen.

Greetz
Eldrik
Titel: Zweite Werteabfrage verzögert dürchführen
Beitrag von: justme1968 am 11 Mai 2014, 22:41:21
ich würde das mit einer structue lösen die das ganze unabhängig von timing und reihenfolge macht.

- einen readingsProxy für den einen kontakt mit den zuständen open und closed
- einen zweiten readingsProxy für den anderen kontakt mit den zusänden tilted und closed
- eine structure die das ganze in die priorotät open tilted closed bringt

dann sind alle pins und devices unabhängig von einander und es spielt an keiner stelle mehr eine reihenfolge oder ein timing eine rolle.

gruss
  andre
Titel: Antw:Zweite Werteabfrage verzögert dürchführen
Beitrag von: Zrrronggg! am 12 Mai 2014, 00:17:43
Der Code ist ja nicht vollständig.

Irgendwas läst diese Abfrage ja aus. Da gibt's irgendein "define statusabfrage notify irgendwas { if ($VALUE ==...", oder? Und warum schiebst du dann die ganze Anfrage nicht x Sekunden nach hinten indem du das define ein weiteres anlegen lässt?


Titel: Antw:Zweite Werteabfrage verzögert dürchführen
Beitrag von: eldrik am 12 Mai 2014, 09:11:40
Zitat von: justme1968 am 11 Mai 2014, 22:41:21
ich würde das mit einer structue lösen die das ganze unabhängig von timing und reihenfolge macht.

- einen readingsProxy für den einen kontakt mit den zuständen open und closed
- einen zweiten readingsProxy für den anderen kontakt mit den zusänden tilted und closed
- eine structure die das ganze in die priorotät open tilted closed bringt

dann sind alle pins und devices unabhängig von einander und es spielt an keiner stelle mehr eine reihenfolge oder ein timing eine rolle.

gruss
  andre

Hey Andre,

also einen readingsProxy (Kontakt oben), der nur noch sich selbst auf 0 und 1 prüft und den Zustand closed und tilted erhält und einen zweiten readingsProxy (Kontakt unten) der die Zustände closed und open erhält?

Im structure dann über clientstate_priority open|tilted|closed die Priorität festlegen?!

Greetz
Eldrik
Titel: Antw:Zweite Werteabfrage verzögert dürchführen
Beitrag von: justme1968 am 12 Mai 2014, 09:14:01
genau das ist die idee...

gruss
  andre
Titel: Antw:Zweite Werteabfrage verzögert dürchführen
Beitrag von: eldrik am 13 Mai 2014, 04:28:20
kurze Rückmeldung, habe das ganze wie von Andre vorgeschlagen implementiert und es funktioniert hervorragend  :)

Greetz
Eldrik
Titel: Antw:Zweite Werteabfrage verzögert dürchführen
Beitrag von: justme1968 am 13 Mai 2014, 17:26:09
ich hab gerade die readingsProxy seite im wiki angefangen.

vielleicht magst du ja deine anwendungen da rein setzen :)

gruss
  andre