set doif checkall funktioniert nicht

Begonnen von Jasimo, 12 Juni 2018, 18:08:40

Vorheriges Thema - Nächstes Thema

Jasimo

Moin,

ich wollte mittels doif sagen wir mal alle 15 Minuten ein checkall auf einem anderen doif machen.
probiert hab ich es so:

([+:15]) (set doif_Mowerregen_active ckeckall)

komischerweise macht er das checkall auf dem doif "doif_Mowerregen_active" nicht, gehe ich jedoch ins Fhemweb und drücke den set button für das checkall klappt es. Ich mache bestimmt etwas falsch, nur was?

Gruß
Jan

amenomade

do always fehlt
Wie stellt Du fest, dass es es nicht macht?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Jasimo

danke für Deine Hilfe, do always ist gesetzt, das kann es nicht sein.
Ich habe einen Dummy in dem ich eine Uhrzeit setze, dieses state (Uhrzeit hh:mm) des Dummy nutze ich in einem doif. Ändere ich nun die Uhzeit des Dummys (state) bekommt das doif in dem diese Zeit genutzt wird die Änderung nicht mit (das Doif soll dann einige watchdogs auf active inactive setzen).
Ich habe bemerkt, dass ich das doif mitels checkall dazu bringen kann dieses zu tun, jedoch nur über die schaltfläche set ... checkall.
Mit dem Absetzen eines Befehls in der Kommandozeile von Fhemweb, wieset doif_Mowerregen_active ckeckall geht es leider nicht.

amenomade

Ein "list" von den DOIFs wäre nicht schlecht. Insb. wenn die sich in einem Zustand befinden, den du nicht für richtig haltest.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Damian

Zitat von: Jasimo am 12 Juni 2018, 20:52:59
danke für Deine Hilfe, do always ist gesetzt, das kann es nicht sein.
Ich habe einen Dummy in dem ich eine Uhrzeit setze, dieses state (Uhrzeit hh:mm) des Dummy nutze ich in einem doif. Ändere ich nun die Uhzeit des Dummys (state) bekommt das doif in dem diese Zeit genutzt wird die Änderung nicht mit (das Doif soll dann einige watchdogs auf active inactive setzen).
Ich habe bemerkt, dass ich das doif mitels checkall dazu bringen kann dieses zu tun, jedoch nur über die schaltfläche set ... checkall.
Mit dem Absetzen eines Befehls in der Kommandozeile von Fhemweb, wieset doif_Mowerregen_active ckeckall geht es leider nicht.

DOIF weiß nicht von wo der set-Befehl kommt, es gibt keinen Unterschied beim set-Befehl von der Kommandozeile und Weboberfläche. Poste man list von dem DOIF.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo

Hier das List des doifs welches das "set doif_Mowerregen_active ckeckall" aufruft
Internals:
   DEF        ([+:15]) (set doif_Mowerregen_active ckeckall)
   MODEL      FHEM
   NAME       doif_Mowerregen_checkall
   NR         120
   NTFY_ORDER 50-doif_Mowerregen_checkall
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-06-12 21:00:00   cmd             1
     2018-06-12 21:00:00   cmd_event       timer_1
     2018-06-12 21:00:00   cmd_nr          1
     2018-06-12 19:41:06   mode            enabled
     2018-06-12 21:00:00   state           cmd_1
     2018-06-12 21:00:00   timer_01_c01    12.06.2018 21:15:00
   Regex:
   condition:
     0          DOIF_time_once($hash,0,$wday)
   days:
   devices:
   do:
     0:
       0          set doif_Mowerregen_active ckeckall
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev   
     timerevent timer_1
     timereventsState
     triggerDev
     timerevents:
       timer_1
     triggerEvents:
       timer_1
   internals:
   interval:
   itimer:
   localtime:
     0          1528830900
   readings:
   realtime:
     0          21:15:00
   time:
     0          +:15
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1528830900:
       localtime  1528830900
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   group      2.0 Landroid
   room       System


und hier das doif "doif_Mowerregen_active" welches mit dem oberen doif per set .... checkall aufgerufen wird

Internals:
   DEF        ([([Maehzeit:state]-[05:01])-([Maehzeit:state]+[00:01])])
(set wd_Mowerregen.* active)
DOELSE (set wd_Mowerregen.* inactive)
   MODEL      FHEM
   NAME       doif_Mowerregen_active
   NR         118
   NTFY_ORDER 50-doif_Mowerregen_active
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-06-12 17:19:18   cmd             1
     2018-06-12 17:19:18   cmd_event       doif_Mowerregen_active
     2018-06-12 17:19:18   cmd_nr          1
     2018-06-01 18:30:47   mode            enabled
     2018-06-12 17:19:18   state           cmd_1
     2018-06-12 17:48:53   timer_01_c01    13.06.2018 05:59:00
     2018-06-12 17:48:53   timer_02_c01    13.06.2018 11:01:00
   Regex:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
   do:
     0:
       0          set wd_Mowerregen.* active
     1:
       0          set wd_Mowerregen.* inactive
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     timereventsState
     triggerDev
     timerevents:
       timer_2
     triggerEvents:
       timer_2
   internals:
   interval:
     0          -1
     1          0
   itimer:
     all         Maehzeit
   localtime:
     0          1528862340
     1          1528880460
   perlblock:
   readings:
   realtime:
     0          05:59:00
     1          11:01:00
   time:
     0          ([Maehzeit:state]-[05:01])
     1          ([Maehzeit:state]+[00:01])
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1528862340:
       localtime  1528862340
       hash:
     1528880460:
       localtime  1528880460
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   group      2.0 Landroid
   room       System


Hier die beiden genutzten Zeit und Tage dummys

Internals:
   NAME       Maehzeit
   NR         115
   STATE      11:00
   TYPE       dummy
   READINGS:
     2018-06-12 17:48:53   state           11:00
Attributes:
   fhem_widget_channels [{"group":"Mäher","alias":"⏰Mähzeit","allowed_values":["11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00"],"locations":["ALIST"]},{"controlled_attribute":"state","group":"Garten","alias":"⏰Mähzeit:","allowed_values":[],"locations":["AGRID","WGRID"]}]
   group      1.0 Mähplan
   icon       scene_robo_lawnmower
   room       Landroid
   setList    state:uzsuDropDown,11:00,12:00,13:00,14:00,15:00,16:00,17:00,18:00,19:00,20:00,21:00
   sortby     1
   webCmd     state

...

Internals:
   NAME       Maehtage
   NR         114
   STATE      So,Mo,Di,Mi,Do,Fr,Sa
   TYPE       dummy
   READINGS:
     2018-06-01 21:58:58   state           So,Mo,Di,Mi,Do,Fr,Sa
Attributes:
   fhem_widget_channels [{"controlled_attribute":"state","group":"Garten","alias":"📅Mähtage:","allowed_values":[],"locations":["WGRID","AGRID"]}]
   group      1.0 Mähplan
   icon       scene_robo_lawnmower
   room       Landroid
   setList    state:uzsuSelect,So,Mo,Di,Mi,Do,Fr,Sa
   sortby     2
   webCmd     state

amenomade

Um 17:48:53 hast Du Maehzeit auf 11:00 gesetzt. Was war es vorher?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Jasimo

19:00 oder 20;00 bin mir nicht sicher


Gesendet von iPhone mit Tapatalk Pro

Damian

Ich habe bei mir beide DOIFs ohne Probleme nachstellen können und es funktioniert alles wie programmiert.

Ich nehme an, dass du zuletzt um 7:19:18 Uhr manuell set ausgeführt hast.

     2018-06-12 17:19:18   cmd_event       doif_Mowerregen_active

Danach hast du wohl Mahlzeit:state auf 11:00 Uhr gesetzt, was nicht schlimm ist, denn es sollte dann der cmd_2-Fall bei dir kommen.

Warum bei dir der set Befehl z. B. um 21:00 Uhr nicht angekommen ist, kann ich dir nicht sagen. Der Devicename scheint zu stimmen, sonst gäbe es eine Fehlermeldung.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo

Das ist komisch, die watchdogs werden nicht auf active inactive gesetzt wenn der set ... checkall über ein doif kommt oder ich den set über die Kommandozeile in Fhemweb eingebe. Er macht es (bei mir) nur wenn ich den set über den Button im doif aktiviere.


Gesendet von iPhone mit Tapatalk Pro

Jasimo

#10
die watchdogs stehen derzeit alle auf "defined" obwohl die Maehzeit auf 11:00 gesetzt ist, die watchdog müssten also eigenlich auf inactive stehen.
Hier ein List von enem der wd
Internals:
   CMD        setreading Mower regenindex {(ReadingsVal("Mower","regenindex",0) + 1)}
   DEF        Regensensor:rain 00:10:00 Regensensor:dry setreading Mower regenindex {(ReadingsVal("Mower","regenindex",0) + 1)}
   NAME       wd_Mowerregen10
   NOTIFYDEV  Regensensor,wd_Mowerregen10
   NR         74
   NTFY_ORDER 50-wd_Mowerregen10
   RE1        Regensensor:rain
   RE2        Regensensor:dry
   STATE      defined
   TO         600
   TYPE       watchdog
   READINGS:
     2018-06-01 13:45:17   Activated       activated
     2018-06-01 13:55:17   Triggered       triggered
     2018-06-12 17:19:18   state           defined
Attributes:
   autoRestart 1
   group      2.0 Landroid
   room       System


Damian

Was passiert bei:

define DOIF di_test ([+30]) (set doif_Mowerregen_active cmd_2)

attr di_test do always


Wird der cmd_2-Fall ausgeführt?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo

ja er wechselt auf cmd_2, die watchdogs sind nun auf inactive

Damian

Zitat von: Jasimo am 12 Juni 2018, 22:24:28
ja er wechselt auf cmd_2, die watchdogs sind nun auf inactive

dann ändere jetzt, das Test-DOIF:

define DOIF di_test ([+30]) (set doif_Mowerregen_active checkall)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo

hab ich gemacht. Melde mich nochmal mit dem Resultat.
DANKE!

Damian

Zitat von: Jasimo am 12 Juni 2018, 22:29:53
hab ich gemacht. Melde mich nochmal mit dem Resultat.
DANKE!
Die 30 Sekunden hättest du noch abwarten können ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo


Jasimo

klappt!
Nur kapieren tue ich es nicht ;-)

Damian

Zitat von: Jasimo am 12 Juni 2018, 22:35:16
klappt!
Nur kapieren tue ich es nicht ;-)

Ich auch nicht. Dann änderst du die Zeit noch:

define DOIF di_test ([+:15]) (set doif_Mowerregen_active checkall)

Löschst die alte Definition und bennenst di_test um.

Womöglich hast du irgendwelche nicht sichtbaren Sonderzeichen in deiner Definition.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jasimo

ok, das mache ich aber erst morgen früh , muss nun los.
Vielen vielen Dank für Deine Hilfe und auch die von amenomade.
Melde mich dann nochmal kurz ob es lüppt.

Jasimo

Klappt alles.
Gruss
Jan


Gesendet von iPhone mit Tapatalk Pro