FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wendeling am 10 Januar 2018, 19:58:54

Titel: Doif mehrere set befehle
Beitrag von: wendeling am 10 Januar 2018, 19:58:54
Hallo,
hab hier für die Spezialisten wahrscheinlich eine sehr einfache Frage .
Wie muss ich in einem Doif befehlssatz schreiben, dass beim Erfüllen der Bedingung mehrere Befehle ausgeführt werden ?

Folgende Befehle sollen ausgeführt werden:

set FBDECT_FB_7490_36 on
set HM_56E099_Sw_07 on-for-timer 0.5
set GeiHub activity Beamer.-.TV

Folgendes habe ich versucht :

defmod Beamer_START DOIF ([Beamer] eq "on" ) (set FBDECT_FB_7490_36 on|HM_56E099_Sw_07 on-for-timer 0.5|GeiHub activity Beamer.-.TV) DOELSEIF ([Beamer] eq "off") (set HM_56E099_Sw_08 on-for-timer 0.5)


Funktioniert leider nicht

Gruß
Wendelin

Titel: Antw:Doif mehrere set befehle
Beitrag von: kumue am 10 Januar 2018, 20:03:09
aus der DOIF-commandref...
ZitatSollen mehrere FHEM-Befehle ausgeführt werden, so werden sie mit Komma statt mit Semikolon angegeben ... (set lamp1 on, set lamp2 off)
Titel: Antw:Doif mehrere set befehle
Beitrag von: wendeling am 10 Januar 2018, 20:04:59
Werde ich gleich probieren
Titel: Antw:Doif mehrere set befehle
Beitrag von: tiroso am 10 Januar 2018, 20:05:38
https://fhem.de/commandref_DE.html#DOIF_Angaben_im_Ausfuehrungsteil
Titel: Antw:Doif mehrere set befehle
Beitrag von: wendeling am 11 Januar 2018, 09:34:42
Hat funktioniert , Danke
Titel: Antw:Doif mehrere set befehle
Beitrag von: Haus-Andi am 01 September 2018, 13:30:21
Hallo zusammen

Ich habe da ein gleiches Problem und habe schon sehr viele Versionen durchprobiert, aber leider ohne Erfolg:


        ([Ta_Ventil_Aus:"pressed"])
(set OWX_29_FA9A18000000 output E off ,
set OWX_29_FA9A18000000 output F off ,
set OWX_29_FA9A18000000 output G off ,
set OWX_29_FA9A18000000 output H off
)
DOELSE


Ich habe 4x Bewässerungsventil an einem 1W-Slave im Garten, nun möchte ich mit einem WEB-Taster alle gleichzeitig ausschalten können. Leider funktioniert das meistens nur beim "Output H". Was ist an meiner Schreibweise so falsch? Einzeln funktionieren die Befehl einwandfrei, also ist irgendwas an der "set........"-Zeile falsch.

Vieleicht kann da jemand helfen?
Danke
Andi
Titel: Antw:Doif mehrere set befehle
Beitrag von: Damian am 01 September 2018, 17:20:16
Zitat von: Haus-Andi am 01 September 2018, 13:30:21
Hallo zusammen

Ich habe da ein gleiches Problem und habe schon sehr viele Versionen durchprobiert, aber leider ohne Erfolg:


        ([Ta_Ventil_Aus:"pressed"])
(set OWX_29_FA9A18000000 output E off ,
set OWX_29_FA9A18000000 output F off ,
set OWX_29_FA9A18000000 output G off ,
set OWX_29_FA9A18000000 output H off
)
DOELSE


Ich habe 4x Bewässerungsventil an einem 1W-Slave im Garten, nun möchte ich mit einem WEB-Taster alle gleichzeitig ausschalten können. Leider funktioniert das meistens nur beim "Output H". Was ist an meiner Schreibweise so falsch? Einzeln funktionieren die Befehl einwandfrei, also ist irgendwas an der "set........"-Zeile falsch.

Vieleicht kann da jemand helfen?
Danke
Andi

Es sieht mir nicht nach einem DOIF-Problem aus, die Syntax sollte so funktionieren. Möglicherweise gibt es Probleme, wenn mehrere Befehle
an OWX_29_FA9A18000000 output direkt nacheinander absetzt - dann müsste man verzögern.
Titel: Antw:Doif mehrere set befehle
Beitrag von: chq am 01 September 2018, 17:57:53
Hier beispielhaft ein DOIF, bei dem (bei mir zumindest) jedes Kommando funktioniert (auch die beiden set-Befehle der letzten Zeile):

([06:20|AT]) (set HM_rolloWohnzimmer pct 27, IF ([HM_rolloEsszimmer:state] eq "closed") (set HM_rolloEsszimmer pct 100))

DOELSEIF ([07:20|WE]) (set HM_rolloWohnzimmer pct 27, IF ([HM_rolloEsszimmer:state] eq "closed") (set HM_rolloEsszimmer pct 100))

DOELSEIF ([{sunset("HORIZON=-3",0,"17:00","22:00")}] and ([HM_markise:state] eq "closed" and [HM_rolloEsszimmer:control] > "68")) (set HM_rolloEsszimmer pct 59)

DOELSEIF ([22:00]) (set HM_rolloWohnzimmer pct 0, set HM_rolloEsszimmer pct 0)


Vielleicht hilft's ja bei der Lösungssuche.

Gruß Chris
Titel: Antw:Doif mehrere set befehle
Beitrag von: Prof. Dr. Peter Henning am 01 September 2018, 19:30:18
ZitatMöglicherweise gibt es Probleme, wenn mehrere Befehle
an OWX_29_FA9A18000000 output direkt nacheinander absetzt - dann müsste man verzögern.

Das ist komplett richtig, dafür sind nicht nur die OW... Module ungeeignet, sondern der gesamte 1-Wire Bus kann das nicht.
Stattdessen sollte man einfach den gewünschten Zustand aller Ausgänge in EINE Zahl verpacken (0..15) und mit set <device> gpio <xxx> senden.
Eventuell logisch UND mit dem vorherigen Wert des gpio-Readings.

LG

pah
Titel: Antw:Doif mehrere set befehle
Beitrag von: Haus-Andi am 01 September 2018, 20:09:17
Getreu nach dem Motto von Chris "So einfach wie möglich, so kompliziert wie nötig", genau darum habe ich das direkt mit dem "Output x" gemacht.

Wenn ich das auf eine Zahl bringen muss, bin ich etwas überfordert, zumal ich ja einen DS2408 Slave mit 8 Relais habe. Diese Relais sind teilweise für meine Solaranlage und die Notstromversorgung zuständig. Ich habe bis jetzt nicht begriffen wie man das macht, leider bin ich eben nicht ein Software Ingenieur sondern nur Elektroplaner, da ist alles eindeutiger: wenn es funkt und blitzt hat die Elektrizität eben falsch gearbeitet.

Vieleicht kennt ja jemand eine Beschreibung bei der auch ich das begreifen kann?

Andi