[gelöst] DOIF schaltet nicht mehr

Begonnen von der_da, 22 April 2018, 12:23:34

Vorheriges Thema - Nächstes Thema

Damian

Ich habe bei mir den Fall mit der aktuellen Version nachgestellt - ohne Probleme.

Schau mal was bei dir {$we} heute in der Kommandozeile liefert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Zitat von: Damian am 22 April 2018, 19:27:02
Ich habe bei mir den Fall mit der aktuellen Version nachgestellt - ohne Probleme.

Schau mal was bei dir {$we} heute in der Kommandozeile liefert.
Mas mich irritiert, sind die Angaben aus dem Listing des DOIF

Zitattimerevent T: 27.7 H: 35
     timerevents:
       T: 27.7 H: 35
     timereventsState:
       state: T: 27.7 H: 35
Sind das Events, die innerhalb eine Zeitspanne eintreten?

Damian

Zitat von: Ellert am 22 April 2018, 20:16:29
Mas mich irritiert, sind die Angaben aus dem Listing des DOIF
Sind das Events, die innerhalb eine Zeitspanne eintreten?

Das ist durchaus denkbar. In der aktuellen Version wird auf alle Events von Terrasse reagiert, Stichwort "checkReadingEvents".

Allerdings kann aufgrund der Definition "ohne do always" sowie "kein DOELSE-Zweig" passieren, dass cmd_6 bereits gestern stattgefunden hat und kein anderer Zweig zwischendurch dran kam, daher wurde heute auch nichts geschaltet.

Für solche Fälle sollte man DOELSEIF ([00:00]) dranhängen, um einen Zustandswechsel für den nächsten Tag zu provozieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eisman

hi,

kann es sein das DOIF ein Problem hat,
ich habe heute turnusmäßig eine Installation geprüft, die seit einem halben Jahr
ohne Probleme und Kontrolle gelaufen ist, dort hat seit zwei Tagen kein timer der DOIF ausgelöst. Bis dahin
liefen alle Schaltungen ohne Probleme (laut log wurden alle Schaltungen bis vor 2Tagen ausgeführt)

cmd_event: timer1

nach einen check all stellten sich die doifs um.

kann aber erst morgen mehr sagen

gruss

1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

eisman

#19
hi,

die Antwort lautet wohl ja :-[
checkReadingEvents=??? würde aber voraussetzen das keine DOIF geht,
beide Installationen sind gleich ausgestattet!


([[RA_0100:rollo-zeit-auf]-[RA_0100:rollo-zeit-zu]] and [RA_0100:rollo-mode] eq "auto") (set RA_0100 rollo-zeit tag,{Rollo("01","01","100")})
DOELSEIF ([[RA_0100:rollo-zeit-zu]-[RA_0100:rollo-zeit-auf]] and [RA_0100:rollo-mode] eq "auto") (set RA_0100 rollo-zeit nacht,{Rollo("01","01","0")})
DOELSEIF ([{sunrise("CIVIL",0,"[RA_0100:rollo-zeit-auf]","10:00")}] and [RA_0100:rollo-mode] eq "sonne") (set RA_0100 rollo-zeit tag,{Rollo("01","01","100")})
DOELSEIF ([{sunset("CIVIL",0,"16:00","[RA_0100:rollo-zeit-zu]")}] and [RA_0100:rollo-mode] eq "sonne") (set RA_0100 rollo-zeit nacht,{Rollo("01","01","0")})



8 Rollladen die mit der Selben Funktion ausgestattet sind gehen teilweise nicht

installation 1
  ROLLO 1  SONNE cmd3 cmd4 geht
  ROLLO 2  SONNE cmd3 cmd4 geht
  ROLLO 3  AUTO   cmd1 cmd2 geht nicht
  ROLLO 4  MANU  ......
Installation 2
  ROLLO 1  SONNE cmd3 cmd4 geht
  ROLLO 2  SONNE cmd3 cmd4 geht
  ROLLO 3  AUTO   cmd1 cmd2 geht
  ROLLO 4  MANU  ......

Heizung:

([[RA_0100:temp-zeit-tag]|0123456-[RA_0100:temp-zeit-nacht]|0123456])  (set RA_0100 temp-zeit Tag,{Heizung("01","01","[RA_0100:temp-day]")})
DOELSEIF ([[RA_0100:temp-zeit-nacht]|0123456-[RA_0100:temp-zeit-tag]|0123456])  (set RA_0100 temp-zeit Nacht,{Heizung("01","01","[RA_0100:temp-night]")})


installation 1
  HZ 1  cmd1 cmd2 geht nicht
  HZ 2  cmd1 cmd2 geht nicht
  HZ 3  cmd1 cmd2 geht nicht
  HZ 4  cmd1 cmd2 geht nicht
  HZ 5  cmd1 cmd2 geht nicht

Installation 2
  HZ 1  cmd1 cmd2 geht
  HZ 2  cmd1 cmd2 geht
  HZ 3  cmd1 cmd2 geht nicht
  HZ 4  cmd1 cmd2 geht
  HZ 5  cmd1 cmd2 geht

einzige unterschied ist der DeviceName
doif ohne Zeitangaben gehen alle.

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Ellert

Zitat von: Damian am 22 April 2018, 20:29:59
Das ist durchaus denkbar. In der aktuellen Version wird auf alle Events von Terrasse reagiert, Stichwort "checkReadingEvents".

Allerdings kann aufgrund der Definition "ohne do always" sowie "kein DOELSE-Zweig" passieren, dass cmd_6 bereits gestern stattgefunden hat und kein anderer Zweig zwischendurch dran kam, daher wurde heute auch nichts geschaltet.

Für solche Fälle sollte man DOELSEIF ([00:00]) dranhängen, um einen Zustandswechsel für den nächsten Tag zu provozieren.
Ja, dann ist das DOIF in der 1 Grad Hysteresis hängen geblieben, heute wird es dann klappen.

eisman

hi,

es ist wieder gegangen nach dem ich sie manuell umgeschaltet habe
muss ich nochmal beobachten.
bis um 10 sollten sollten die alle einmal geschaltet haben

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Damian

Zitat von: eisman am 23 April 2018, 07:56:19
hi,

es ist wieder gegangen nach dem ich sie manuell umgeschaltet habe
muss ich nochmal beobachten.
bis um 10 sollten sollten die alle einmal geschaltet haben

gruss

Ich habe das Problem gefunden, es betraf Intervalle, bei denen die erste Zeitangabe größer war als die zweite.

Korrigierte Version eingecheckt, siehe: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM?order=date&desc=1


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

Ellert

Zitat von: eisman am 23 April 2018, 02:08:30
hi,

die Antwort lautet wohl ja :-[
checkReadingEvents=??? würde aber voraussetzen das keine DOIF geht,
beide Installationen sind gleich ausgestattet!


([[RA_0100:rollo-zeit-auf]-[RA_0100:rollo-zeit-zu]] and [RA_0100:rollo-mode] eq "auto") (set RA_0100 rollo-zeit tag,{Rollo("01","01","100")})
DOELSEIF ([[RA_0100:rollo-zeit-zu]-[RA_0100:rollo-zeit-auf]] and [RA_0100:rollo-mode] eq "auto") (set RA_0100 rollo-zeit nacht,{Rollo("01","01","0")})
DOELSEIF ([{sunrise("CIVIL",0,"[RA_0100:rollo-zeit-auf]","10:00")}] and [RA_0100:rollo-mode] eq "sonne") (set RA_0100 rollo-zeit tag,{Rollo("01","01","100")})
DOELSEIF ([{sunset("CIVIL",0,"16:00","[RA_0100:rollo-zeit-zu]")}] and [RA_0100:rollo-mode] eq "sonne") (set RA_0100 rollo-zeit nacht,{Rollo("01","01","0")})



8 Rollladen die mit der Selben Funktion ausgestattet sind gehen teilweise nicht

installation 1
  ROLLO 1  SONNE cmd3 cmd4 geht
  ROLLO 2  SONNE cmd3 cmd4 geht
  ROLLO 3  AUTO   cmd1 cmd2 geht nicht
  ROLLO 4  MANU  ......
Installation 2
  ROLLO 1  SONNE cmd3 cmd4 geht
  ROLLO 2  SONNE cmd3 cmd4 geht
  ROLLO 3  AUTO   cmd1 cmd2 geht
  ROLLO 4  MANU  ......

Heizung:

([[RA_0100:temp-zeit-tag]|0123456-[RA_0100:temp-zeit-nacht]|0123456])  (set RA_0100 temp-zeit Tag,{Heizung("01","01","[RA_0100:temp-day]")})
DOELSEIF ([[RA_0100:temp-zeit-nacht]|0123456-[RA_0100:temp-zeit-tag]|0123456])  (set RA_0100 temp-zeit Nacht,{Heizung("01","01","[RA_0100:temp-night]")})


installation 1
  HZ 1  cmd1 cmd2 geht nicht
  HZ 2  cmd1 cmd2 geht nicht
  HZ 3  cmd1 cmd2 geht nicht
  HZ 4  cmd1 cmd2 geht nicht
  HZ 5  cmd1 cmd2 geht nicht

Installation 2
  HZ 1  cmd1 cmd2 geht
  HZ 2  cmd1 cmd2 geht
  HZ 3  cmd1 cmd2 geht nicht
  HZ 4  cmd1 cmd2 geht
  HZ 5  cmd1 cmd2 geht

einzige unterschied ist der DeviceName
doif ohne Zeitangaben gehen alle.

gruss
[[RA_0100:temp-zeit-tag]|0123456-[RA_0100:temp-zeit-nacht]|0123456] das ist eine nicht dokumentierte Syntax, dass es funktioniert wundert mich.
0123456 kann man weglassen, das ist default.
Wochentageinschränkung für indirekte Zeitangaben sind mir neu, ich kenne es so
[[RA_0100:temp-zeit-tag]-[RA_0100:temp-zeit-nacht]|0123456]

eisman

Zitat von: Ellert am 23 April 2018, 09:03:01
[[RA_0100:temp-zeit-tag]|0123456-[RA_0100:temp-zeit-nacht]|0123456] das ist eine nicht dokumentierte Syntax, dass es funktioniert wundert mich.
0123456 kann man weglassen, das ist default.
Wochentageinschränkung für indirekte Zeitangaben sind mir neu, ich kenne es so
[[RA_0100:temp-zeit-tag]-[RA_0100:temp-zeit-nacht]|0123456]

hi,
>>>> |0123456] steht noch drin, weil ich noch am überlegen war, es zu nutzen....(da es allgemein Funktioniert werde ich es eh mal rausnehmen)
>>>> verstehe ich nicht warum es nicht funktionieren sollte, es werden doch nur Zeiten übergeben und läuft so seit letzem jahr

das war aber eh nicht das problem, so wie es bis jetzt ausschaut haben sich die doif aufgehängt,
nach manuellen setzten geht es erstmal.

gruss
gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Damian

Zitat von: eisman am 23 April 2018, 09:40:30
hi,
>>>> |0123456] steht noch drin, weil ich noch am überlegen war, es zu nutzen....(da es allgemein Funktioniert werde ich es eh mal rausnehmen)
>>>> verstehe ich nicht warum es nicht funktionieren sollte, es werden doch nur Zeiten übergeben und läuft so seit letzem jahr

das war aber eh nicht das problem, so wie es bis jetzt ausschaut haben sich die doif aufgehängt,
nach manuellen setzten geht es erstmal.

gruss
gruss

Abgesehen von der falschen Angabe, die erste Wochentagangabe wird überlesen, es zählt nur die letzte, so wie Ellert es beschrieben hat. Das hat aber nichts mit dem Problem zu tun. Nimm einfach die korrigierte Version und alles wird funktionieren wie vorher. Der Fehler war eindeutig und ist mit der letzten Version reingekommen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eisman

hi,

danke für die Info,
habe die Tagesangabe raus genommen, da ich sie für die zwischen temp (anwesend und warm) nicht benötige.
diese werden anders gesteuert...

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

fred_feuerstein

Vielen Dank für die Korrektur vom DOIF :)
Hatte ein ähnliches Problem bei doifs, die bisher problemlos liefen.

Nun ist alles wieder gut.


Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Gruß, Fred

FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art

Per

Statt dem Dummy zu setzen würde ich dem DOIF einfach den Namen des Dummys geben und mit attr cmdState arbeiten.
Zumindest, wenn der Wert nicht noch von anderer Seite beeinflusst wird.

der_da

Sorry, das ich mich jetzt erst wieder hierzu zurückmelde. Meine FHEM-Installation hatte inzwischen noch größere Probleme, die schlussendlich auf einen Hardwaredefekt der Speicherkarte zurückzuführen waren. Nach einer Wiederherstellung der FHEM-Installation auf einer neuen SD-Karte lief besagtes DOIF wieder wie gewohnt. Danke an alle und vor allem an Damian. Habe deine Optimierung in großen Teilen übernommen.  ;)