Hauptmenü

DOIF Beschattung

Begonnen von seule3008, 27 Juni 2018, 16:23:30

Vorheriges Thema - Nächstes Thema

seule3008

Jetzt verstehe ich nur noch Bahnhof. :o

Habe jetzt die Klammern mal gesetzt wie Otto123 geschrieben hat aber der Fehler ist noch da, wenn ich die so setze ist er weg.
([({twilight("TC_TWILIGHT","sr_civil","06:00","9:00")} - 90 + rand(180))]) (set RolloWzFenster Hoch)
DOELSEIF ([({twilight("TC_TWILIGHT","ss_civil","18:00","22:00")} - 90 + rand(180))]) (set RolloWzFenster Runter)
DOELSEIF ([Beschattung:state] eq "on" and [Wetter:temperature] > 25 and [TC_TWILIGHT:azimuth] > 130 and [TC_TWILIGHT:azimuth] < 250 and [TC_TWILIGHT:elevation] > 30 and [RolloWzFenster:level] ne "20" and ([Wetter:condition] =~ "sonnig|heiter|teilweise wolkig|überwiegend wolkig")) (set RolloWzFenster pct 20)
DOELSEIF ([Beschattung:state] eq "on" and [Wetter:temperature] <= 25 and [TC_TWILIGHT:azimuth] >= 250 and [TC_TWILIGHT:azimuth] < 270 and [RolloWzFenster:level] eq "20") (set RolloWzFenster pct 100)


Aber wie ist das gemeint das die ganzen oder in ein and gepackt sind??? Ich mochte ja nur, dass er das ausführt, wenn eine dieser Wetterbedingungen vorliegt sonst nicht. Und eben auch nur, wenn der Dummy auf on steht sonst auch keine Aktion.

Ich habe leider von Programmiersprache leine Ahnung und blicke nicht mehr durch. Für mein Laienwissen erscheint das logisch was da steht aber für Fhem scheinbar nicht  ::)

Ich habe leider keine Log für die DOIFs ich hab mich da mal dran versucht der irgendwie hat das Logfile nie was aufgezeichnet. Und da die anderen Doifs funktionieren habe ich es dann mit den Logs gelassen.

Grüße und gute Nacht

Christian

Otto123

Dein Code ist ja jedesmal anders  ;)

Du hast dein ursprüngliches or Konstrukt
[Wetter:condition] eq "sonnig" or [Wetter:condition] eq "heiter" or [Wetter:condition] eq "teilweise wolkig" or [Wetter:condition] eq "überwiegend wolkig"in einen Ausdruck gepackt.
[Wetter:condition] =~ "sonnig|heiter|teilweise wolkig|überwiegend wolkig"
Damit hast Du nur noch Bedingungen mit and verknüpft. Sorry, wenn ich das etwas flapsig ausgedrückt habe.
Damit brauchst Du nicht mehr extra klammern.

Ich habe kein Beispiel geschrieben was die Klammenr richtig setzt. Ich habe Dir Deine Fehler gezeigt!

Funktioniert es jetzt? Du hast eine Klammer zuviel aber die stört nicht.

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

Damian

Ob eine Klammer zu viel oder zu wenig drin ist, erkennt normalerweise der DOIF-Parser, wenn man nicht die cfg-Datei editiert. Bei Definitionen am besten immer die Ausgabe von list des Moduls hier anhängen, denn damit kann man nicht nur die Definition, sondern auch das was DOIF "verstanden" hat sehen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

seule3008

Ok ich bin heute im 24 Stunden Dienst und werde morgen mal versuchel so ein List zu erstellen. Danke schonmal für eure Mühen.

Grüße

seule3008

Hi

danke für eure Hilfe. Ich habe jetzt die Reihenfolge geändert, die Klammern die zuviel waren entfernt und jetzt geht es.

das ist die Zeile die jetzt funktioniert:
DOELSEIF ([Beschattung:state] eq "on" and [Wetter:temperature] >= 22 and [TC_TWILIGHT:azimuth] > 130 and [TC_TWILIGHT:azimuth] < 240 and [TC_TWILIGHT:elevation] > 30 and [RolloWzFenster:level] ne "20" and [Wetter:condition] =~ "sonnig|heiter|teilweise wolkig|überwiegend wolkig") (set RolloWzFenster pct 20)

Danke und Grüße

Christian

Tobias

kleiner HInweis: Statt der Wetter condition würde ich stattdessen lieber auf die Globalstrahlung (Proplanta Modul) zurückgreifen. Mit einem Wert > 5.5 liegst du dann ganz gut. So habe ich es
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter