[gelöst] DOELSEIF mit mehreren Befehlen ... triggert komisch

Begonnen von dirk.k, 12 Mai 2023, 22:01:39

Vorheriges Thema - Nächstes Thema

dirk.k

Ich verwende ein DOIF, um diverse IR-Codes in Funktionen zu verwenden.

Das funktionierte auch sehr gut.
Mit einer bestimmten Taste konnte ich zwischen Sendern wechseln...
DOELSEIF ([LEDKueche1:Result2] =~ "0x00FF30CF" and [?SB_PiHiFiZero:favorites] eq "SRF_3_1036_Euro-Hits"  ) (set SB_PiHiFiZero favorites Radio_Fritz_vom_rbb)
DOELSEIF ([LEDKueche1:Result2] =~ "0x00FF30CF"                                                           ) (set SB_PiHiFiZero favorites SRF_3_1036_Euro-Hits)

da die Liste länger wurde, wollte ich eine Senderansage einbauen.
jetzt fühlte sich aber immer das erste DiFi zuständig ... es wurde also bei jedem Tastendruck der erste Sender gewählt (und angesagt):
DOELSEIF ([LEDKueche1:Result2] =~ "0x00FF30CF" and [?SB_PiHiFiZero:favorites] eq "SRF_3_1036_Euro-Hits"  ) (set SB_PiHiFiZero favorites Radio_Fritz_vom_rbb;set SB_PiHiFiZero sayText "Fritz")
DOELSEIF ([LEDKueche1:Result2] =~ "0x00FF30CF"                                                           ) (set SB_PiHiFiZero favorites SRF_3_1036_Euro-Hits;set SB_PiHiFiZero sayText "S R F 3")

Wo liegt mein Fehler?

danke, Dirk


Per

In DOIF ist das Komma der Befehlstrenner!
Aber bei nur einem Trigger (und diversen weiteren Bedingungen), wäre da nicht ein IF (oder if im Perl Mode) besser geeignet?

Damian

Wenn ein Zweig ausgeführt wird, dann muss die Bedingung wahr gewesen sein.

Immer die allgemeinen Bedinungen am Ende und die speziellen vorziehen - so wie du es gepostet hast.

Ich vermute, du zeigst uns nicht die ganze Wahrheit.


Für konkrete Hilfe musst du auch eine konkrete Ausgabe von list vom DOIF-Device lieferen am besten von dem Zustand, den du dir nicht erklären kannst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

dirk.k

Hallo zusammen,
Die ganze Warheit:
das DOIF-Device ist ziemlich lang, da es 3 Geräte mit >30 IR-Codes bedient (>50 DOELSEIF).
Daher nur der Ausschnitt.
Hätte das DOELSEIF garnicht getriggert, hätte ich auch an einen Definitionsfehler gedacht und alle/mehr gepostet. 
Wie dem auch sei ... ich habe die zwischenzeitlich auskommentierten Umschaltaktionen mit Ansage wieder aktiviert, um mehr Details, Debug-logs und Events liefern zu können ... aber heute tritt der Fehler nicht auf. Umschalten mit Ansage, genau wie angedacht. Witzig.

Danke an alle für die motivierenden Tips und Ideen.