Hauptmenü

An die Perl Experten

Begonnen von Paul, 04 März 2014, 22:25:44

Vorheriges Thema - Nächstes Thema

Paul

Bedeutet die nachfolgenden Codeschnipsel das selbe ?

{if (Value("Flurlicht" eq "off") && ($hour <6 || $hour > 22))
{if (Value("Flurlicht" eq "off") && $hour <6) || (Value("Flurlicht" eq "off") && $hour > 22))

Also es soll geschaltet werden wenn Flurlicht aus ist und zwischen 23 - 5:59 Uhr

Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

betateilchen

Versuch macht kluch :) Probiers doch einfach aus, dann lernst Du was dabei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Zephyr

Ausprobieren im Zusammenhang mit Uhrzeitschaltungen ist vielleicht etwas unkomfortabel.

Aus meinem Restwissen über Logik aus dem Informatikunterricht heraus führen die beiden Codeschnipsel zum gleichen Ergebnis.
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

betateilchen

mein logisches Verständnis führt zum gleichen Ergebnis.

Ausprobieren von Uhrzeitschaltungen funktioniert übrigens problemlos, wenn man die Tests einfach mit aktuellen Uhrzeiten durchführt. Im Moment ist es kurz nach elf, ich würde die Tests also mit "< 10" und ">12" machen um die grundsätzliche Funktionalität zu prüfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Paul

#4
Ich war auch der Überzeugung dass die Schnipsel richtig sind, aber warum bekomme ich dann bei dem Code eine Fehlermeldung?

BM_Flur {if (Value("Flurlicht" eq "off") && $hour <9) || (Value("Flurlicht" eq "off") && $hour > 16) {fhem "set Flurlicht dim81%%; set Flurlicht on-old-for-timer 120"}}

Ohne define weil aus Fhemweb kopiert.

Bitte sagt jetzt nicht da fehlt eine Klammer, ich habe mindestens 100 mal gezählt.

Fehlermeldung :


2014.03.05 20:21:02 3: bwFlur return value: syntax error at (eval 62570) line 1, near ") ||"
syntax error at (eval 62570) line 1, near "}}"
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

justme1968

weil deine Klammern an der falschen Stelle sind.

die schließende Klammer von value gehört vor das eq.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Paul

Danke da fehlten noch mehr Klammern

BM_Flur {if (((Value("Flurlicht") eq "off") && $hour <9) || ((Value("Flurlicht") eq "off") && $hour > 16)) {fhem "set Flurlicht dim81%%; set Flurlicht on-old-for-timer 120"}}
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

justme1968

jetzt sind es eindeutig zu viele :)

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Paul

Aber jetzt klappt es. Habe mind. 2 Stunden mit den Klammern verbracht und hoffe wenn ich jetzt noch ein elsif einbaue das in 10 Minuten erledigt ist.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic