Schalten eines Xiaomi Purifier zu bestimmten Zeiten ca. 1 Stunde lang

Begonnen von sxx128, 10 Dezember 2021, 08:45:40

Vorheriges Thema - Nächstes Thema

sxx128

Hallo zusammen,

eigentlich würde ich gerne meinen Luftreiniger alle zwei Stunden für eine Stunde in Betrieb nehmen und zwar nur wenn ich zu Hause bin. Grundsätzlich ja kein größeres Problem.

Jetzt hab ich aber das Problem dass der Purifier kein


on-for-timer


kennt.

Ich kann nur die Befehle:


set Purifier on
set Purifier off


nutzen. Ich stehe völlig auf dem Schlauch wie ich die Laufzeit des Purifiers definieren kann. Habt ihr da eine Idee? Über eure Hilfe würde ich mich sehr freuen.

Grüssle
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

Damian

Zitat von: sxx128 am 10 Dezember 2021, 08:45:40
Hallo zusammen,

eigentlich würde ich gerne meinen Luftreiniger alle zwei Stunden für eine Stunde in Betrieb nehmen und zwar nur wenn ich zu Hause bin. Grundsätzlich ja kein größeres Problem.

Jetzt hab ich aber das Problem dass der Purifier kein


on-for-timer


kennt.

Ich kann nur die Befehle:


set Purifier on
set Purifier off


nutzen. Ich stehe völlig auf dem Schlauch wie ich die Laufzeit des Purifiers definieren kann. Habt ihr da eine Idee? Über eure Hilfe würde ich mich sehr freuen.

Grüssle
sxx128

Schaue mal nach den Attributen repeatsame und repeatcmd

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

sxx128

Hallo Damian,

danke für die schnelle Antwort. Schaue ich mir an..


Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

sxx128

Hallole

meine Lösung sieht jetzt so aus ..


([[05:00-22:00]] and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Luftreiniger wait 0,3600
attr Luftreiniger repeatcmd 7200


Wie gesagt der Luftreiniger sollte bei Anwesenheit alle zwei Stunden eine Stunde laufe in der Zeit von 5-22 Uhr ..

Nachtrag: Ich habe eine Meldung Reading: timer_01_c01


error: unknown expression format


Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

Damian

Zitat von: sxx128 am 10 Dezember 2021, 10:15:06
Hallole

meine Lösung sieht jetzt so aus ..


([[05:00-22:00]] and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Luftreiniger wait 0,3600
attr Luftreiniger repeatcmd 7200


Wie gesagt der Luftreiniger sollte bei Anwesenheit alle zwei Stunden eine Stunde laufe in der Zeit von 5-22 Uhr ..

Nachtrag: Ich habe eine Meldung Reading: timer_01_c01


error: unknown expression format


Bin mir aber nicht sicher ob es eine "alte" Fehlermeldung ist ...

Grüße
sxx128

statt

[[05:00-22:00]]

eher

[05:00-22:00]

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

sxx128

Hallole

vielen Dank. Mit den Klammern kämpfe ich immer. Bin schon gespannt, gegen 11.00 Uhr sollte das Teil dann ja einschalten ..


([05:00-22:00]  and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Luftreiniger wait 0,3600
attr Luftreiniger repeatcmd 7200



Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

sxx128

Hallole

ich hab jetzt doch wohl ein Problem. So wie ich es sehe schaltet der Purifier zwar ein aber nicht aus. Ich habe die Interveralle jetzt mal verkürzt. Trotz Verbose 5 sehe ich im Log nix.


([05:00-22:00]  and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Purifier wait 0,300
attr Purifier repeatcmd 120




Internals:
   DEF        ([05:00-22:00]  and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Purifier wait 0,300
attr Purifier repeatcmd 120
   FUUID      61b32044-f33f-f918-75ce-e4a1965b99bfb6c1
   MODEL      FHEM
   NAME       Purifier
   NOTIFYDEV  rgr_Bewohner,global
   NR         327
   NTFY_ORDER 50-Purifier
   STATE      cmd_1
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   Helper:
     DBLOG:
       cmd:
         LOG_Db:
           TIME       1639135408.62004
           VALUE      1.2
       cmd_event:
         LOG_Db:
           TIME       1639135408.62004
           VALUE      rgr_Bewohner
       cmd_nr:
         LOG_Db:
           TIME       1639135408.62004
           VALUE      1
       cmd_seqnr:
         LOG_Db:
           TIME       1639135408.62004
           VALUE      2
       mode:
         LOG_Db:
           TIME       1639135385.49399
           VALUE      enabled
       state:
         LOG_Db:
           TIME       1639135408.62004
           VALUE      cmd_1
   READINGS:
     2021-12-10 12:31:28   Device          rgr_Bewohner
     2021-12-10 12:23:28   cmd             1.2
     2021-12-10 12:23:28   cmd_event       rgr_Bewohner
     2021-12-10 12:23:28   cmd_nr          1
     2021-12-10 12:23:28   cmd_seqnr       2
     2021-12-10 12:31:28   e_rgr_Bewohner_STATE zuhause
     2021-12-10 12:23:05   mode            enabled
     2021-12-10 12:23:28   state           cmd_1
     2021-12-10 12:22:39   timer_01_c01    11.12.2021 05:00:00
     2021-12-10 12:22:39   timer_02_c01    10.12.2021 22:00:00
   Regex:
     accu:
     collect:
     cond:
       rgr_Bewohner:
         0:
           &STATE     ^rgr_Bewohner$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms)  and ::InternalDoIf($hash,'rgr_Bewohner','STATE') eq "zuhause"
   days:
   do:
     0:
       0          set airpurifier on
       1          set airpurifier off
     1:
       0          set airpurifier off
   helper:
     DEVFILTER  ^global$|^rgr_Bewohner$
     NOTIFYDEV  global|rgr_Bewohner
     event      durTimerPresence_cr: 247,durTimerPresence: 04:06:49
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   rgr_Bewohner
     timerevent durTimerPresence_cr: 247,durTimerPresence: 04:06:49
     triggerDev rgr_Bewohner
     timerevents:
       durTimerPresence_cr: 247
       durTimerPresence: 04:06:49
     timereventsState:
       durTimerPresence_cr: 247
       durTimerPresence: 04:06:49
     triggerEvents:
       durTimerPresence_cr: 247
       durTimerPresence: 04:06:49
     triggerEventsState:
       durTimerPresence_cr: 247
       durTimerPresence: 04:06:49
   internals:
     all         rgr_Bewohner:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1639195200
     1          1639170000
   readings:
   realtime:
     0          05:00:00
     1          22:00:00
   time:
     0          05:00:00
     1          22:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1639170000:
       localtime  1639170000
       hash:
     1639195200:
       localtime  1639195200
       hash:
   uiState:
   uiTable:
Attributes:
   verbose    5


Habt ihr eine Idee wo der Hund begraben ist? Das wäre super...

Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

Damian

Wenn du nach 120 Sekunden den Befehl wiederholen willst, wie soll er nach 300 Sekunden ausschalten können?

Die Wiederholungsspanne beginnt mit dem ersten Befehl und sollte länger dauern, als die Dauer der Sequenz des Zweiges, hier also 300 Sekunden.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sxx128

Hallole

da hast du natürlich recht. Ich hab meine ursprüngliche Konfiguration anpassen wollen damit ich nicht so lange warten muss bis ich ein Ergebnis sehe und das gleich auch noch falsch ...

Das Problem hatte ich in meiner ursprünglichen Konfig aber auch ....


([05:00-22:00]  and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off) DOELSE (set airpurifier off)
attr Luftreiniger wait 0,3600
attr Luftreiniger repeatcmd 7200



Der State bleibt immer cmd_1

Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

sxx128

Hallole

das war glaube ich ein Layer 8 Problem.   ::) Ist halt nichts wenn man nicht nachdenkt .. Ich melde mich mit der Lösung sobald ich ein Ergebnis habe.

Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

sxx128

Hallo zusammen,

es war wirklich ein Layer8 Problem. Man sollte halt die Attribute richtig bzw. überhaupt setzen. ..



([05:00-22:00] and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off)
DOELSE (set airpurifier off)


So funktioniert es mit den Attributen:

repeatcmd und wait

Grüße und Danke
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

Damian

Zitat von: sxx128 am 12 Dezember 2021, 22:30:12
Hallo zusammen,

es war wirklich ein Layer8 Problem. Man sollte halt die Attribute richtig bzw. überhaupt setzen. ..



([05:00-22:00] and [rgr_Bewohner] eq "zuhause")
(set airpurifier on)(set airpurifier off)
DOELSE (set airpurifier off)


So funktioniert es mit den Attributen:

repeatcmd und wait

Grüße und Danke
sxx128

ohne do always-Attribut, wird es nur einmal funktionieren, wenn das System den DOELSE-Fall nicht mitbekommt
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sxx128

Hallo Damian,

habe ich ergänzt. Danke für den Hinweis.

Grüße
sxx128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU