Hauptmenü

DOIF Poolpumpe Intervall

Begonnen von mfeske, 29 Juli 2018, 09:28:28

Vorheriges Thema - Nächstes Thema

mfeske

Hallo zusammen,
ich hatte mir letztes Jahr schon ein DOIF für die Poolpumpe zurecht gelegt und war auch der Meinung das Es funktionierte.
Über ein Dropdown kann ich die verschiedenen Zustände auswählen:

Internals:
   NAME       Poolpumpe_Schalter
   NR         343
   STATE      on
   TYPE       dummy
   READINGS:
     2018-07-29 09:09:50   state           countdown
Attributes:
   devStateIcon on:set_on off:off intervall:general_an_fuer_zeit countdown:hourglass
   icon       sani_domestic_waterworks
   room       Garten
   setList    state:on,off,intervall,countdown
   webCmd     state


on soll die Pumpe zwischen 9 und 17 einschalten
off ausschalten
intervall soll die Pumpe um X:15 für fünf Minuten einschalten
courndown soll die Pumpe für 3 Stunden einschalten.

dazu habe ich folgendes DOIF genommen:

Internals:
   DEF        ([Poolpumpe_Schalter] eq "on") (set Poolpumpe on) DOELSEIF ([9:00 -17:00] and [+:15] and ([Poolpumpe_Schalter] eq "intervall")) (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF (([Poolpumpe_Schalter] eq "countdown")) (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter] eq "off") (set Poolpumpe off)
   MODEL      FHEM
   NAME       Poolpumpe_DOIF
   NR         347
   NTFY_ORDER 50-Poolpumpe_DOIF
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-07-29 09:19:19   Device          Poolpumpe_Schalter
     2018-07-29 09:19:22   cmd             1
     2018-07-29 09:19:22   cmd_event       Poolpumpe_Schalter
     2018-07-29 09:19:22   cmd_nr          1
     2018-07-29 09:19:19   e_Poolpumpe_Schalter_STATE on
     2018-07-29 09:19:22   state           cmd_1
     2018-07-28 17:00:00   timer_01_c02    29.07.2018 09:00:00
     2018-07-28 17:00:00   timer_02_c02    29.07.2018 17:00:00
     2018-07-29 09:15:00   timer_03_c02    29.07.2018 09:30:00
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          InternalDoIf($hash,'Poolpumpe_Schalter','STATE') eq "on"
     1          DOIF_time($hash,0,1,$wday,$hms) and DOIF_time_once($hash,2,$wday) and (InternalDoIf($hash,'Poolpumpe_Schalter','STATE') eq "intervall")
     2          (InternalDoIf($hash,'Poolpumpe_Schalter','STATE') eq "countdown")
     3          InternalDoIf($hash,'Poolpumpe_Schalter','STATE') eq "off"
   days:
   devices:
     0           Poolpumpe_Schalter
     1           Poolpumpe_Schalter
     2           Poolpumpe_Schalter
     3           Poolpumpe_Schalter
     all         Poolpumpe_Schalter
   do:
     0:
       0          set Poolpumpe on
     1:
       0          set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass
     2:
       0          set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass
     3:
       0          set Poolpumpe off
     4:
   helper:
     event      on
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   Poolpumpe_Schalter
     timerevent on
     triggerDev Poolpumpe_Schalter
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Poolpumpe_Schalter
       state: cmd_1
     timerevents:
       on
     timereventsState:
       state: on
     triggerEvents:
       on
     triggerEventsState:
       state: on
   internals:
     0           Poolpumpe_Schalter:STATE
     1           Poolpumpe_Schalter:STATE
     2           Poolpumpe_Schalter:STATE
     3           Poolpumpe_Schalter:STATE
     all         Poolpumpe_Schalter:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1532847600
     1          1532876400
     2          1532849400
   perlblock:
   readings:
   realtime:
     0          09:00:00
     1          17:00:00
     2          09:30:00
   time:
     0          9:00
     1          17:00:00
     2          +:15
   timeCond:
     0          1
     1          1
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     1           0  1  2
   trigger:
   triggertime:
     1532849400:
       localtime  1532849400
       hash:
     1532876400:
       localtime  1532876400
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Garten


Der Countdown gelingt mir. Auch das off. Aber ich sehe nicht das Intervall genutzt wurde in den Logs :-(.
Ich weiss auch nicht wie ich sicherstellen kann, das die Pumpe tatsächlich am Nachmittag aus geht.

Ich habe noch ein DOIF um die Schalter umzuschalten:

Internals:
   DEF        ([Pool_FB_01] eq "on") (setstate Poolpumpe_Schalter on, set Pool_FB_02 off, set Pool_FB_03 off, set Pool_FB_0ff on) DOELSEIF ([Pool_FB_02] eq "on") (setstate Poolpumpe_Schalter on, set Pool_FB_01 off, set Pool_FB_03 off, set Pool_FB_0ff on) DOELSEIF ([Pool_FB_03] eq "on") (setstate Poolpumpe_Schalter on, set Pool_FB_01 off, set Pool_FB_02 off, set Pool_FB_0ff on) DOELSEIF ([Pool_FB_Off] eq "off") (setstate Poolpumpe_Schalter off, setstate Pool_FB_01 off, setstate Pool_FB_02 off, setstate Pool_03_0ff off) DOELSE ()
   MODEL      FHEM
   NAME       Poolpumpe_Modus_DOIF
   NR         345
   NTFY_ORDER 50-Poolpumpe_Modus_DOIF
   STATE      cmd_5
   TYPE       DOIF
   READINGS:
     2018-07-29 09:26:53   Device          Pool_FB_01
     2018-07-29 09:26:53   cmd             5
     2018-07-29 09:26:53   cmd_event       Pool_FB_01
     2018-07-29 09:26:53   cmd_nr          5
     2018-07-29 09:26:53   e_Pool_FB_01_STATE off
     2018-07-29 09:26:53   state           cmd_5
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          InternalDoIf($hash,'Pool_FB_01','STATE') eq "on"
     1          InternalDoIf($hash,'Pool_FB_02','STATE') eq "on"
     2          InternalDoIf($hash,'Pool_FB_03','STATE') eq "on"
     3          InternalDoIf($hash,'Pool_FB_Off','STATE') eq "off"
   devices:
     0           Pool_FB_01
     1           Pool_FB_02
     2           Pool_FB_03
     3           Pool_FB_Off
     all         Pool_FB_01 Pool_FB_02 Pool_FB_03 Pool_FB_Off
   do:
     0:
       0          setstate Poolpumpe_Schalter on, set Pool_FB_02 off, set Pool_FB_03 off, set Pool_FB_0ff on
     1:
       0          setstate Poolpumpe_Schalter on, set Pool_FB_01 off, set Pool_FB_03 off, set Pool_FB_0ff on
     2:
       0          setstate Poolpumpe_Schalter on, set Pool_FB_01 off, set Pool_FB_02 off, set Pool_FB_0ff on
     3:
       0          setstate Poolpumpe_Schalter off, setstate Pool_FB_01 off, setstate Pool_FB_02 off, setstate Pool_03_0ff off
     4:
       0         
   helper:
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Pool_FB_01
     timerevent off
     triggerDev Pool_FB_01
     DOIF_eventas:
       cmd_nr: 5
       cmd: 5
       cmd_event: Pool_FB_01
       state: cmd_5
     timerevents:
       off
     timereventsState:
       state: off
     triggerEvents:
       off
     triggerEventsState:
       state: off
   internals:
     0           Pool_FB_01:STATE
     1           Pool_FB_02:STATE
     2           Pool_FB_03:STATE
     3           Pool_FB_Off:STATE
     all         Pool_FB_01:STATE Pool_FB_02:STATE Pool_FB_03:STATE Pool_FB_Off:STATE
   itimer:
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   room       Garten


An dem liegt es hoffentlich nicht.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Ellert

[Poolpumpe_Schalter] bezieht sich auf das Internal STATE, das Reading state fragst Du mit [Poolpumpe_Schalter:state] ab. Die Bedingzng muss nicht doppelt geklammert werden.

mfeske

und dann sollte es funktionieren ? oder ist das nur eine syntax sache ?
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Ellert

Zitat von: mfeske am 29 Juli 2018, 19:56:29
und dann sollte es funktionieren ? oder ist das nur eine syntax sache ?

So wohl, als auch, Du könntest es probieren.

Damian

#4
Angaben  der Art:

[9:00 -17:00] and [+:15]

triggern den ganzen Tag lang. Das kann man neuerdings eleganter lösen mit https://fhem.de/commandref_DE.html#DOIF_Intervall-Timer

hier also:

[09:00-17:00,+:15]


Außerhalb des Zeitintervalls wird nicht getriggert - das spart Ressourcen.



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

mfeske

mein neuer Versuch sieht jetzt also so aus:
[Poolpumpe_Schalter:"on"] (set Poolpumpe on) DOELSEIF ([9:00 -17:00,+:15] and [Poolpumpe_Schalter:"intervall"] (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF [Poolpumpe_Schalter:"countdown"] (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF [Poolpumpe_Schalter:"off"] (set Poolpumpe off)
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Otto123

Hi,

ist das nicht doppelt gemoppelt?
set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe offwenn der Schalter selbst on-for-timer kann, ist das doch Zuverlässiger als eine Reißleine von FHEM.

Und wenn schon eine "Reißleine" würde ich sie im DOIF mit Waittimer machen.

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

Ellert

Ich gehe davon aus, dass der Zeittrigger und der Eventtrigger nicht gleichzeitig wahr werden, für
[9:00 -17:00,+:15] and [Poolpumpe_Schalter:"intervall"]

Otto123

#8
Edit:
Das war vor allem fast schon mal richtig?
[Poolpumpe_Schalter:state] eq "intervall"

Mal außerhalb vom DOIF gefragt: Hast Du mit dem Intervall (8 mal 4 mal 5min macht in Summe 2,5h Pumpe an)  gute Erfahrungen für den Pool? Ich habe meine früh und nachmittag jeweils für 2 Stunden an. Das war aus dem Bauch und geht irgendwie.
Bei 5 min hätte ich Bedenken, dass die Masse überhaupt in Schwung kommt?

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

Ellert

Zitat von: Otto123 am 31 Juli 2018, 16:32:35
Das war vor allem schon mal richtig?
[Poolpumpe_Schalter] eq "intervall"

Mal außerhalb vom DOIF gefragt: Hast Du mit dem Intervall (8 mal 4 mal 5min macht in Summe 2,5h Pumpe an)  gute Erfahrungen für den Pool? Ich habe meine früh und nachmittag jeweils für 2 Stunden an. Das war aus dem Bauch und geht irgendwie.
Bei 5 min hätte ich Bedenken, dass die Masse überhaupt in Schwung kommt?

Gruß Otto

STATE und state haben  unterschiedliche Werte im Startpost, daher mein Hinweis https://forum.fhem.de/index.php/topic,89753.msg822498.html#msg822498

Ellert

Zitat von: Ellert am 31 Juli 2018, 16:27:01
Ich gehe davon aus, dass der Zeittrigger und der Eventtrigger nicht gleichzeitig wahr werden, für
[9:00 -17:00,+:15] and [Poolpumpe_Schalter:"intervall"]

Ich muss das präzisieren:
Das Zeitinterval ist in der Zeitspanne wahr und triggert alle 15 Minuten, die gesamte Bedingung bleibt unwahr, da [Poolpumpe_Schalter:"intervall"] nur zum Event wahr ist.
Die Bedingung wird nur wahr, wenn in der Zeitspanne Poolpumpe_Schalter das Event "intervall" liefert, unabhängig von Intervalltimer.

mfeske

Ihr vewirrt mich :-( Was ich festgestellt habe mit
[Poolpumpe_Schalter:"on"] (set Poolpumpe on) DOELSEIF ([9:00 -17:00,+:15] and [Poolpumpe_Schalter:"intervall"] (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF [Poolpumpe_Schalter:"countdown"] (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF [Poolpumpe_Schalter:"off"] (set Poolpumpe off)

geht gar nichts mehr :-(

ich bin jetzt erstmal zurück bei
([Poolpumpe_Schalter] eq "on") (set Poolpumpe on) DOELSEIF ([9:00 -17:00] and [+:15] and ([Poolpumpe_Schalter] eq "intervall")) (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF (([Poolpumpe_Schalter] eq "countdown")) (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter] eq "off") (set Poolpumpe off)

damit on / off und countdown funktionieren
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Damian

[9:00 -17:00,+:15] and [Poolpumpe_Schalter:"intervall"]

So macht der Intervalltrigger alle 15 Minuten keinen Sinn, denn Zeittrigger und Ereignistrigger können niemals zum gleichen Zeitpunkt wahr sein.

Daher macht die Sache nur mit einem Reading Sinn:

[9:00 -17:00,+:15] and [Poolpumpe_Schalter] eq "intervall"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mfeske

Hallo Damian,

also:
([9:00 -17:00,+:15] and [Poolpumpe_Schalter] eq "intervall) (set Poolpumpe on-for-timer 300, define Poolpumpe_Schalter_off at +00:05:00 set Poolpumpe off, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF (([Poolpumpe_Schalter] eq "countdown")) (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 set Poolpumpe_Schalter intervall, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter] eq "off") (set Poolpumpe off)

Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Otto123

Moin,

in Antwort #2 stand dazu aber schon die Beschreibung des Problems deines Unterschiedes mit STATE und state.

Aus meiner Sicht wird das nichts: [Poolpumpe_Schalter] es muss so heissen [Poolpumpe_Schalter:state]

Warum verwirren wir Dich? Unklare Fragen?
Aber nochmal meine Frage: Warum machst Du on-for-timer und schickst ein at hinterher, welches das Gleiche tut?
(set Poolpumpe on-for-timer 300) bzw (set Poolpumpe on-for-timer 7200) reicht doch völlig!?
([9:00 -17:00,+:15] and [Poolpumpe_Schalter:state] eq "intervall) (set Poolpumpe on-for-timer 300) DOELSEIF ([Poolpumpe_Schalter:state] eq "countdown") (set Poolpumpe on-for-timer 7200) DOELSEIF ([Poolpumpe_Schalter:state] eq "off") (set Poolpumpe off)

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

mfeske

Zitat von: Otto123 am 31 Juli 2018, 16:32:35
Mal außerhalb vom DOIF gefragt: Hast Du mit dem Intervall (8 mal 4 mal 5min macht in Summe 2,5h Pumpe an)  gute Erfahrungen für den Pool? Ich habe meine früh und nachmittag jeweils für 2 Stunden an. Das war aus dem Bauch und geht irgendwie.
Bei 5 min hätte ich Bedenken, dass die Masse überhaupt in Schwung kommt?

Gruß Otto

Hallo Otto,
ist nur ein kleiner Pool ;-) 6x4x1m. Ich nehme den kurzen Intervall, weil ich schwarze Schläuche installiert habe und darüber den Pool ein wenig aufheize, auch wenn es diesen Sommer eher überflüssig ist.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

mfeske

Zitat von: Otto123 am 02 August 2018, 09:08:22
Moin,

in Antwort #2 stand dazu aber schon die Beschreibung des Problems deines Unterschiedes mit STATE und state.

Aus meiner Sicht wird das nichts: [Poolpumpe_Schalter] es muss so heissen [Poolpumpe_Schalter:state]

Warum verwirren wir Dich? Unklare Fragen?
Aber nochmal meine Frage: Warum machst Du on-for-timer und schickst ein at hinterher, welches das Gleiche tut?
(set Poolpumpe on-for-timer 300) bzw (set Poolpumpe on-for-timer 7200) reicht doch völlig!?
([9:00 -17:00,+:15] and [Poolpumpe_Schalter:state] eq "intervall) (set Poolpumpe on-for-timer 300) DOELSEIF ([Poolpumpe_Schalter:state] eq "countdown") (set Poolpumpe on-for-timer 7200) DOELSEIF ([Poolpumpe_Schalter:state] eq "off") (set Poolpumpe off)

Gruß Otto

Ich habe den Unterschied zwischen STATE und state nicht verstanden.
Ich versuche es jetzt mal wie Du es beschrieben hast und ergänze um ein DOELSEIF ([Poolpumpe_Schalter:state] eq "on") (set Poolpumpe on)
Ja vielleicht liegt es an meinen unpräzisen Fragen, ich muss da viel ausprobieren um zum Ziel zu kommen das at könnte wohl ein Überbleibsel von früher den ersten Versuchen sein ;-). Es kann aber aucxh sein das ich sonst das attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglas nicht richtig gesetzt bekommen habe. Ich wollte zu mindest beim Countdown immer die Anzeige haben wie lange er noch läuft, wäre beim Interval natürlich auch prima. Problem war aber auch hier wenn ich umschalte von [Poolpumpe_Schalter:state] eq "countdown" auf [Poolpumpe_Schalter:state] eq "on" ist die Sanduhr geblieben.

Mit Eurer Hilfe wird bestimmt alles gut, danke dafür.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

mfeske

verharrt im STATE  initialized und reagiert nicht auf Änderungen durch Poolpumpe_Schalter

Internals:
   DEF        ([9:00 -17:00,+:15] and [Poolpumpe_Schalter:state] eq "intervall) (set Poolpumpe on-for-timer 300) DOELSEIF ([Poolpumpe_Schalter:state] eq "countdown") (set Poolpumpe on-for-timer 7200) DOELSEIF ([Poolpumpe_Schalter:state] eq "off") (set Poolpumpe off)
   MODEL      FHEM
   NAME       Poolpumpe_DOIF
   NR         347
   NTFY_ORDER 50-Poolpumpe_DOIF
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-08-02 11:37:08   Device          Poolpumpe_Schalter
     2018-08-02 11:32:56   cmd             0
     2018-08-02 11:37:08   e_Poolpumpe_Schalter_state on
     2018-08-02 11:37:08   error           condition c01: Can't find string terminator '"' anywhere before EOF, line 1.

     2018-08-02 11:32:56   mode            enabled
     2018-08-02 11:32:56   state           initialized
     2018-08-02 11:35:06   timer_01_c01    03.08.2018 09:00:00
     2018-08-02 11:35:06   timer_02_c01    02.08.2018 17:00:00
     2018-08-02 11:35:06   timer_03_c01    02.08.2018 11:45:00
   Regex:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'Poolpumpe_Schalter','state') eq "intervall
     1          ReadingValDoIf($hash,'Poolpumpe_Schalter','state') eq "countdown"
     2          ReadingValDoIf($hash,'Poolpumpe_Schalter','state') eq "off"
   days:
   devices:
     0           Poolpumpe_Schalter
     1           Poolpumpe_Schalter
     2           Poolpumpe_Schalter
     all         Poolpumpe_Schalter
   do:
     0:
       0          set Poolpumpe on-for-timer 300
     1:
       0          set Poolpumpe on-for-timer 7200
     2:
       0          set Poolpumpe off
     3:
   helper:
     event      on
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev Poolpumpe_Schalter
     triggerEvents:
       on
     triggerEventsState:
       state: on
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
     2          DOIF_time($hash,0,1,$wday,$hms)
   intervaltimer:
     0          2
     1          2
   itimer:
   localtime:
     0          1533279600
     1          1533222000
     2          1533203100
   perlblock:
   readings:
     0           Poolpumpe_Schalter:state
     1           Poolpumpe_Schalter:state
     2           Poolpumpe_Schalter:state
     all         Poolpumpe_Schalter:state
   realtime:
     0          09:00:00
     1          17:00:00
     2          11:45:00
   time:
     0          9:00
     1          17:00:00
     2          +:15
   timeCond:
     0          0
     1          0
     2          0
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0  1  2
   trigger:
   triggertime:
     1533203100:
       localtime  1533203100
       hash:
     1533222000:
       localtime  1533222000
       hash:
     1533279600:
       localtime  1533279600
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Garten
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Otto123

#18
Hi,
steht aber da: Can't find string terminator '"' anywhere before EOF, line 1.
es fehlt ein " :)

Und zwar hier -> ([9:00 -17:00,+:15] and [Poolpumpe_Schalter:state] eq "intervall")

Zum Unterschied state und STATE schau mal in dein erstes list:
ZitatInternals:
   NAME       Poolpumpe_Schalter
   NR         343
   STATE      on
   TYPE       dummy
   READINGS:
     2018-07-29 09:09:50   state           countdown

Die Angabe [Poolpumpe_Schalter] ohne das Reading fragt das Internal STATE ab -> Ergebnis:on
Die Angabe [Poolpumpe_Schalter:state] mit dem Reading state fragt das Reading state ab -> Ergebnis countdown

Die Umschaltung der Anzeige bekommst Du z.B. mit dem devStateIcon z.B. für Deinen Dummy. Beispiel, die Icons musst Du anpassen!
attr Poolpumpe_SchalterdevStateIcon countdown:hourglass interval:control_arrow_up off:off


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

mfeske

kaum macht man es richtig ....
;D
jetzt muss ich nur noch die Sanduhr hinbekommen.
attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass
Ich hatte mir dafür einen extra Schalter angelegt damit ich ihn besser im Blick habe, da wurde mir ja auch immer angezeigt wann die Poolpumpe wieder ausschaltet.

Die nächste Stufe wird dann wohl die Verknüpfung mit Poolpumpe_Modus_DOIF / Pool_FB_X sein in der Hoffnung der Sommer ist dann nicht zu ende.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Otto123

Naja wenn Du wirklich ein neues Gerät haben willst, anstatt einfach bei einem existierenden das Icon zu ändern (was man ja gut sieht)
Dann definier doch dein at ohne alles, also etwa so, an der Stelle wo es schon war:
define Poolpumpe_Schalter_off at +00:05:00 {}, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass
Ich habe das ja nur nicht richtig verstanden.


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

mfeske

wofür ist den {} ? und wie kann ich es wegschalten, wenn ich zum beispiel vor ablauf countdown auf intervall umschalte ?
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Otto123

Das {} macht einfach nichts. Da ich der Meinung bin das at muss nichts tun...

Du kannst das auch in mehrere Zweige reinbasteln, dann musst Du wieder defmod nehmen. Ist egal. An die Variante das es umdefiniert werden muss habe ich nicht gedacht.
Wie gesagt ich würde so nicht machen, aber des Menschen Wille :)
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

mfeske

Hallo zusammen,

ich habe jetzt noch ein wenig rumprobiert aber schaffe es leider nicht :-(
([9:00 -17:00,+:15] and [Poolpumpe_Schalter:state] eq "intervall") (set Poolpumpe on-for-timer 300) DOELSEIF ([Poolpumpe_Schalter:state] eq "countdown") (set Poolpumpe on-for-timer 7200, define Poolpumpe_Schalter_off at +02:00:00 {}, attr Poolpumpe_Schalter_off room Garten, attr Poolpumpe_Schalter_off icon hourglass) DOELSEIF ([Poolpumpe_Schalter:state] eq "off") (set Poolpumpe off) DOELSEIF ([Poolpumpe_Schalter:state] eq "on") (set Poolpumpe on)

Aktuelles Problem ist, das mir die Sanduhr in Garten für Countdown nicht angezeigt wird und ich so nicht sehe wann die Pumpe aus gehen sollte. Ich habe auch das Gefühl das die Pumpe nicht ausgeschaltet hat, kann aber natürlich auch sein, das es ein "Übertragungsfehler" war.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)