Problem mit einer Automatisierung von Somfy Rollläden

Begonnen von Joker2002, 16 November 2015, 20:33:25

Vorheriges Thema - Nächstes Thema

Joker2002

diese Meldung erhalte ich dann...

di_Rolladen_hoch DOIF: expected DOELSEIF or DOELSE: ) ((set rollo_alle_Fenster,rollo_alle_Tueren off))) DOELSEIF (([Anwesend:?off]) and ([([LichtWetter:sr])) ((set rollo_alle_Tueren on,set rollo_alle_Fenster off))

Ellert

Verwendest Du einen Editor mit Klammerprüfung, wie hier empfohlen? Welchen? Wenn nicht, siehe hier: http://forum.fhem.de/index.php/topic,45373.msg371668.html#msg371668

Du könntest Deine Code-Postings gerne ein wenig strukturieren, das macht es Antwortenden leichter und Du bekommst selbst auch einen guten Überblick.

Etwa so:
(([Anwesend:?on]) and ([([LichtWetter:sr]+500)|7]))
    (set rollo_alle_FensterTueren_speziell off)
DOELSE (([Anwesend:?on]) and [([LichtWetter:sr]+1)|8]))
    ((set rollo_alle_Fenster,rollo_alle_Tueren off)))
DOELSE (([Anwesend:?off])  and ([([LichtWetter:sr]))
   ((set rollo_alle_Tueren on,set rollo_alle_Fenster off))


Und, beherzige doch bitte die bereits gegebenen Hinweise:http://forum.fhem.de/index.php/topic,44176.msg363845.html#msg363845

Joker2002

Danke für den Hinweis, ich wusste nicht, dass man in FHEM einen entepsrechenden Editor hat. Werde es ausprobieren.


Joker2002

So, habe den Rest der Woche dazu genutzt um meine Automatik nochmal zu überarbeiten und Fehler zu vermeiden, in dem ich die Kommas überprüft habe.
Dabei habe ich den Threat von Ellert beachtet und mal, gemäß dem Link

http://forum.fhem.de/index.php/topic,45373.msg371668.html#msg371668

die Funktionen:

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "lineWrapping":true }


eingefügt, mit dem Ergebnis, dass es bei mir nichts gebracht hat, denn eine Kommaüberprüfung gab seitens des Editors in FHEM nicht.

Mittlerweile habe ich wie geschrieben meine Automatik aufgeräumt und folgendermaßen überarbeitet:

(([Anwesend] eq "on") and ([[LichtWetter:sr]|7])) (set rollo_alle_FensterTueren_speziell off)
DOELSEIF
(([Anwesend] eq "on") and ([09:00|7])) (set rollo_OG_Z1 off;;set rollo_OG_Z2_tuer off)
DOELSEIF
(([Anwesend] eq "on") and ([[LichtWetter:sr]|8])) (set rollo_alle_Fenster off;;set rollo_alle_Tueren off)
DOELSEIF
(([Anwesend] eq "off")  and ([LichtWetter:sr])) (set rollo_alle_Tueren on;;set rollo_alle_Fenster off)
DOELSEIF
([LichtWetter:ss]) (set rollo_alle_Fenster on)
DOELSEIF
([LichtWetter:ss]) (set rollo_alle_Tueren on)
DOELSEIF
(([LichtWetter:ss]) and ( $month <= 5 || $month >= 8 )) (set rollo_alle_Fenster pos 80)
DOELSEIF
(([LichtWetter:ss]) and ( $month <= 5 || $month >= 8 )) (set rollo_wz_2_tuer,rollo_OG_Z4_tuer pos 80;;set rollo_wz_2_tuer on)
DOELSEIF
(([LichtWetter:ss]) ( $month <= 10 || $month >= 9 )) (set rollo_alle_Fenster on)
DOELSEIF
(([LichtWetter:ss]) and ( $month <= 10 || $month >= 9 )) (set rollo_alle_Tueren on)


Nun erhalte ich in den States der Internals immer die Meldung

CMD_5

Kann mir jemand sagen was das bedeutet ? In der Commandref und hier im Forum konnte ich dazu nichts finden :/

Ellert

Zitat... denn eine Kommaüberprüfung gab seitens des Editors in FHEM nicht.
... und wird es wohl auch nicht geben.
ZitatKann mir jemand sagen was das bedeutet ?
Die Befehle des 5. Bedingungszweiges wurden abgearbeitet (cmd mnemonisch für command/Befehl).

Joker2002

..ich meinte natürlich die erwähnte Klammerprüfung.

Es ist für mich nur derzeit noch nicht verständlich warum die Rollläden ab Sonnenaufgang hoch und runterfahren solagen diese Automatik aktiv ist.

Ich finde den Fehler einfach nicht. Kann vielleicht einer von Euch nochmal über den oben genannten Code schauen und mir sagen woran es liegt ?

Jorge3711

Zitat von: Joker2002 am 15 Dezember 2015, 09:13:57
..ich meinte natürlich die erwähnte Klammerprüfung.

Es ist für mich nur derzeit noch nicht verständlich warum die Rollläden ab Sonnenaufgang hoch und runterfahren solagen diese Automatik aktiv ist.

Ich finde den Fehler einfach nicht. Kann vielleicht einer von Euch nochmal über den oben genannten Code schauen und mir sagen woran es liegt ?

Dein DOIF Konstrukt ist etwas verwirrend. Mit Deiner 3. und 4. DOIF-Anweisung sagst Du, dass bei Sonnenuntergang die Rollläden der Fenster und Türen auf gehen sollen. Die 5. und 6. DOIF-Anweisung sagt dann aber wiederum, dass bei Sonnenuntergang die Fensterrollläden auf 80 % fahren sollen, abhängig von aktuellen Monat. Die 5. und 6. DOIF-Anweisung ziehen aber nur von August bis Mai.

Deine letzten beiden DOIF-Anweisung verstehe ich auch nicht wirklich. Die sollen nur September/Oktober gelten und dann alle Rollos auf?

Verwirrt mich etwas sehr das alles. Ich glaube Du denktst zu kompliziert bei dem Ganzen.

Du nutzt doch das Twighlight Modul, warum dann nicht einfach eine Rollladensteuerung abhängig der Sonnenuntergangszeiten umsetzen, statt dieser Monatsausnahmengeschichte? Meine Rollladensteuerung mit Twighlight sieht z.B. so aus:


DOELSEIF
([Sonnenstand:ss] ge "18:00:00" and [{twilight("Sonnenstand","ss_civil","16:00","22:00")}])
  (set structure_rollladen_alle 20)
DOELSEIF
  ([Sonnenstand:ss] le "18:00:00" and [{twilight("Sonnenstand","ss_civil","16:00","22:00")}])
  (set structure_rollladen_alle off)
DOELSEIF
  ([06:00|8])
  (set flur_rollladen 30)
DOELSEIF
  ([{twilight("Sonnenstand","sr","04:30","08:30")}])
  (set bad_rollladen on, set ez_rollladen on, set structure_wz_rollladen on, set flur_rollladen on, set structure_kueche_rollladen 40)
DOELSEIF
  ([08:00|8])
  (set structure_kueche_rollladen on)
DOELSEIF
  ([09:00|7])
  (set structure_kueche_rollladen on)


Die 1. DOIF-Anweisung fährt die Rollläden bei Sonnenuntergang auf 80%, wenn der Sonnenuntergang nach 18 Uhr ist.
Die 2. DOIF-Anweisung fährt die Rollläden bei Sonnenuntergang auf 100% (ganz zu), wenn der Sonnenuntergang vor 18 Uhr ist.
Die 3. DOIF-Anweisung fährt den Rollladen an der Terrasse Werktags um 6 Uhr etwas hoch, damit ich sehe ob die Katze vor der Tür steht und rein will :)
Die 4. DOIF-Anweisung fährt bei Sonnenaufgang die Rollläden hoch, außer in der Küche, hier nur etwas hoch (Sichtschutz zum Nachbarn)
Die 5. DOIF-Anweisung fährt die Rollläden werktags in der Küche um 8 Uhr dann ganz hoch.
Die 6. DOIF-Anweisung fährt die Rollläden am Wochenende in der Küche um 9 Uhr dann ganz hoch.

Mein DOIF ist sicherlich auch nicht der Weisheit letzter Schluß aber kann vielleicht als Anregung dienen. Vielleicht kannst Du mit diesem Input deine Rollladensteuerung vereinfachen/funktional(er) gestalten.

Viele Grüße
Carsten

Ellert

#37
Zitat..ich meinte natürlich die erwähnte Klammerprüfung.
Es gibt keine Klammerprüfung, die sich nach dem Drücken von "modify_..." mit einem Popup meldet und Dir sagt wo Du eine Klammer vergessen hast.

Jedoch, wenn Du im Editor eine Klammer öffnest, dann wird gleichzeitig eine Geschlossene erzeugt und der Cursor steht zwischen Beiden. Diese Eigenschaft reduziert die Wahrscheinlichkeit, dass eine geschlossene Klammer fehlt.
Ausserdem wird, wenn der Cursor neben einer Klammer steht, die dazu gehörende Gegenklammer auch mit einem Rahmen markiert.
Ein zusatzliches Merkmal des Editors ist es, eine Klammer am Cursor, bei fehlender Gegenklammer, rot zu markieren.

Um die Klammerprüfung zu nutzen, fährst du den gesamten Text mit dem Cursor ab und achtest auf die markierten Klammerpaare und die rot markierten Einzelklammern. Eine logische Klammerprüfung gibt es nicht, da die Absicht der Klammersetzung nicht bekannt ist.

Wenn Du das beschriebene Verhalten nicht beobachten kannst, könnte es an den Browsereinstellungen liegen oder an einem nicht aktuellen FHEM.

ZitatIch habe die Automatisierung soweit seit einigen Monaten am Laufen.
Es ist immer eine Gute Idee, eine funktionierende Steuerung in kleinen Schritten zu erweitern, dann können Fehler leichter eingegrenzt werden.
Daher würde ich vorschlagen, wir entwickeln die "seit einigen Monaten laufende Automatisierung" weiter, dazu müsstest das funktionierende
DOIF einmal posten.

Ist es richtig, dass es noch um diesen
ZitatJetzt wollte ich diese um einen Punkt erweiteren. Ich hätte gerne, dass bei dem Anwesenheitsstatus "on" die Rollläden regulär mit Sonnenauf- bzw. Untergang hoch bzw. runterfahren und wenn der Statuts "off" aktiviert wurde alle Rolläden runterfahren und solange unten bleiben, bis der Status wieder auf "on" gestellt wurde.
Erweiterungswunsch geht?

Damu

Hallo

Habe eine Frage zum ersten Beitrag:

[quote define rollo_alle_Fenster structure room rollo_kue rollo_OG_Z1 rollo_OG_Z3 rollo_OG_Z5 rollo_OG_Z6 rollo_wz_1 rollo_wz_3

define rollo_alle_Tueren structure room rollo_OG_Z2_tuer rollo_OG_Z4_tuer rollo_wz_2_tuer

define rollo_alle_FensterTueren_speziell structure room rollo_kue,rollo_OG_Z3,rollo_OG_Z4_tuer,rollo_OG_Z5,rollo_OG_Z6,rollo_wz_2_tuer,rollo_wz_3, rollo_wz_1 quote]

Habe keine Strukture gemacht bei mir

Die Trennung ist doch ohne Komma?

Zitatdefine rollo_alle_Fenster structure room rollo_kue rollo_OG_Z1 rollo_OG_Z3 rollo_OG_Z5 rollo_OG_Z6 rollo_wz_1 rollo_wz_3

define rollo_alle_Tueren structure room rollo_OG_Z2_tuer rollo_OG_Z4_tuer rollo_wz_2_tuer

define rollo_alle_FensterTueren_speziell structure room rollo_kue rollo_OG_Z3 rollo_OG_Z4_tuer rollo_OG_Z5 rollo_OG_Z6 rollo_wz_2_tuer rollo_wz_3 rollo_wz_1

oder geht beides?