FHEM Forum

FHEM => fhem-users => Thema gestartet von: Mitch am 29 Februar 2012, 21:34:33

Titel: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 29 Februar 2012, 21:34:33
                                                     

Hallo Zusammen,

ich kämpfe jetzt schon seit drei Stunden mit zwei Bedingungen.

Ich habe einen Dummy Schalter und einen echten
Es soll ein FS20 geschlaten werden, wenn beide Schalter on sind.

Ich hatte erst das probiert: define act_on_zweischalter notify dummy {if
("%" eq "on") && ("echter" eq "on") {fhem ("schalte FS20")}}
dann das hier: define act_on_dummy notify dummy {if ("%" eq "on") {fhem
("define act_on_echter {if ("%" eq "on") {fhem ("schalte FS20")}}}}
und dann noch ein paar Kombinationen daraus, aber es will einfach nicht
funktionieren.

Danke für eure Hilfe!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Zrrronggg! am 01 März 2012, 02:37:36
                                                     

Erstes Beispiel, aber:

{ if ("%" eq "on" && "$value{echter}" eq "on") { fhem ("set FS20dings
on") }}




On 29 Feb., 21:34, Mitch wrote:
> Hallo Zusammen,
>
> ich kämpfe jetzt schon seit drei Stunden mit zwei Bedingungen.
>
> Ich habe einen Dummy Schalter und einen echten
> Es soll ein FS20 geschlaten werden, wenn beide Schalter on sind.
>
> Ich hatte erst das probiert: define act_on_zweischalter notify dummy {if
> ("%" eq "on") && ("echter" eq "on") {fhem ("schalte FS20")}}
> dann das hier: define act_on_dummy notify dummy {if ("%" eq "on") {fhem
> ("define act_on_echter {if ("%" eq "on") {fhem ("schalte FS20")}}}}
> und dann noch ein paar Kombinationen daraus, aber es will einfach nicht
> funktionieren.
>
> Danke für eure Hilfe!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 01 März 2012, 09:03:21
Originally posted by: <email address deleted>

Was genau funktoniert denn nicht?
Dein Notify triggert natürlich nur wenn sich der Zustand vom Dummy ändert.
Du willst aber sicher auch dann schalten, wenn du den anderen Schalter
drückst. Bin noch neu in FHEM aber denke mal du brauchst dazu einen zweiten
Notify.

Am Donnerstag, 1. März 2012 02:37:36 UTC+1 schrieb Zrrronggg!:
>
>
> Erstes Beispiel, aber:
>
> { if ("%" eq "on" && "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
>
>
>
> On 29 Feb., 21:34, Mitch wrote:
> > Hallo Zusammen,
> >
> > ich kämpfe jetzt schon seit drei Stunden mit zwei Bedingungen.
> >
> > Ich habe einen Dummy Schalter und einen echten
> > Es soll ein FS20 geschlaten werden, wenn beide Schalter on sind.
> >
> > Ich hatte erst das probiert: define act_on_zweischalter notify dummy {if
> > ("%" eq "on") && ("echter" eq "on") {fhem ("schalte FS20")}}
> > dann das hier: define act_on_dummy notify dummy {if ("%" eq "on") {fhem
> > ("define act_on_echter {if ("%" eq "on") {fhem ("schalte FS20")}}}}
> > und dann noch ein paar Kombinationen daraus, aber es will einfach nicht
> > funktionieren.
> >
> > Danke für eure Hilfe!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 01 März 2012, 17:49:44
                                                     

FUnktioniert leider nicht.
ich habe jetzt glaube ich alle Kombinationen ausgetestet und bekomme immer

Global symbol "$value" requires explicit package name at
oder
syntax error at
als Fehlermeldung.

Habe auch AND statt && getestet, da ich glaube bei String muss man AND nehmen.

Noch jemand eine Idee?

Nochmal zur Erklärung:
Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer davon ist ein "echter", der andere ein Dummy)



Am Donnerstag, 1. März 2012 02:37:36 UTC+1 schrieb Zrrronggg!:
>
>
> Erstes Beispiel, aber:
>
> { if ("%" eq "on" && "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
>
>
>
> On 29 Feb., 21:34, Mitch wrote:
> > Hallo Zusammen,
> >
> > ich kämpfe jetzt schon seit drei Stunden mit zwei Bedingungen.
> >
> > Ich habe einen Dummy Schalter und einen echten
> > Es soll ein FS20 geschlaten werden, wenn beide Schalter on sind.
> >
> > Ich hatte erst das probiert: define act_on_zweischalter notify dummy {if
> > ("%" eq "on") && ("echter" eq "on") {fhem ("schalte FS20")}}
> > dann das hier: define act_on_dummy notify dummy {if ("%" eq "on") {fhem
> > ("define act_on_echter {if ("%" eq "on") {fhem ("schalte FS20")}}}}
> > und dann noch ein paar Kombinationen daraus, aber es will einfach nicht
> > funktionieren.
> >
> > Danke für eure Hilfe!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Zrrronggg! am 01 März 2012, 22:00:57
                                                     

> Global symbol "$value" requires explicit package name at
> oder
> syntax error at
> als Fehlermeldung.

Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.

So oder so, dies hier muss funktionieren
define act_on_zweischalter notify dummy { if ("%" eq "on" &&
"$value{echter}" eq "on") { fhem ("set FS20dings
on") }}

Muss gehen, son Kram hab ich reichlich und bei mir geht der.
Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
unmittelbar nix.


> Global symbol "$value" requires explicit package name at
> oder
> syntax error at
> als Fehlermeldung.

Hm. Ob deine (Perl)Installation irgendwie Rotte ist?

> Habe auch AND statt && getestet, da ich glaube bei String muss man AND nehmen.

Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
Bedingungen verknüpft. Links und rechts von "&&" können beide
ERGEBNISSE jeweils TRUE oder FALSE sein.

if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.

Im Gegensatz z.b. zu

if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.

Siehe z.b. hier:
http://www.tizag.com/perlT/perlif.php


> Nochmal zur Erklärung:
> Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer davon ist ein "echter", der andere ein Dummy)

So richtig erklärts das noch nicht.

Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
"stehen", gibts kein Event.

Ich nehme mal na, du meinst folgendes:
Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
Richtig?


Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
einfallen:


1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:


define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
"$value{echter}" eq "on") { fhem ("set FS20dings
on") }}

define act_on_zweischalterD notify echter { if ("%" eq "on" &&
"$value{dummy}" eq "on") { fhem ("set FS20dings
on") }}


2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
der erste Test schon ins notify gelegt wird:

define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
"on") { fhem ("set FS20dings
on") }}

define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
"on") { fhem ("set FS20dings
on") }}



3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
Schalter im Namen gleich anfangen.
Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
Schalter heisst "schaltecht"

define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}


Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
Möglichkeiten verwendet und alle gehen bei mir.
(Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Zrrronggg! am 01 März 2012, 22:04:05
                                                     

(oder "Konfigarition" falsch schrieb)

On 1 Mrz., 22:00, "Zrrronggg!" wrote:
> > Global symbol "$value" requires explicit package name at
> > oder
> > syntax error at
> > als Fehlermeldung.
>
> Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.
>
> So oder so, dies hier muss funktionieren
> define act_on_zweischalter notify dummy { if ("%" eq "on" &&
> "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
> Muss gehen, son Kram hab ich reichlich und bei mir geht der.
> Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
> Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
> unmittelbar nix.
>
> > Global symbol "$value" requires explicit package name at
> > oder
> > syntax error at
> > als Fehlermeldung.
>
> Hm. Ob deine (Perl)Installation irgendwie Rotte ist?
>
> > Habe auch AND statt && getestet, da ich glaube bei String muss man AND nehmen.
>
> Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
> Bedingungen verknüpft. Links und rechts von "&&" können beide
> ERGEBNISSE jeweils TRUE oder FALSE sein.
>
> if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.
>
> Im Gegensatz z.b. zu
>
> if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.
>
> Siehe z.b. hier:http://www.tizag.com/perlT/perlif.php
>
> > Nochmal zur Erklärung:
> > Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer davon ist ein "echter", der andere ein Dummy)
>
> So richtig erklärts das noch nicht.
>
> Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
> "stehen", gibts kein Event.
>
> Ich nehme mal na, du meinst folgendes:
> Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
> schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
> Richtig?
>
> Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
> einfallen:
>
> 1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:
>
> define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
> "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
> define act_on_zweischalterD notify echter { if ("%" eq "on" &&
> "$value{dummy}" eq "on") { fhem ("set FS20dings
> on") }}
>
> 2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
> der erste Test schon ins notify gelegt wird:
>
> define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
> "on") { fhem ("set FS20dings
> on") }}
>
> define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
> "on") { fhem ("set FS20dings
> on") }}
>
> 3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
> Schalter im Namen gleich anfangen.
> Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
> Schalter heisst "schaltecht"
>
> define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
> eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}
>
> Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
> Möglichkeiten verwendet und alle gehen bei mir.
> (Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 01 März 2012, 22:04:56
Originally posted by: <email address deleted>

wenn wir mal kurz ignorieren dass es gehen müsste, was aber AUCH gehen
müsste, ist die ReadingsVal-Funktion zu nutzen. Also nicht $value{echter}
sondern dort stattdessen ReadingsVal("echter","state","off")

Am Donnerstag, 1. März 2012 22:00:57 UTC+1 schrieb Zrrronggg!:
>
>
> > Global symbol "$value" requires explicit package name at
> > oder
> > syntax error at
> > als Fehlermeldung.
>
> Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.
>
> So oder so, dies hier muss funktionieren
> define act_on_zweischalter notify dummy { if ("%" eq "on" &&
> "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
> Muss gehen, son Kram hab ich reichlich und bei mir geht der.
> Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
> Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
> unmittelbar nix.
>
>
> > Global symbol "$value" requires explicit package name at
> > oder
> > syntax error at
> > als Fehlermeldung.
>
> Hm. Ob deine (Perl)Installation irgendwie Rotte ist?
>
> > Habe auch AND statt && getestet, da ich glaube bei String muss man AND
> nehmen.
>
> Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
> Bedingungen verknüpft. Links und rechts von "&&" können beide
> ERGEBNISSE jeweils TRUE oder FALSE sein.
>
> if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.
>
> Im Gegensatz z.b. zu
>
> if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.
>
> Siehe z.b. hier:
> http://www.tizag.com/perlT/perlif.php
>
>
> > Nochmal zur Erklärung:
> > Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer
> davon ist ein "echter", der andere ein Dummy)
>
> So richtig erklärts das noch nicht.
>
> Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
> "stehen", gibts kein Event.
>
> Ich nehme mal na, du meinst folgendes:
> Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
> schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
> Richtig?
>
>
> Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
> einfallen:
>
>
> 1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:
>
>
> define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
> "$value{echter}" eq "on") { fhem ("set FS20dings
> on") }}
>
> define act_on_zweischalterD notify echter { if ("%" eq "on" &&
> "$value{dummy}" eq "on") { fhem ("set FS20dings
> on") }}
>
>
> 2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
> der erste Test schon ins notify gelegt wird:
>
> define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
> "on") { fhem ("set FS20dings
> on") }}
>
> define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
> "on") { fhem ("set FS20dings
> on") }}
>
>
>
> 3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
> Schalter im Namen gleich anfangen.
> Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
> Schalter heisst "schaltecht"
>
> define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
> eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}
>
>
> Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
> Möglichkeiten verwendet und alle gehen bei mir.
> (Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 02 März 2012, 00:02:05
Originally posted by: <email address deleted>

...und Value("device") statt $value{"device"}
siehe http://fhem.de/commandref.html#perl

 
Am Donnerstag, 1. März 2012 22:04:56 UTC+1 schrieb unimatrix:
>
> wenn wir mal kurz ignorieren dass es gehen müsste, was aber AUCH gehen
> müsste, ist die ReadingsVal-Funktion zu nutzen. Also nicht $value{echter}
> sondern dort stattdessen ReadingsVal("echter","state","off")
>
> Am Donnerstag, 1. März 2012 22:00:57 UTC+1 schrieb Zrrronggg!:
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.
>>
>> So oder so, dies hier muss funktionieren
>> define act_on_zweischalter notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> Muss gehen, son Kram hab ich reichlich und bei mir geht der.
>> Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
>> Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
>> unmittelbar nix.
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Hm. Ob deine (Perl)Installation irgendwie Rotte ist?
>>
>> > Habe auch AND statt && getestet, da ich glaube bei String muss man AND
>> nehmen.
>>
>> Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
>> Bedingungen verknüpft. Links und rechts von "&&" können beide
>> ERGEBNISSE jeweils TRUE oder FALSE sein.
>>
>> if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.
>>
>> Im Gegensatz z.b. zu
>>
>> if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.
>>
>> Siehe z.b. hier:
>> http://www.tizag.com/perlT/perlif.php
>>
>>
>> > Nochmal zur Erklärung:
>> > Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer
>> davon ist ein "echter", der andere ein Dummy)
>>
>> So richtig erklärts das noch nicht.
>>
>> Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
>> "stehen", gibts kein Event.
>>
>> Ich nehme mal na, du meinst folgendes:
>> Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
>> schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
>> Richtig?
>>
>>
>> Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
>> einfallen:
>>
>>
>> 1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:
>>
>>
>> define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterD notify echter { if ("%" eq "on" &&
>> "$value{dummy}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>> 2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
>> der erste Test schon ins notify gelegt wird:
>>
>> define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>>
>> 3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
>> Schalter im Namen gleich anfangen.
>> Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
>> Schalter heisst "schaltecht"
>>
>> define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
>> eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}
>>
>>
>> Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
>> Möglichkeiten verwendet und alle gehen bei mir.
>> (Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)
>>
>
Am Donnerstag, 1. März 2012 22:04:56 UTC+1 schrieb unimatrix:
>
> wenn wir mal kurz ignorieren dass es gehen müsste, was aber AUCH gehen
> müsste, ist die ReadingsVal-Funktion zu nutzen. Also nicht $value{echter}
> sondern dort stattdessen ReadingsVal("echter","state","off")
>
> Am Donnerstag, 1. März 2012 22:00:57 UTC+1 schrieb Zrrronggg!:
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.
>>
>> So oder so, dies hier muss funktionieren
>> define act_on_zweischalter notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> Muss gehen, son Kram hab ich reichlich und bei mir geht der.
>> Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
>> Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
>> unmittelbar nix.
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Hm. Ob deine (Perl)Installation irgendwie Rotte ist?
>>
>> > Habe auch AND statt && getestet, da ich glaube bei String muss man AND
>> nehmen.
>>
>> Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
>> Bedingungen verknüpft. Links und rechts von "&&" können beide
>> ERGEBNISSE jeweils TRUE oder FALSE sein.
>>
>> if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.
>>
>> Im Gegensatz z.b. zu
>>
>> if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.
>>
>> Siehe z.b. hier:
>> http://www.tizag.com/perlT/perlif.php
>>
>>
>> > Nochmal zur Erklärung:
>> > Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer
>> davon ist ein "echter", der andere ein Dummy)
>>
>> So richtig erklärts das noch nicht.
>>
>> Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
>> "stehen", gibts kein Event.
>>
>> Ich nehme mal na, du meinst folgendes:
>> Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
>> schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
>> Richtig?
>>
>>
>> Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
>> einfallen:
>>
>>
>> 1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:
>>
>>
>> define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterD notify echter { if ("%" eq "on" &&
>> "$value{dummy}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>> 2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
>> der erste Test schon ins notify gelegt wird:
>>
>> define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>>
>> 3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
>> Schalter im Namen gleich anfangen.
>> Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
>> Schalter heisst "schaltecht"
>>
>> define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
>> eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}
>>
>>
>> Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
>> Möglichkeiten verwendet und alle gehen bei mir.
>> (Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)
>>
>
Am Donnerstag, 1. März 2012 22:04:56 UTC+1 schrieb unimatrix:
>
> wenn wir mal kurz ignorieren dass es gehen müsste, was aber AUCH gehen
> müsste, ist die ReadingsVal-Funktion zu nutzen. Also nicht $value{echter}
> sondern dort stattdessen ReadingsVal("echter","state","off")
>
> Am Donnerstag, 1. März 2012 22:00:57 UTC+1 schrieb Zrrronggg!:
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Das ist aber mal ne seltsame Fehlermeldung, verstehe ich nicht.
>>
>> So oder so, dies hier muss funktionieren
>> define act_on_zweischalter notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> Muss gehen, son Kram hab ich reichlich und bei mir geht der.
>> Allerdings - da hat unimatrix recht - reagiert der nur, wenn der
>> Zustand von "dummy" sich ändert. Wenn du "echter" schaltest passiert
>> unmittelbar nix.
>>
>>
>> > Global symbol "$value" requires explicit package name at
>> > oder
>> > syntax error at
>> > als Fehlermeldung.
>>
>> Hm. Ob deine (Perl)Installation irgendwie Rotte ist?
>>
>> > Habe auch AND statt && getestet, da ich glaube bei String muss man AND
>> nehmen.
>>
>> Das wäre mir neu und mit Strings hat das doch nix zu tun, es werden
>> Bedingungen verknüpft. Links und rechts von "&&" können beide
>> ERGEBNISSE jeweils TRUE oder FALSE sein.
>>
>> if a && b ist insgesamt TRUE wenn a und b beide TRUE sind.
>>
>> Im Gegensatz z.b. zu
>>
>> if a || b    das ist nämlich TRUE wenn a ODER b TREU ist.
>>
>> Siehe z.b. hier:
>> http://www.tizag.com/perlT/perlif.php
>>
>>
>> > Nochmal zur Erklärung:
>> > Ein FS20ST soll nur schlaten, wenn zwei Schalter auf ON stehen (einer
>> davon ist ein "echter", der andere ein Dummy)
>>
>> So richtig erklärts das noch nicht.
>>
>> Welches EVENT soll den Vergleich den auslösen? Wenn schalter auf on
>> "stehen", gibts kein Event.
>>
>> Ich nehme mal na, du meinst folgendes:
>> Wenn einer der beiden Schalter "dummy" oder "echter" auf "on"
>> schalten, und der andere jeweils auch "on" ist, soll Aktion erfolgen.
>> Richtig?
>>
>>
>> Es gibt da zahlreiche Möglichkeiten. Drei Stück, die mir gerade so
>> einfallen:
>>
>>
>> 1. Die obige Vorgehensweise 2x, eines für jeden Schalter als Auslöser:
>>
>>
>> define act_on_zweischalterD notify dummy { if ("%" eq "on" &&
>> "$value{echter}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterD notify echter { if ("%" eq "on" &&
>> "$value{dummy}" eq "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>> 2. Möglichkeit: "&&" weglassen, wenn das irgendwie nicht läuft, indem
>> der erste Test schon ins notify gelegt wird:
>>
>> define act_on_zweischalterD notify dummy:on { if ("$value{echter}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>> define act_on_zweischalterE notify echter:on { if ("$value{dummy}" eq
>> "on") { fhem ("set FS20dings
>> on") }}
>>
>>
>>
>> 3. Möglichkeit: Das Ganze mit nur EINEM Statement, dazu müssen die
>> Schalter im Namen gleich anfangen.
>> Also der Dummyschalter heisst z.b. "schaltdummy"  und der echte
>> Schalter heisst "schaltecht"
>>
>> define act_on_zweischalter notify schalt.*:on { if ("$value{echter}"
>> eq "on" && "$value{dummy}" eq "on") { fhem ("set FS20dings on") }}
>>
>>
>> Ich habe an verschiedenen Stellen in meiner Konfigarition alle diese
>> Möglichkeiten verwendet und alle gehen bei mir.
>> (Höchstes, dass ich beim runtertippen jetzt na Klammer versiebt habe)
>>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Zrrronggg! am 02 März 2012, 02:51:09
                                                     

Eh....

On 2 Mrz., 00:02, UliM wrote:
> ...und Value("device") statt $value{"device"}
> siehehttp://fhem.de/commandref.html#perl

Wenn $value{"device"} nicht geht, würde die Hälfte meiner Steuerung
nicht gehen.
Unter anderem würde die Alarmanlage, die ich in den letzten Tagen
gebaut habe keinen Mucks machen, weil da die ganzen
Melderabhängikeiten mit Konstrukten wie
{ if ("$value{Tuer1}" eq "zu" &&  "$value{Tuer2}" eq "zu"  &&
"$value{Tuer3}" eq "zu") { fhem ("set Meldegruppe1 on") }}
funktioniert.

Die Alarmanlage funktioniert aber 1a. (Leider: Heute erstmals aus
versehen in eine scharfe Anlage gelaufen: 110 DB Piezo Pieper tut
richtig weh.)

Ich formuliere mal so: Bei meiner Fhem Installationen würden alle von
mir genannten Beispiele oben funktionieren (von Flüchtigkeitsfehlern
in dem was ich hinschrieb abgesehen).

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: rudolfkoenig am 02 März 2012, 09:00:12
                                                   

On Thu, Mar 01, 2012 at 01:04:56PM -0800, unimatrix wrote:
> wenn wir mal kurz ignorieren dass es gehen müsste, was aber AUCH gehen
> müsste, ist die ReadingsVal-Funktion zu nutzen. Also nicht $value{echter}
> sondern dort stattdessen ReadingsVal("echter","state","off")

Achtung: es gibt einen leichten Unterschied z.w $value{x}/Value("x") und
ReadingsVal("x", "state", undef), da es in zwei verschiedenen Variablen
gespeichert ist. DoTrigger() versucht diese beiden synchron zu halten.
Nein, ich finde das auch nicht toll.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 02 März 2012, 09:17:07
                                                     

Danke euch für eure Antworten.
Ich werde das heute Abend nochmal testen.

Achja, ReadingsVal geht natürlich nicht, da der "Empfänger" ein FS20ST ist
und dieser ja keine Rückmeldung gibt, bzw. sich nicht auslesen lässt.

Nochmal zum genauen Hintergrund.
Ich habe in meiner Klingel einen FS20Sender eingebaut, dieser sendet, wenn
es klingelt.
Nun wird ein Dummy definiert und nur wenn dieser auf "on" steht, wird durch
den Klingel FS20 eine Steckdoese FS20ST angesteuert.

Somit werde ich nochmal das hier testen:
define act_on_Türklingel notify Klingel2 {if ("%" eq "on" &&
"$value{dummy}" eq "on") { fhem ("set FS20ST on") }}

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: rudolfkoenig am 02 März 2012, 09:47:34
                                                   

> Achja, ReadingsVal geht natürlich nicht, da der "Empfänger" ein FS20ST ist
> und dieser ja keine Rückmeldung gibt, bzw. sich nicht auslesen lässt.

Das ist kein Grund, und ich faende es toll wenn man solche Aussagen vor dem
Posten verifizieren wuerde, sonst wird es von Anfaenger fuer bare Muenze
gehalten.

fhem> { ReadingsVal("FS20_SchalterName", "state", "Leer")}
on

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 02 März 2012, 10:01:52
                                                     

Aber Rudi, ein FS20 sendet nichts zurück.
Gerade nochmal getestet: { ReadingsVal("FS20_

Fenster", "state", "Leer")}

kommt immer: Leer

Es ist ja uch so, wenn Du im FHEM einen FS20ST auf ON setzt und dann
manuel, also direkt am FS20ST ausschaltest, steht er im FHEM immer noch auf
ON.

Du kannst mit ReadingVal nur den Status aus FHEM auslesen, nicht aus dem
Schalter.
Oder steh ich jetzt total auf dem Schlauch??

Am Freitag, 2. März 2012 09:47:34 UTC+1 schrieb Rudolf Koenig:
>
> > Achja, ReadingsVal geht nat�rlich nicht, da der "Empf�nger" ein
> FS20ST ist
> > und dieser ja keine R�ckmeldung gibt, bzw. sich nicht auslesen l�sst.
>
> Das ist kein Grund, und ich faende es toll wenn man solche Aussagen vor dem
> Posten verifizieren wuerde, sonst wird es von Anfaenger fuer bare Muenze
> gehalten.
>
> fhem> { ReadingsVal("FS20_SchalterName", "state", "Leer")}
> on
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: rudolfkoenig am 02 März 2012, 10:38:55
                                                   

> Aber Rudi, ein FS20 sendet nichts zurück.

Aber Mitch, ich muesste doch wissen, was ich programmiert habe, und seit 6
Jahren verwende, auch wenn ich wg. Grippe z.Zt eine lange Leitung habe.
ReadingsVal hat nichts mit Zurueckmeldung zu tun, sondern damit, was der
Modul-Programmierer als status sehen moechte. Im Fall von FS20 ist es das
letzte ausgesendete oder empfangene Befehl.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 02 März 2012, 10:57:23
                                                     

Natürlich glaube ich, das Du weis was Du programmiert hast :-)

Aber in Deinem letzten Satz ist es doch schön geschrieben:* Im Fall von
FS20 ist es das
letzte ausgesendete oder empfangene Befehl.*

Und das hilft mir in meinem Fall nicht weiter, weil ich den echten/realen
Zustand benötige und nicht den letzten, den FHEM empfangen/gesendet hat.
Das ist halt der größte Nachteil bei den FS20 Komponenten.

Liegt ja auch nicht an Deiner Programmierung, sondern am FS20 System.


Am Freitag, 2. März 2012 10:38:55 UTC+1 schrieb Rudolf Koenig:
>
> > Aber Rudi, ein FS20 sendet nichts zur�ck.
>
> Aber Mitch, ich muesste doch wissen, was ich programmiert habe, und seit 6
> Jahren verwende, auch wenn ich wg. Grippe z.Zt eine lange Leitung habe.
> ReadingsVal hat nichts mit Zurueckmeldung zu tun, sondern damit, was der
> Modul-Programmierer als status sehen moechte. Im Fall von FS20 ist es das
> letzte ausgesendete oder empfangene Befehl.
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Zrrronggg! am 02 März 2012, 12:55:57
                                                     

> Und das hilft mir in meinem Fall nicht weiter, weil ich den echten/realen
> Zustand benötige und nicht den letzten, den FHEM empfangen/gesendet hat.
> Das ist halt der größte Nachteil bei den FS20 Komponenten.


Bei Sendern gibt es den Nachteil kaum. Die fehlende Bidirektionle
Kommunikation ist doch nur dann ein Problem, wenn der Sender wissen
will, ob der EMPFÄNGER den Befehl bekommen hat.
Aber was hilft es der Türklingeltaste zu wissen, ob Fhem den Tastdruck
bemerkt hat?
Nichts.
Gerade in der von dir verwendeten Richtung gibt es im praktischen
Verhalten keinen unterscheid zwischen HM und FS20.


Also: Du hast doch eine Klingel, die aus einem Sender besteht und der
sendet doch. Und wenn er sendet ändert sich auch der Status in Fhem,
*wenn* empfangen wurde. Wurde aber NICHT empfangen hat, geht
ReadingsVal nicht, aber alles andere auch nicht.

> Zustand benötige und nicht den letzten, den FHEM empfangen/gesendet hat.

Aber bei einer Klingel brauchst du GENAU den zuetzt empfangenen, der
unter normalen Bedingungen auch der REALE ist. Wenn nicht - die
Klingeltatste also sendet, aber Fhem nix empfängt - gibt es KEINE
Methode den Tastendruck festzustellen. Z.B. würde dann auch das notify
nicht funktionieren.

So oder so: Dein letzter Vorschlag, was du probieren willst sollte
gehen.

Und Rudi: Gute Besserung.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 03 März 2012, 10:01:40
                                                     

So, gerade mal getestet.

Mit *define act_on_Tuerklingel notify Klingel2 {if ("%" eq "on" &&
"$value{Klingel1}" eq "on") { fhem("set Tuerlicht on-for-timer 1") } }*funktioniert es jetzt so wie ich mir das vorgestellt habe.

Vielen Dank für eure Hilfe!


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 03 März 2012, 13:45:09
Originally posted by: <email address deleted>

Hallo Mitch,

vielleicht blöde Frage, aber nur zum Verständnis für einen Anfänger,
"Türklingel2" ist in deinem ersten Post der Dummy?

Ich habe nähmlich ähnliches vor und möchte es übernehmen.

Grüße

Am Samstag, 3. März 2012 10:01:40 UTC+1 schrieb Mitch:
>
> So, gerade mal getestet.
>
> Mit *define act_on_Tuerklingel notify Klingel2 {if ("%" eq "on" &&
> "$value{Klingel1}" eq "on") { fhem("set Tuerlicht on-for-timer 1") } }*funktioniert es jetzt so wie ich mir das vorgestellt habe.
>
> Vielen Dank für eure Hilfe!
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 03 März 2012, 17:05:36
Originally posted by: <email address deleted>

Bin zwar nicht angesprochen, wollte aber meinen Senf loswerden.
Da Mitch's letzter Post funktioniert, würde ich nicht den ersten Post als Vorlage nehmen :)
Und da müsste Klingel2 der reale Klingeltaster sein, der nur dann etwas auslöst, wenn auch vorher Dummy Klingel1 "on" ist. Klingel1 ist also so etwas wie ein "Soll-es-wirklich-klingeln?-Schalter" oder einfach eine "Klingelsperre".
Für den Fall dass das nicht stimmt: duck-mich-ganz-klein

Heinz

Am 03.03.2012 um 13:45 schrieb Gerd :

Hallo Mitch,

vielleicht blöde Frage, aber nur zum Verständnis für einen Anfänger, "Türklingel2" ist in deinem ersten Post der Dummy?

Ich habe nähmlich ähnliches vor und möchte es übernehmen.

Grüße

Am Samstag, 3. März 2012 10:01:40 UTC+1 schrieb Mitch:
So, gerade mal getestet.

Mit define act_on_Tuerklingel notify Klingel2 {if ("%" eq "on" && "$value{Klingel1}" eq "on") { fhem("set Tuerlicht on-for-timer 1") } } funktioniert es jetzt so wie ich mir das vorgestellt habe.

Vielen Dank für eure Hilfe!


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Guest am 03 März 2012, 18:01:27
Originally posted by: <email address deleted>

Wollte schon die letzte als funktionierend, geltende Version nehmen.

Trotzdem Danke für die Info.

Gerd



Am Mittwoch, 29. Februar 2012 21:34:33 UTC+1 schrieb Mitch:
>
> Hallo Zusammen,
>
> ich kämpfe jetzt schon seit drei Stunden mit zwei Bedingungen.
>
> Ich habe einen Dummy Schalter und einen echten
> Es soll ein FS20 geschlaten werden, wenn beide Schalter on sind.
>
> Ich hatte erst das probiert: define act_on_zweischalter notify dummy {if
> ("%" eq "on") && ("echter" eq "on") {fhem ("schalte FS20")}}
> dann das hier: define act_on_dummy notify dummy {if ("%" eq "on") {fhem
> ("define act_on_echter {if ("%" eq "on") {fhem ("schalte FS20")}}}}
> und dann noch ein paar Kombinationen daraus, aber es will einfach nicht
> funktionieren.
>
> Danke für eure Hilfe!
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Frage zu zwei if Bedingungen
Beitrag von: Mitch am 03 März 2012, 18:16:32
                                                     

Hallo,

wie gesagt, dieser hier funktioniert.

Es ist so wie horchundkuck geschrieben hat.
Klingel2 ist der reale FS20 Sender, der am Klingeltrafo hängt, Klingel 1
ist ein Dummy FS20.
Der Empfänger Tuerlicht wird nur angeschalten, wenn der Dummy Klingel1 auf
ON steht und es an der Tür klingelt.
Wenn der Dummy Klingel1 auf OFF steht und es Kligelt an der Tür passiert
nichts.

Gruß
Mitch

Am Samstag, 3. März 2012 13:45:09 UTC+1 schrieb Gerd:
>
> Hallo Mitch,
>
> vielleicht blöde Frage, aber nur zum Verständnis für einen Anfänger,
> "Türklingel2" ist in deinem ersten Post der Dummy?
>
> Ich habe nähmlich ähnliches vor und möchte es übernehmen.
>
> Grüße
>
> Am Samstag, 3. März 2012 10:01:40 UTC+1 schrieb Mitch:
>>
>> So, gerade mal getestet.
>>
>> Mit *define act_on_Tuerklingel notify Klingel2 {if ("%" eq "on" &&
>> "$value{Klingel1}" eq "on") { fhem("set Tuerlicht on-for-timer 1") } }*funktioniert es jetzt so wie ich mir das vorgestellt habe.
>>
>> Vielen Dank für eure Hilfe!
>>
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com