Hauptmenü

DOIF Schaltproblem

Begonnen von Spartacus, 13 Juni 2017, 12:16:18

Vorheriges Thema - Nächstes Thema

Otto123

Hallo Christian,

mit einem list von Deinem DOIF würde man noch sehen wie die Readings stehen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spartacus

Hallo zusammen,
hier mal das Listing:
Internals:
   CFGFN      Config/01-Wohnzimmer.cfg
   DEF        ([23:00] and [?GA.ss.SA.Licht] eq "off" and [?switch.di.02.EG.wz.RO.dum] eq "on")
(set EG.wz.RO.* closes)
DOELSEIF
([GA.ss.SA.Licht] eq "off" and [?help.Tageslicht.dum] eq "dunkel" and [?switch.di.02.EG.wz.RO.dum] eq "on")
(set EG.wz.RO.* closes)
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE
   NAME       di.01.EG.wz.RO
   NR         141
   NTFY_ORDER 50-di.01.EG.wz.RO
   STATE      on
   TYPE       DOIF
   Readings:
     2017-06-17 23:00:00   Device          GA.ss.SA.Licht
     2017-06-18 23:00:00   cmd             1
     2017-06-18 23:00:00   cmd_event       timer_1
     2017-06-18 23:00:00   cmd_nr          1
     2017-06-17 23:00:00   e_GA.ss.SA.Licht_STATE off
     2017-06-18 23:00:00   state           on
     2017-06-20 23:00:00   timer_01_c01    21.06.2017 23:00:00
     2017-06-17 23:02:00   wait_timer      no timer
   Condition:
     0          DOIF_time_once($hash,0,$wday) and InternalDoIf($hash,'GA.ss.SA.Licht','STATE') eq "off" and InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "on"
     1          InternalDoIf($hash,'GA.ss.SA.Licht','STATE') eq "off" and InternalDoIf($hash,'help.Tageslicht.dum','STATE') eq "dunkel" and InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "on"
     2          InternalDoIf($hash,'switch.di.02.EG.wz.RO.dum','STATE') eq "off"
   Days:
   Devices:
     1           GA.ss.SA.Licht
     2           switch.di.02.EG.wz.RO.dum
     all         GA.ss.SA.Licht switch.di.02.EG.wz.RO.dum
   Do:
     0:
       0          set EG.wz.RO.* closes
     1:
       0          set EG.wz.RO.* closes
     2:
       0
     3:
       0
   Helper:
     event      timer_1
     globalinit 1
     last_timer 1
     sleepdevice GA.ss.SA.Licht
     sleepsubtimer -1
     sleeptimer -1
     timerdev
     timerevent timer_1
     triggerDev
     timerevents:
       timer_1
     timereventsState:
       state: off
     triggerEvents:
       timer_1
     triggerEventsState:
       state: off
   Internals:
     0           GA.ss.SA.Licht:STATE switch.di.02.EG.wz.RO.dum:STATE
     1           GA.ss.SA.Licht:STATE help.Tageslicht.dum:STATE switch.di.02.EG.wz.RO.dum:STATE
     2           switch.di.02.EG.wz.RO.dum:STATE
     all         GA.ss.SA.Licht:STATE switch.di.02.EG.wz.RO.dum:STATE help.Tageslicht.dum:STATE
   Interval:
   Itimer:
   Localtime:
     0          1498078800
   Readings:
   Realtime:
     0          23:00:00
   Regexp:
     0:
     1:
     2:
     All:
   State:
     State:
   Time:
     0          23:00:00
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0
   Trigger:
   Triggertime:
     1498078800:
       localtime  1498078800
       Hash:
Attributes:
   alias      autom. Rolladen schließen
   cmdState   on|on|deaktiv|on
   devStateIcon .*on:general_an@lightgreen .*on:general_an@lightgreen .*off:general_aus@red .*deaktiv:general_aus@grey
   disable    0
   do         resetwait
   group      Scripte
   icon       fts_shutter_down
   room       01-Wohnzimmer
   wait       0:120:0:0


Vielleicht sehe ich den Wald vor Bäumen nicht!
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Spartacus

Hallo zusammen,
Zitat von: amenomade am 21 Juni 2017, 20:21:08
Ist switch.di.02.EG.wz.RO.dum immer noch auf "on"?
Ja, der Switch ist immer noch auf "on". "Switch.di.02.EG.wz.RO.dum" ist ein Softkey, der die ganze Mimik aktiviert, bzw. deaktiviert.

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

amenomade

Dann sollten  in dem Zustand  die Rolladen um 23:00 heute Abend, falls das Licht aus ist, runter gehen. Es kann aber sein, dass ich auch etwas nicht gesehen habe... frage mich aber was denn?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Spartacus

Hallo,
ja, genau so soll es sein und hätte es auch gestern und vorgestern sein müssen. Aber seit Sonntag 2300 funzt das irgendwie nicht mehr. Weiß der Geier warum!

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

Das DOIF steht aber noch im cmd 1 - da wird heute nix passieren.
Da fehlt jetzt do always?
Aber ich habe ja schon gesagt, ich verstehe es nicht, das mit DOELSEIF ohne Ausführungsteil und leeres DOELSE

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

amenomade

do resetwait sollte ähnlich reagieren wie do always oder?

Zitat von: CommandRef

    Das Attribut do resetwait impliziert eine beliebige Wiederholung wie do always.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Spartacus

Hallo zusammen,
ja, wie erwartet, hat es gestern nicht funktioniert. Irgendetwas ist da schief.
Ich kann das do resetwait jetzt mal gegen das do always austauschen und gucken was passiert.

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

nils_

wenn du das do always einbaust, wird es funktionieren.

dein DOIF steht in cmd 1 und wird da erstmal nicht rausgehen, es sei denn irgendeine andere bedingung wird wahr.
dann würde auch wieder um 23.00 Uhr zurück nach cmd 1 "gesprungen".


otto hat es nun schon mehrfach gesagt, prüf mal bitte was hier korrekterweise stehen sollte, weil so scheint was nicht zu stimmen:
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE


DOELSEIF -> nur abfrage, keinerleie aktion

das "leere" DOELSE würde eigentlich sonst dein do always "ersetzen".
ich vermute die ganze problematik kommt vom leeren ausführungsteil.
viele Wege in FHEM es gibt!

Spartacus

Hallo zusammen,

DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE


Dieser Ausdruck soll eigentlich bewirken, dass ich mit dem Softkey(siehe Screenshot Automatik) das ganze DOIF aktivieren und deaktivieren kann. Durch das DOELSEIF wird bei Betätigung des Switches  direkt getriggert und der Zustand des DOIFs wird korrekt angezeigt. (siehe Screenshot Frontend).

Wie kann ich das denn sonst machen?

Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

Hi Christian,

schwierig zu verstehen ...
Aber ich würde vom Lösungsansatz her zunächst mal Automatik und Bedienung trennen. Ich würde nicht das DOIF vergewaltigen, danach sieht es mir irgendwie aus. Ich würde zunächst das DOIF so machen das es seine Funktion erfüllt und mit einem Dummy die Oberfläche gestalten. Wenn das alles geht, kann man überlegen ob man Dinge zusammenfassen kann.

Wen ich das richtig sehe, verwendest Du den DOELSEIF Zweig anstatt set di.01.EG.wz.RO disable?

Aber um mich da komplett rein zu denken und eine Vorschlag zu liefern erscheint es mir zu kompliziert und interessiert mich zu wenig und es ist zu warm.  ;D

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spartacus

Hallo,
ja, das kann ich verstehen. Bei uns ist es auch extrem warm. fhem zeigt mir gerade eine Außentemperatur von  36 Grad Celsius an und das um kurz vor 11.

Das mit dem aktivieren/deaktivieren ist doch ganz einfach. Ich versuche es noch einmal:

Nehmen wir mal an, ich editiere das DOIF. Dann schaltet dies nach dem Speichern in den Zustand "initialized"
Wenn ich jetzt den Softkey umschalte, dann triggert das DOIF direkt über diese Anweisung:
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")


Fall 1: Softkey geht von "on" auf "off" => "cmd3" greift und devstateIcon "Aus" wird angezeigt
Fall 2: Softkey geht von "off" auf "on" => "cmd4" greift und devstateIcon "Ein" wird angezeigt.

Mehr macht das DOELSEIF und das DOELSE am Ende nicht. Warum muss ein DOELSEIF einen Ausführungsteil haben?
Ist das so?

außerdem:
Bevor ich das 23:00 eingebaut hatte, lief der ganze Mist fast 1 Jahr lang ohne Probleme.
Christian


Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

amenomade

ZitatWarum muss ein DOELSEIF einen Ausführungsteil haben?
Muss nicht.
Dein einziges Problem ist m.A. die richtige Kombination wait / do resetwait / do always zu finden. Vielleicht fragen wir mal einfach  @Damian ;)

ZitatWenn das Licht brennt, sollen die Rolladen (EG.wz.RO.*) nicht schließen.
    Tageslicht = "dunkel" verhindert, dass die Rolladen tagsüber schließen, falls man bei schlechter Tagsicht (Gewitter) das Licht ein-/ausschaltet
    Das Licht geht später am Abend per "fhem" - Automatik -je nach Wochentag, Ferientag, Feiertag, etc.- automatisch aus.
    Die Rolladen sollen dann 120s zeigverzögert schließen
    Wird das Licht innerhalb dieser 120s wieder eingeschaltet (z.B. über den mech. Schalter, da ich noch keinen Bock habe ins Bett zu gehen) wird das "wait" im DOIF zurückgesetzt und die Rolladen schließen nicht
    Der Softschalter "switch.di.02.EG.wz.RO.dum" schaltet die ganze DOIF Automatik ab
    In fhem wird die aktive DOIF-Automatik mit ".*on:general_an@lightgreenSymbol" angezeigt
    die deaktivierte DOIF-Automatik wird mit ".*deaktiv:general_aus@grey" angezeigt; ("off" gibt es hier eigentlich nicht)

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Ich verwende auch einige DOIF ohne Ausführungsteil, um Status anzuzeigen, statt Dummies oder als "Translater" für verschiedene "kryptische" Befehle.
@Spartacus: verwende doch mal das neue DOIF mit den myReadings, da kannst du die Parameter schon im "testen".