FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: foxmulder am 03 Oktober 2013, 21:19:25

Titel: Frage zu $we
Beitrag von: foxmulder am 03 Oktober 2013, 21:19:25
Hallo zusammen,

ich bin noch recht neu im FHEM Thema und noch ein wenig am basteln. Nun stehe ich vor dem ersten Problem wo ich nicht weiterkomme.

Ich hab nen kleines Problem mit der $we Variable. :-/
Ich habe eine Schaltung die am Wochenende später aktiviert werden soll als unter der Woche. Leider wird die Schaltung für unter der Woche komplett ignoriert und nicht ausgeführt. In der Log sehe ich auch keinen Fehler oder ähnliches. :-/

Hier die Codeschnippsel vom Webfrontend kopiert:

für unter der Woche
*06:50:00 { if (!$we) { fhem("set Alarmanlage off");; } }

für Wochenende
*09:30:00 { if ($we) { fhem("set Alarmanlage off ");; } }

Komischerweise erfolgt jedoch täglich die Schaltung vom Wochenende. :-/

In der fhem.cfg habe ich auch das Attribut "attr global holiday2we Hessen" gesetzt.

Kann mir jemand vielleicht weiterhelfen?

Vielen Dank und viele Grüße
Fox
Titel: Aw: Frage zu $we
Beitrag von: Zrrronggg! am 03 Oktober 2013, 21:32:16
So wie dass da steht sollte gar nix passieren. Da fehlt das komplette "define" und alles.


define Alarmanlage_aus_WE at *09:30:00 { if (!$we) { fhem("set Alarmanlage off") } }

Und

define Alarmanlage_aus at *06:50:00 { if (!($we)) {fhem("set Alarmanlage off") } }

sollte gehen.

Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 03 Oktober 2013, 21:40:05
Hihi... Ja... Sorry... Stimmt.. Also mit define hab ich natürlich alles auch angelegt. Ich hatte die strings nur fix aus dem fhem webinterface rauskopiert. Da wird nur der Befehl angezeigt... Ohne define und so.

Kannst du mir erklären warum das ! Einmal extra geklammert wird und einmal nicht? Hatte das so verstanden das durch das ! die $we variable negiert wird.. Also nicht wahr wird.
Ergo am Wochenende ohne ! und unter der Woche mit !
Hab ich das falsch verstanden?
Titel: Aw: Frage zu $we
Beitrag von: Zrrronggg! am 03 Oktober 2013, 22:10:30

ZitatHihi... Ja... Sorry... Stimmt.. Also mit define hab ich natürlich alles auch angelegt.

Och manno! Das ist doch ABM... ich hab aber keinen Mangel an Arbeit!

ZitatEinmal extra geklammert wird und einmal nicht?

Eigentlich sollte beides gehen soweit ich weiss, aber bei mir funktionirt es so wie hingeschrieben, also extra geklammert.
Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 03 Oktober 2013, 22:12:33
Oh je... Sorry.. Tut mir leid.

Ok.. Danke... Werde ich mal so testen...
Titel: Aw: Frage zu $we
Beitrag von: PeMue am 04 Oktober 2013, 08:30:30
Hallo zusammen,

und wie funktioniert es jetzt? Bin fleißig am mitlesen und mitlernen ...
Meiner Ansicht nach müsste der im ersten Post zitierte Code funktionieren. Ggf. einfach mal mit {$we} im fhem Eingabefeld die Variable anschauen (Achtung: bei 0 kommt keine Ausgabe auf dem Bildschirm, nur bei 1). U.u. liegt es dann doch an der Definition der Ferien ...

Gruß PeMue
Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 04 Oktober 2013, 16:25:30
Hallo zusammen,

es funzt leider immer noch nicht. :-(

Mit {$we} bekomme ich nur eine "1" zurück geliefert.

Ich muss gestehen...ich habe noch keine "holiday" Datei extra angelegt. Ich hab im wiki glaub ich mal gelesen das man mit einer extra HolidayFile eigene Feiertage (Urlaub und so) noch definieren kann. Ist diese Datei Pflicht wenn man die $we Variable nutzen will?
Titel: Aw: Frage zu $we
Beitrag von: Zrrronggg! am 04 Oktober 2013, 16:28:23
nein, ist sie nicht.

Zitates funzt leider immer noch nicht. :-(

Mit {$we} bekomme ich nur eine "1" zurück geliefert.

Versuche bitte mal meine Beispiel. Da steht kaum eine geschweifte Klammer um $we, oder?
Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 04 Oktober 2013, 16:41:31
Hatte deine Beispiele 1:1 kopiert...deswegen weiß ich ja auch nicht mehr weiter. :-(
Titel: Aw: Frage zu $we
Beitrag von: Zrrronggg! am 04 Oktober 2013, 16:56:39
Ist aus deinen Antworten bisher nicht ersichtlich.

Du hast meine beispiel 1:1 kopiert? Und was um 9:30 bzw 6:50 im logfile?
Titel: Aw: Frage zu $we
Beitrag von: PeMue am 04 Oktober 2013, 17:05:23
Hallo zusammen,

aus dem ersten Post kam doch (von mir die Definitionen hinzugefügt):
define Alarm_aus at *06:50:00 { if (!($we)) { fhem("set Alarmanlage off");; } }
und für das Wochenende
define Alarm_WE_aus at *09:30:00 { if ($we) { fhem("set Alarmanlage off ");; } }
So müsste das doch funktionieren, oder?

Wenn jetzt gestern der Feiertag als Wochenende gewertet werden sollte, müsste
define Hessen holiday
attr global holiday2we Hessen

das Fehlende noch nachliefern, so wie in Uli's Werk (//fhem.de/Heimautomatisierung-mit-fhem.pdf) geschrieben (S. 36).

M.e. könnte (!($we)) durch (!$we) ersetzt werden, ohne dass die Funktionalität leidet ...

Meine Info mit {$we} in der fhem Eingabezeile diente nur dazu, die aktuell eingestellte Variable abzufragen.

Gruß PeMue
Titel: Aw: Frage zu $we
Beitrag von: Zrrronggg! am 04 Oktober 2013, 17:15:19
define Alarmanlage_aus_WE at *09:30:00 { if (!$we) { fhem("set Alarmanlage off") } }


Und

define Alarmanlage_aus at *06:50:00 { if (!($we)) {fhem("set Alarmanlage off") } }

müsste funktionieren, es funktioniert be mir genau so. Und solange ich nicht Rückmeldung habe, was im Log steht warte ich.

- Wie man Feiertage dazudefiniert weiss ich gar nicht, hab ich noch nie gemacht
- die doppelten Semikolons am Ende ...{ fhem("set Alarmanlage off");; } } sind überflüssig. Sollte aber trotzdem gehen.

ZitatM.e. könnte (!($we)) durch (!$we) ersetzt werden, ohne dass die Funktionalität leidet ...

Ich darf mich selbst zitieren:

ZitatEigentlich sollte beides gehen soweit ich weiss, aber bei mir funktionirt es so wie hingeschrieben, also extra geklammert.

Wir haben also 2 Möglichkeiten:
- dies und das und jenes probieren , und noch Fiertagsdatei dazudefinierne, obwohl es schon ohne nicht geht
- etwas nehmen was zumindest bei mir GARANTIERT FUNKTIONIERT , und das erstmal ohne Hessen Feiertage testen und wenn das geht, weitere arbeiten

Ich hätte da da ne Meinung     ;-)


Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 04 Oktober 2013, 17:38:35
In der Log stand heute leider gar nix zu der Zeit. Die Anlage musste wieder manuell ausgeschaltet werden.

Ich habe nunwie gesagt deine Befehle eingetragen und zusätzlich die

#define Hessen holiday
#attr Hessen room Settings


auskommentiert.

Nun ist nur noch "attr global holiday2we Hessen" vorhanden. Mal morgen früh abwarten was passiert.

Danke euch für eure Hilfe!
Titel: Aw: Frage zu $we
Beitrag von: foxmulder am 08 Oktober 2013, 21:13:43
Hallo zusammen,

ich wollte noch kurz eine Rückmeldung geben.

Es funtz nun wie es soll !  :-) Es war wohl doch die Holiday Einstellung schuld da ich diese zwar definiert hatte aber noch keine passende File hinterlegt habe.

Danke und Grüße
Fox


Titel: Aw: Frage zu $we
Beitrag von: PeMue am 08 Oktober 2013, 22:36:27
... ja, das sagte ich ein paar threads weiter oben. Aber gut, dass es jetzt tut. Und jetzt vielleicht noch di Klammern weg?
Vom (besc ... zu tippen den) Tablet
grüßt PeMue
Titel: Antw:Frage zu $we
Beitrag von: petjek am 24 April 2017, 10:49:42
Hi,

ist zwar alt aber trifft mein Problem.

So sieht mein Wecker aus, der wochentags um 6 Uhr den Befehl absetzen soll. Der Befehl funktioniert, wenn ich ihn direkt eingebe.

define TeufelWecker at *06:00:00 { if (!($we)) { fhem("/opt/BroadLink/sendmore-slow-bl.sh teufelAnAus DABOn Teufel_P3");; } }


Verbose steht auf 5 und liefert mir
2017.04.24 10:44:00 5: exec at command TeufelWecker
2017.04.24 10:44:00 5: redefine at command TeufelWecker as *10:44:00 { if (!($we)) { fhem("/opt/BroadLink/sendmore-slow-bl.sh teufelAnAus DABOn Teufel_P3"); } }

(Ich habe den Wecker zu Testzwecken auf jetzt+1 min gestellt.)

Sagt mir diese Meldung jetzt tatsächlich, ich solle das genau so schreiben wie ich es getan habe damit es funktioniert?

LG,
petjek

Nachtrag: ok, es gab da einen kleinen Unterschied, ich hatte zwei Semikolons am Ende stehen. Das ist inzwischen korrigiert, ändert aber nichts.

Nachtrag 2: OK, hab's. Korrekt ist: define TeufelWecker at *11:00:00 { if (!($we)) {system "/opt/BroadLink/sendmore-slow-bl.sh teufelAnAus DABOn Teufel_P3"} }