[gelöst] AT mit if klappt nicht

Begonnen von Dia81, 07 August 2018, 10:50:47

Vorheriges Thema - Nächstes Thema

Dia81

Benötige mal eure Hilfe. Ich habe eine Rolladensteuerung per Twilight (Sonnenstand) gebaut die aber nur aktiviert wird, wenn gewisse WEttervoraussetzungen gegeben sind. Die Abfrage funktioniert aber irgendwie nicht:

define DummycheckA at *01:00:00 { if ((ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && (ReadingsVal("WetterProplanta","fc0_sun", 0) > 20))  {fhem("set Sonnenstanddummy true")}  else {fhem("set Sonnenstanddummy false")}}

Relativ einfach: Um 1:00 Uhr soll abgefragt werden ob die MaxTemp des Tages über 25 und die Sonnenscheindauer in % des Tages über 20 ist. Wenn ja soll der Dummy den Wert "true" sonst "false" erhalten. Die Syntax gibt kein MEcker in FHEM aber der Dummy wird nicht beschrieben. Wo mache ich einen Fehler?

Hier noch ein List des Proplanta:




Internals:
   DEF        Essen de
   INTERVAL   3600
   NAME       WetterProplanta
   NR         574
   STATE      Tmin: 21 Tmax: 35 T: 29.5 H: 37 W: 3.6 P: 1010.1
   TYPE       PROPLANTA
   URL        https://www.proplanta.de/Wetter/profi-wetter.php?SITEID=60&PLZ=Essen&STADT=Essen&WETTERaufrufen=stadt&Wtp=&SUCHE=Wetter&wT=
   .attraggr:
   .attrminint:
   READINGS:
     2018-08-07 10:42:06   dewPoint        13.1
     2018-08-07 10:42:06   durationFetchReadings 33.43
     2018-08-07 10:42:06   fc0_chOfRain00  0
     2018-08-07 10:42:06   fc0_chOfRain03  0
     2018-08-07 10:42:06   fc0_chOfRain06  0
     2018-08-07 10:42:06   fc0_chOfRain09  0
     2018-08-07 10:42:06   fc0_chOfRain12  0
     2018-08-07 10:42:06   fc0_chOfRain15  0
     2018-08-07 10:42:06   fc0_chOfRain18  5
     2018-08-07 10:42:06   fc0_chOfRain21  50
     2018-08-07 10:42:06   fc0_chOfRainDay 0
     2018-08-07 10:42:06   fc0_chOfRainNight 50
     2018-08-07 10:42:06   fc0_cloud00     0
     2018-08-07 10:42:06   fc0_cloud03     0
     2018-08-07 10:42:06   fc0_cloud06     0
     2018-08-07 10:42:06   fc0_cloud09     0
     2018-08-07 10:42:06   fc0_cloud12     0
     2018-08-07 10:42:06   fc0_cloud15     0
     2018-08-07 10:42:06   fc0_cloud18     12.5
     2018-08-07 10:42:06   fc0_cloud21     100
     2018-08-07 10:42:06   fc0_date        07.08.2018
     2018-08-07 10:42:06   fc0_dew         0
     2018-08-07 10:42:06   fc0_evapor      3
     2018-08-07 10:42:06   fc0_frost       0
     2018-08-07 10:42:06   fc0_gust00      18
     2018-08-07 10:42:06   fc0_gust03      14.4
     2018-08-07 10:42:06   fc0_gust06      14.4
     2018-08-07 10:42:06   fc0_gust09      14.4
     2018-08-07 10:42:06   fc0_gust12      18
     2018-08-07 10:42:06   fc0_gust15      18
     2018-08-07 10:42:06   fc0_gust18      14.4
     2018-08-07 10:42:06   fc0_gust21      28.8
     2018-08-07 10:42:06   fc0_moonRise    01:42
     2018-08-07 10:42:06   fc0_moonSet     17:41
     2018-08-07 10:42:06   fc0_rad         7
     2018-08-07 10:42:06   fc0_rain        3.5
     2018-08-07 10:42:06   fc0_rain00      0
     2018-08-07 10:42:06   fc0_rain03      0
     2018-08-07 10:42:06   fc0_rain06      0
     2018-08-07 10:42:06   fc0_rain09      0
     2018-08-07 10:42:06   fc0_rain12      0
     2018-08-07 10:42:06   fc0_rain15      0
     2018-08-07 10:42:06   fc0_rain18      0
     2018-08-07 10:42:06   fc0_rain21      3.5
     2018-08-07 10:42:06   fc0_sun         100
     2018-08-07 10:42:06   fc0_temp00      25
     2018-08-07 10:42:06   fc0_temp03      22
     2018-08-07 10:42:06   fc0_temp06      24
     2018-08-07 10:42:06   fc0_temp09      30
     2018-08-07 10:42:06   fc0_temp12      34
     2018-08-07 10:42:06   fc0_temp15      35
     2018-08-07 10:42:06   fc0_temp18      33
     2018-08-07 10:42:06   fc0_temp21      28
     2018-08-07 10:42:06   fc0_tempMax     35
     2018-08-07 10:42:06   fc0_tempMin     21
     2018-08-07 10:42:06   fc0_uv          8
     2018-08-07 10:42:06   fc0_weatherDay  sonnig
     2018-08-07 10:42:06   fc0_weatherDayIcon https://www.proplanta.de/wetterdaten/images/symbole/t1.gif
     2018-08-07 10:42:06   fc0_weatherEvening heiter
     2018-08-07 10:42:06   fc0_weatherEveningIcon https://www.proplanta.de/wetterdaten/images/symbole/n2.gif
     2018-08-07 10:42:06   fc0_weatherMorning sonnig
     2018-08-07 10:42:06   fc0_weatherMorningIcon https://www.proplanta.de/wetterdaten/images/symbole/t1.gif
     2018-08-07 10:42:06   fc0_weatherNight unterschiedlich bewölkt, vereinzelt Schauer und Gewitter
     2018-08-07 10:42:06   fc0_weatherNightIcon https://www.proplanta.de/wetterdaten/images/symbole/n8.gif
     2018-08-07 10:42:06   fc0_wind00      7.2
     2018-08-07 10:42:06   fc0_wind03      3.6
     2018-08-07 10:42:06   fc0_wind06      7.2
     2018-08-07 10:42:06   fc0_wind09      7.2
     2018-08-07 10:42:06   fc0_wind12      10.8
     2018-08-07 10:42:06   fc0_wind15      10.8
     2018-08-07 10:42:06   fc0_wind18      7.2
     2018-08-07 10:42:06   fc0_wind21      10.8
     2018-08-07 10:42:06   fc0_windDir00   90
     2018-08-07 10:42:06   fc0_windDir03   180
     2018-08-07 10:42:06   fc0_windDir06   176
     2018-08-07 10:42:06   fc0_windDir09   198
     2018-08-07 10:42:06   fc0_windDir12   209
     2018-08-07 10:42:06   fc0_windDir15   211
     2018-08-07 10:42:06   fc0_windDir18   195
     2018-08-07 10:42:06   fc0_windDir21   147

Dia81

Zitat von: darkness am 07 August 2018, 10:56:32
Deine Überschrift passt nicht zur Frage  :o
Das ist ein AT und kein DOIF.

Mit deinen Klammern stimmt was nicht.


Mal ungetesteter Code:

define DummycheckA at *01:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && ReadingsVal("WetterProplanta","fc0_sun", 0) > 20))
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}


UPS da hast du recht mit der Überschrift. Geändert!
Hab deinen Code getetstet aber kommt:

"IF: no left bracket: ) Unknown command fhem("set"

darkness

Dein DOIF ist ein AT.

Die Klammern passen nicht.

define DummycheckA at *01:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && ReadingsVal("WetterProplanta","fc0_sun", 0) > 20))
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}


EDIT:
Alten Beitrag gelöscht und neu verfasst, daher andere Reihenfolge...

darkness

Zitat von: Dia81 am 07 August 2018, 11:00:09
UPS da hast du recht mit der Überschrift. Geändert!
Hab deinen Code getetstet aber kommt:

"IF: no left bracket: ) Unknown command fhem("set"

Ups. Naja, so wie es da steht. Eine Klammer neben der 20 ist zu viel.

define DummycheckA at *01:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && ReadingsVal("WetterProplanta","fc0_sun", 0) > 20)
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}



Alerdings solltest du vielleicht überlegen ein Notify/DOIF einzusetzen. Die Werte können sich ja auch im Laufe des Tages ändern (Je nachdem wie oft du Proplanta aktualisierst)

Dia81

Hmm klappt trotzdem nicht :( habe das so direkt in die CFG gesetzt, was wahrscheinlich der Fehler ist. JA ich weiss direkte CFG-Bearbeitung ist der Tod aber gerade bei Anfängern irgendwie einfacher :/

Dia81

Zitat von: darkness am 07 August 2018, 11:03:11
Ups. Naja, so wie es da steht. Eine Klammer neben der 20 ist zu viel.

define DummycheckA at *01:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && ReadingsVal("WetterProplanta","fc0_sun", 0) > 20)
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}


hatte ich überlegt aber mir reicht da die nächtliche grobe Abfrage des Tages. Da noch andere Rollo steuerungen laufen kommt bei nem Update am Tage sonst alles durcheinander :D

Alerdings solltest du vielleicht überlegen ein Notify/DOIF einzusetzen. Die Werte können sich ja auch im Laufe des Tages ändern (Je nachdem wie oft du Proplanta aktualisierst)

darkness

Zitat von: Dia81 am 07 August 2018, 11:07:08
Hmm klappt trotzdem nicht :( habe das so direkt in die CFG gesetzt, was wahrscheinlich der Fehler ist. JA ich weiss direkte CFG-Bearbeitung ist der Tod aber gerade bei Anfängern irgendwie einfacher :/

Gut, aber bei der Einstellung bin ich dann raus... Die Diskussion über das editieren der CFG-Datei starte ich jetzt nicht.

nils_

Zitat von: Dia81 am 07 August 2018, 11:07:08
Hmm klappt trotzdem nicht :( habe das so direkt in die CFG gesetzt, was wahrscheinlich der Fehler ist.
sehr wahrscheinlich ist das so!

Zitat von: Dia81 am 07 August 2018, 11:07:08
JA ich weiss direkte CFG-Bearbeitung ist der Tod aber gerade bei Anfängern irgendwie einfacher :/
wenn du es weißt, warum machst du es dann??
wieso das einfacher sein soll, ist mir ehrlich gesagt nicht klar!
viele Wege in FHEM es gibt!

Frank_Huber

wohl kein rereadcfg gemacht....

gerade Anfänger sollten die Finger von der cfg lassen!

Dia81

#9
Zitat von: nils_ am 07 August 2018, 11:10:04
sehr wahrscheinlich ist das so!
wenn du es weißt, warum machst du es dann??
wieso das einfacher sein soll, ist mir ehrlich gesagt nicht klar!

Weil wenn man sich am Anfang es so beigebracht hat ohne überhaupt eine Ahnung zu haben als Anfänger man dann sicherheit hat wenn man weiss was man tut. Natürlich geb ich dir recht, das man sich da umgewöhnen muss wenn es um "komliziertere" Sachen geht, steh nämlich jetzt vor dem Problem gar nicht zu wissen wie ich das jetzt korrekt in die Oberfläche bekomme. Fuchse mich aber mal rein..

So schwer ist es nicht stimmt, bekomme aber trotzdem ein Fehler


*12:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && ReadingsVal("WetterProplanta","fc0_sun", 0) > 20)
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}


bekomme dann

syntax error at (eval 913797) line 3, near ")
        fhem"

Frank_Huber

öffne im Browser dein at und klicke auf "DEF"

da und nur da werden Änderungen gemacht.

Dia81

nochmal auf

*12:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && (ReadingsVal("WetterProplanta","fc0_sun", 0) > 20)
        fhem("set Sonnenstanddummy true");
    else
        fhem("set Sonnenstanddummy false");
}


geändert aber irgendwas stimmt noch nicht

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

#13
Zitat von: Dia81 am 07 August 2018, 11:20:47
... steh nämlich jetzt vor dem Problem gar nicht zu wissen wie ich das jetzt korrekt in die Oberfläche bekomme. Fuchse mich aber mal rein..
https://wiki.fhem.de/wiki/Hauptseite
Dort Link Quick-Start und Link zur Doku commandref

Und wenn ich den Syntax von { if () {} else {} } sehe, dann braucht es auch noch den hier:  ;D ;D ;D
http://perldoc.perl.org/index.html

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Dia81

Zitat von: CoolTux am 07 August 2018, 11:31:02
} else {



*12:00:00 {
    if (ReadingsVal("WetterProplanta","fc0_tempMax",0) > 25  && (ReadingsVal("WetterProplanta","fc0_sun", 0) > 20)
        fhem("set Sonnenstanddummy true");
    } else {
        fhem("set Sonnenstanddummy false");
}


Syntax error at (eval 916248) line 3, near ")
        fhem"
syntax error at (eval 916248) line 4, near "} else"
syntax error at (eval 916248) line 6, near "}}"


Irgendwie will es nicht. Danke für eure Geduld und ja ich editiere nicht die CFG. :(