FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Paul am 19 Februar 2014, 21:57:08

Titel: [gelöst] If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 19 Februar 2014, 21:57:08
Hallo kann jemand mal helfen.
Ich sitze schon über 3 Stunden eigentlich an einfachen Aufgabe aber ich bekomme es nicht hin.
Möchte einen Schalter anschalten wenn er aus ist.  Mein Code lautet so:

define An notify Tablet.*:.* {if(ReadingsVal("Tablet","powerLevel","999")<90 || (value("Tabletschalter") eq "off")) {fhem "set Tabletschalter on"}}

Also das notify schaltet, aber leider auch wenn der Schalter bereits on ist.

Was ist an value ("Tabletschalter") eq "off" falsch?
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Thorsten Pferdekaemper am 19 Februar 2014, 22:03:33
Vielleicht weil || "oder" bedeutet. Versuch mal &&.
Gruß,
Thorsten
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 19 Februar 2014, 22:05:25
Danke ich idiot
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 19 Februar 2014, 22:32:44
Hat leider nichts genutzt wenn ich jetzt das richtige UND benutze

Tablet.*:.* {if(ReadingsVal("Tablet","powerLevel","999")<90 && (value("Tabletschalter") eq "off")) {fhem "set Tabletschalter on"}}

erhalte ich ein Fehlermeldung im Logfile und es wird nicht geschaltet
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Thorsten Pferdekaemper am 19 Februar 2014, 23:45:40
Jetzt wäre hilfreich, wenn Du did Fehlermeldung verraten würdest.
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Puschel74 am 20 Februar 2014, 05:40:25
Moin,

Zitaterhalte ich ein Fehlermeldung im Logfile und es wird nicht geschaltet
Dann sagt dir ja die Fehlermeldung was falsch ist - Problem gelöst?

Dann bitte den ersten Beitrag bearbeiten und dem Titel ein (Gelöst) vorne dran - danke.

Grüße
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 20 Februar 2014, 07:08:17
Die Fehler lautet:

2014.02.20 07:04:52 3: Tablet_Laden return value: Undefined subroutine &main::value called at (eval 494783) line 1.
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Rince am 20 Februar 2014, 07:41:36
Probier mal nach dem { ein Leerzeichen und vor der } auch eines.
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 20 Februar 2014, 08:08:57
Tablet.*:.* { if(ReadingsVal("Tablet","powerLevel","999")<90 && (value("Tabletschalter") eq "off")) { fhem "set Tabletschalter on" }}

Hat auch nichts geholfen. Verstehe es nicht habe nur || gegen && ausgetauscht und damit geht es nicht
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Rince am 20 Februar 2014, 08:49:26
Dann schreib statt value mal Value bei dem Tablettschalter.
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: chris1284 am 20 Februar 2014, 14:36:29
{if(ReadingsVal("Tablet","powerLevel","99")<90)&&(Value("Tabletschalter") eq "off"){fhem "set Tabletschalter on"}}

du kannst auch "and" nehmen und ich meine if (Bedingung)and/or(Bedingung){Anweisung} ist von der Syntax richtig, nicht
if (Bedingung and/or Bedingung){Anweisung} (so hat es bei mir nicht funktioniert).
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: betateilchen am 20 Februar 2014, 14:40:09
Zitat von: chris1284 am 20 Februar 2014, 14:36:29nicht if (Bedingung and/or Bedingung){Anweisung}

das ist genauso richtig und funktioniert definitiv. Gib mal in die Kommandozeile ein:  {(5 > 3 && 5 < 8)} da kommt eine 1 raus - wie es sich gehört.
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Paul am 20 Februar 2014, 19:42:16
Danke

Das klappt jetzt:

define Tabletladen notify Tablet.*:.* { if(ReadingsVal("Tablet","powerLevel","999")<95 && (Value("Tabletschalter") eq "off")) { fhem "set Tabletschalter on" }}

PS jetzt weiß ich auch das  8) > 5 ist.    :D
Titel: Antw:If Abfrage mit "und" Abfrage im notify
Beitrag von: Damian am 20 Februar 2014, 19:55:50
Zitat von: Paul am 20 Februar 2014, 19:42:16
Danke

Das klappt jetzt:

define Tabletladen Tablet.*:.* { if(ReadingsVal("Tablet","powerLevel","999")<95 || (Value("Tabletschalter") eq "off")) { fhem "set Tabletschalter on" }}

PS jetzt weiß ich auch das  8) > 5 ist.    :D

je nachdem, wie oft dein Notify (der fehlt hier offenbar) zuschlägt, kann immer wieder set Tabletschalter on ausgelöst werden.

das kannst du verhindern mit:

define Tabletladen notify Tablet.*:.* { if(ReadingsVal("Tablet","powerLevel","999")<95 || (Value("Tabletschalter") eq "off")) { fhem "set Tabletschalter:FILTER=STATE!=on on" }}

oder das Ganze etwas kürzer mit:

define Tabletladen notify Tablet.*:.* IF ([Tablet:powerlevel]<95 or [Tabletschalter:state] eq "off") (set Tabletschalter:FILTER=STATE!=on on)

siehe: http://forum.fhem.de/index.php/topic,17895.msg118503.html#msg118503

Gruß

Damian