Bitte um Hilfe bei IF-Bedingung (Info über noch offene Fenster bei Tür-Öffnung)

Begonnen von MaJu, 22 April 2014, 22:59:54

Vorheriges Thema - Nächstes Thema

MaJu

Habe etwas anderes getestet: Komischerweise reagiert das notify nur auf die mittlere IF-Bedingung (Wohnzimmerfenster), die erste und letzte IF-Bedingung werden ignoriert.
Also habe ich bei DEF im notify am Anfang und am Ende einfach noch eine sinnlose IF-Auswertung hinzugefügt. Und schon geht es für alle 3 Fenster.
Aber nur jeweils einzeln. Hier werde ich nun für jedes Fenster ein einzelnes notify anlegen, damit die Ansagen gleich hintereinanderkommen welche Fenster alles offen sind.

So sieht DEF jetzt aus:


Wohnungstuer:open (
IF ([blablubb] eq "open") (setFlurtablet ttsSay Test 1);
IF ([Fenster_Katzenzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Katzenzimmer ist noch offen);
IF ([Fenster_Wohnzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Wohnzimmer ist noch offen);
IF ([Fenster_Schlafzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Schlafzimmer ist noch offen);
IF ([blubbbla] eq "open") (set Flurtablet ttsSay Test 2)
)


Komisch.
Erlebnisreiche Grüße aus Leipzig!

Damian

Zitat von: MaJu am 23 April 2014, 23:31:33
Habe etwas anderes getestet: Komischerweise reagiert das notify nur auf die mittlere IF-Bedingung (Wohnzimmerfenster), die erste und letzte IF-Bedingung werden ignoriert.
Also habe ich bei DEF im notify am Anfang und am Ende einfach noch eine sinnlose IF-Auswertung hinzugefügt. Und schon geht es für alle 3 Fenster.
Aber nur jeweils einzeln. Hier werde ich nun für jedes Fenster ein einzelnes notify anlegen, damit die Ansagen gleich hintereinanderkommen welche Fenster alles offen sind.

Dann wirst du einige Fehlermeldungen im Log haben. Das mit den runden Klammern kann nicht richtig funktionieren. Ich bin mir sicher, dass du bei meinem ersten Bespiel kein Leerzeichen hinter open hattest.

Dieser Code sollte ebenfalls funktionieren:

Wohnungstuer:open IF ([Fenster_Katzenzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Katzenzimmer ist noch offen);
IF ([Fenster_Wohnzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Wohnzimmer ist noch offen);
IF ([Fenster_Schlafzimmer] eq "open") (set Flurtablet ttsSay Achtung! Fenster im Schlafzimmer ist noch offen)


Gruß

Damian


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

MaJu

Danke Damian, genau DAS funktioniert :-)

Zumindest theoretisch. Die TTS-Ansage-Aufträge werden erzeugt. Leider werden sie aber nicht nacheinander von der WebViewControl-App abgearbeitet wenn mehrere Fenster offen sind. Sondern solange noch eine Ansage läuft wird keine neue akzeptiert.

Aber das ist eine andere Baustelle, zu der ich im WebViewControl-Thread bereits um Hilfe gebeten habe (http://forum.fhem.de/index.php/topic,10628.0.html.

Dennoch danke, das Hauptthema ist damit abgeschlossen.
Erlebnisreiche Grüße aus Leipzig!

der-Lolo

wegen dem ttsSay problem - erweiter deine IF bedingung doch einfach.

define Wohnungstuer_n notify Wohnungstuer:open IF (([Fenster_Katzenzimmer] eq "open") and ([Fenster_Wohnzimmer] eq "open")) (set Flurtablet ttsSay Achtung! Fenster im Katzenzimmer und im Wohnzimmer ist noch offen)