[GELÖST] Doif initialisirungsproblem mit Disable

Begonnen von Robert1963, 11 November 2019, 10:33:54

Vorheriges Thema - Nächstes Thema

Robert1963

Hallo,

habe ein Problem mit einigen meiner DOIFs.
Habe 3 DOIFs kopiert und leicht abgeändert. Ein DOIF habe ich nur geändert.
Die haben alle gut funktioniert. Bis zu meinem Standart Systemreboot Mittwoch Nacht.
Danach liefen die 4 DOIFs nicht mehr, als wenn sie Disabelt wären, was sie nicht waren.
Hatte im Set ... Auswahlmenü auch nur die Möglichkeit für enable bzw. disable, kein checkall.
Konnte mit set ... enabel zwar den mode auf dis- oder enabel ändern aber das/die DOIFs liefen immer noch nicht.
Ein Sprung in den Editor,... abspeichern und das DOIF arbeitet wieder.
Nach einem Reboot ist das DOIF wieder inaktive.
Ein löschen des Attributes Disable =0 hat dazu geführt das das/die DOIFs auch nach einem Restart wieder laufen.

Ein ähnliches Verhalten wurde in
https://forum.fhem.de/index.php/topic,37083.0.html
schon mal beschrieben aber nicht, für mich verständlich gelöst.

Andere DOIFs mit dem Attribut Disable=0 laufen auch nach einem restart normal an.

Ich hoffe das ich nur eine Veränderung verschlafen habe und das Problem mit ein wenig mehr Hintergrundwissen zu umgehen ist und mir das Problem erklärt werden kann.
Bin besorgt das neue Änderungen an meinen DOIFs wieder zu Problemen führen.


PS: Bin updatemäßig aktuell

In der Hoffnung das Problem verständlich rübergebracht zu haben, hänge ich ein betroffenes DOIF, noch im Fehlermodus, ran.

defmod act_DOIF_wz_Roll_Terassenseite_I DOIF ## Rollladensteuerung Wohnzimmer Terrassenseite\
\
## Rolladen werden den Schaltimpuls gesteuert. Der Status bzw. die Statusänderung, erzeugt kein Fahrbewegung.\
## Dadurch kann man die Position manuell ändern ohne das, wg. des veränderten Status, der Rollladen wieder zurück fährt\
\
## Der Rolladen fährt 60 sec nach Schaltvorgang (Damit nicht alle Rolläden gleizeitig fahren)\
## Beim senken wird der Rolladen nach 60 sec, zur Sicherheit, noch mal runter gefahren\
\
## Plichten:\
## Wenn Anwesend und Wach Rollladen immer hoch\
## Wenn Abwesend Rollladen immer im Tag/Nachtwechsel\
## Der Rolladen fäfrt nicht, nach man. verfahren, auf alte Position zurück\
\
## 1\
##  wenn Tag eingeschaltet wird, Rolladen immer hoch\
([TagRollladen:"on"]) \
\
(set wz_Roll_Terrassenseite Auf)\
\
## 2\
## Wenn auf Anwesend geschaltet wird (Nachts nach hause kommend)\
DOELSEIF\
([Anwesenheit_Status:"Anwesend"]) \
\
(set wz_Roll_Terrassenseite Auf)\
\
## 3\
## Wenn auf wach geschaltet wird, Rolladen immer hoch\
DOELSEIF\
([WachSchlafen:"wach"] )\
\
(set wz_Roll_Terrassenseite Auf)\
\
\
\
## 4\
## Wenn auf Nacht geschaltet wird und nicht Zuhause Rolladen runter\
DOELSEIF\
([TagRollladen:"off"] and [Anwesenheit_Status] eq "Abwesend") \
\
(set wz_Roll_Terrassenseite Ab)\
\
## wait 60\
(set wz_Roll_Terrassenseite Ab)\
\
\
## 5\
## Wenn auf Abwesend geschaltet wird und Nacht\
DOELSEIF\
([Anwesenheit_Status:"Abwesend"] and  [TagRollladen] eq "off") \
\
(set wz_Roll_Terrassenseite Ab)\
\
## wait 60\
(set wz_Roll_Terrassenseite Ab)\
\
\
## 6\
## Wenn auf schlafen geschaltet wird und Nacht Rolladen immer runter\
DOELSEIF\
([WachSchlafen:"schlafen"] and  [TagRollladen] eq "off")\
\
(set wz_Roll_Terrassenseite Ab)\
\
## wait 60\
(set wz_Roll_Terrassenseite Ab)\
\
\

attr act_DOIF_wz_Roll_Terassenseite_I disable 0
attr act_DOIF_wz_Roll_Terassenseite_I do always
attr act_DOIF_wz_Roll_Terassenseite_I room Rollladen
attr act_DOIF_wz_Roll_Terassenseite_I wait 60:60:60:60,60:60,60:60,60
attr act_DOIF_wz_Roll_Terassenseite_I widgetOverride cmdState:textField-long wait:textField-long

setstate act_DOIF_wz_Roll_Terassenseite_I initialized
setstate act_DOIF_wz_Roll_Terassenseite_I 2019-11-11 09:03:05 cmd 0
setstate act_DOIF_wz_Roll_Terassenseite_I 2019-11-11 09:03:05 mode enabled
setstate act_DOIF_wz_Roll_Terassenseite_I 2019-11-11 09:03:05 state initialized



Viele Grüße,
Robert
Nuc 7i7, Ubuntu 20.04.2 LTS, FS20, Homematic, EnOcean, Hue, Conbee, Fritzbox 6490kd,

Damian

Wenn du kein  checkall zur Auswahl hast, dann befindet sich dein Modul im falschen Modus.

Das Modul schaut, ob als erstes Zeichen Klammer auf kommt, wenn nicht, dann geht es in den Perlmodus. Ich vermute, dass die Kommentarzeilen von der ersten Bedingung zu dem Problem führen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Robert1963


Das kann gut sein, wenn ich aber das  Attrebut Disable=0 lösche und dann das DOIF kopiere, funktioniert die Copy auf Anhieb, auch mit führendem Kommentar.
Eben mit nem Testdoif probiert.

Da ich schon langsam vergesslich werde sind die Kommentarzeilen für mich schon wichtig, habe sie in jedem DOIF der letzten 2 Jahre drin und möcht sie nicht missen.

Auch das Attrebut Disabel wird bei mir in älteren DOIFs gesetzt um Funktionen zu schalten.
Müste ich die alle ändern?
Nuc 7i7, Ubuntu 20.04.2 LTS, FS20, Homematic, EnOcean, Hue, Conbee, Fritzbox 6490kd,

Damian

Entscheidend ist was im Internal Model steht, wenn fälschlicherweise Perl erkannt wird, dann kann die FHEM-Syntax des FHEM-Modus gar nicht funktionieren. Das sollte unabhängig vom disable bzw. unabhängig vom Reboot sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Ein Dejavu...
Hatten wir doch die Tage erst.

Damian, könnte man nicht die Raute erkennen und dann diese Zeile des DEF ignorieren für die Modus Erkennung?

Gesendet von meinem S60 mit Tapatalk


Damian

Zitat von: Frank_Huber am 11 November 2019, 19:52:24
Ein Dejavu...
Hatten wir doch die Tage erst.

Damian, könnte man nicht die Raute erkennen und dann diese Zeile des DEF ignorieren für die Modus Erkennung?

Gesendet von meinem S60 mit Tapatalk

ja, kann ich für das nächste Update vorsehen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Danke. [emoji1303]

Gesendet von meinem S60 mit Tapatalk


Damian

Ich habe es gerade angetestet:

im DEF-Editior eingegeben:

## bla bla
## bla bla
([bla])



wird als FHEM-Modus bereits erkannt. Führende Kommentare sind offenbar nicht das Problem.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

#8
Könnte es auch ein Thema sein ob man editiert oder neu anlegt?

Gesendet von meinem S60 mit Tapatalk

Frank_Huber


Damian

Zitat von: Frank_Huber am 11 November 2019, 20:15:05
Dann wäre die Frage wann du das angepasst hattest und wie aktuell die Version des TE ist.

Könnte es auch ein Thema sein ob man editiert oder neu anlegt?

Gesendet von meinem S60 mit Tapatalk

Die letzte Änderung zu diesem Thema ist vom 25.03.2018.

Die Frage ist immer: Wann wurde zuletzt ein Update gemacht?

Nach einem Update und damit einem Reboot sollte die neue Funktionalität gegeben sein.

Ich habe allerdings im September dieses Jahr beiläufig ein Problem mit disable korrigiert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Frank_Huber am 11 November 2019, 20:28:43
Keine 2 Wochen her:
https://forum.fhem.de/index.php?topic=104891.0

Gesendet von meinem Telekom Puls mit Tapatalk

Das ist ein anderes Problem, er hat nur ein hash-Zeichen (#) statt zwei (##) für eine FHEM-Kommentarzeile angegeben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Hab meinen Post gerade korrigiert, er gibt an aktuell zu sein.
Klingt so als ob ein reboot mit Kommentar nicht geht, eine DEF Änderung dagegen schon?

Gesendet von meinem Telekom Puls mit Tapatalk


Damian

Zitat von: Frank_Huber am 11 November 2019, 20:34:20
Hab meinen Post gerade korrigiert, er gibt an aktuell zu sein.
Klingt so als ob ein reboot mit Kommentar nicht geht, eine DEF Änderung dagegen schon?

Gesendet von meinem Telekom Puls mit Tapatalk

Ein Reboot führt aber eine Definition aus, es sollte keine Unterschiede bei der Erkennung der Syntax geben. Wenn doch, dann brauche ich einen nachvollziehbaren Beweis.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Zitat von: Damian am 11 November 2019, 20:32:21
Das ist ein anderes Problem, er hat nur ein hash-Zeichen (#) statt zwei (##) für eine FHEM-Kommentarzeile angegeben.
Aaaaaahhhhhhhhh, danke. Das war mir jetzt auch neu.

Gesendet von meinem Telekom Puls mit Tapatalk