Hauptmenü

Wo steckt hier der Fehler

Begonnen von Helmi55, 27 März 2019, 14:57:51

Vorheriges Thema - Nächstes Thema

Helmi55

Hallo,
ich habe ein DOIF welches zwischen SS-21:00 gewisse Lampen schalten soll, wenn in dieser Zeit der TV an geht.
Es funktioniert tadellos nur ab diesem Zeitpunkt wird das DOIF ca. alle Minuten ausgeführt?
Ich hab es schon mit event on change.* und event on update.* probiert. Ohne Erfolg?
([{sunset("real",0)}-21:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSE
Auch Abe ich schon ein ?vor [{sunset. probiert. Ohne Erfolg.

Hier nur ein kleiner Auszug aus dem Log
2019.03.26 19:42:11 3: CUL_HM set Sitzbank_links on
2019.03.26 19:42:11 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:42:12 3: CUL_HM set Vitrine off
2019.03.26 19:42:52 3: CUL_HM set Sitzbank_links on
2019.03.26 19:42:52 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:42:52 3: CUL_HM set Vitrine off
2019.03.26 19:43:32 3: CUL_HM set Sitzbank_links on
2019.03.26 19:43:32 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:43:32 3: CUL_HM set Vitrine off
2019.03.26 19:44:12 3: CUL_HM set Sitzbank_links on
2019.03.26 19:44:12 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:44:12 3: CUL_HM set Vitrine off
2019.03.26 19:44:52 3: CUL_HM set Sitzbank_links on
2019.03.26 19:44:52 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:44:52 3: CUL_HM set Vitrine off
2019.03.26 19:45:32 3: CUL_HM set Sitzbank_links on
2019.03.26 19:45:32 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:45:32 3: CUL_HM set Vitrine off
2019.03.26 19:46:12 3: CUL_HM set Sitzbank_links on
2019.03.26 19:46:12 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:46:12 3: CUL_HM set Vitrine off
2019.03.26 19:46:52 3: CUL_HM set Sitzbank_links on
2019.03.26 19:46:52 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:46:52 3: CUL_HM set Vitrine off
2019.03.26 19:47:32 3: CUL_HM set Sitzbank_links on
2019.03.26 19:47:32 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:47:32 3: CUL_HM set Vitrine off
2019.03.26 19:48:12 3: CUL_HM set Sitzbank_links on
2019.03.26 19:48:12 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:48:12 3: CUL_HM set Vitrine off
2019.03.26 19:48:52 3: CUL_HM set Sitzbank_links on
2019.03.26 19:48:52 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:48:52 3: CUL_HM set Vitrine off
2019.03.26 19:49:34 3: CUL_HM set Sitzbank_links on
2019.03.26 19:49:34 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:49:34 3: CUL_HM set Vitrine off
2019.03.26 19:50:14 3: CUL_HM set Sitzbank_links on
2019.03.26 19:50:14 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:50:14 3: CUL_HM set Vitrine off
2019.03.26 19:50:54 3: CUL_HM set Sitzbank_links on
2019.03.26 19:50:54 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:50:54 3: CUL_HM set Vitrine off
2019.03.26 19:51:34 3: CUL_HM set Sitzbank_links on
2019.03.26 19:51:34 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:51:34 3: CUL_HM set Vitrine off
2019.03.26 19:52:14 3: CUL_HM set Sitzbank_links on
2019.03.26 19:52:14 3: CUL_HM set Sitzbank_rechts on
2019.03.26 19:52:14 3: CUL_HM set Vitrine off


Was mach ich hier falsch, damit nur einmal geschaltet wird?

Danke
Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

yersinia

Ist ja auch logisch, die Bedingung ist ja wiederholt wahr: In einem Zeitraum ist der Fernseher an. Und der bleibt ja an.

Entweder eine weitere Bedingung hinzufügen wie zB
([{sunset("real",0)}-21:00]
            and [TV:state] eq "on"
            and [Sitzbank_links:state] ne "on"
            and [Sitzbank_rechts:state] ne "on"
            and [Vitrine:state] ne "off")
      (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off)
DOELSE


Oder über repeatcmd auf 1 dies Ausführungswiederholung einschränken.
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Helmi55

Danke für die rasche Antwort. Werde ich mir ansehen
Tx Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Zitat von: yersinia am 27 März 2019, 15:13:17Ist ja auch logisch, die Bedingung ist ja wiederholt wahr
Aber es gibt keinen Trigger. Außer TV:state wird im Minutentakt aktualisiert. Dem kann man mit event-on-change .* (event-on-update ist hier fehl am Platz!) auf TV abhelfen.
Oder ein DOELSEIF [0:00] als Reaktivierung anhängen (statt DOELSE).
do always sollte auch deaktiviert sein/werden (leider hast du kein LIST angehängt und auch die Events von TV ausgefiltert).

Helmi55

Hallo Per
hier das List vom DOIF
Internals:
   DEF        ([{sunset("real",0)}-21:00] and [TV:state] eq "on") (set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off) DOELSE
   FUUID      5c45c885-f33f-ee2d-b231-543c7d63820a02c7
   MODEL      FHEM
   NAME       di_LampenTV_an
   NR         315
   NTFY_ORDER 50-di_LampenTV_an
   STATE      cmd_2
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-03-27 16:09:56   Device          TV
     2019-03-26 21:00:00   cmd             2
     2019-03-26 21:00:00   cmd_event       timer_2
     2019-03-26 21:00:00   cmd_nr          2
     2019-03-26 22:07:36   e_TV_state      off
     2019-03-26 09:57:18   mode            enabled
     2019-03-26 21:00:00   state           cmd_2
     2019-03-26 21:00:00   timer_01_c01    27.03.2019 18:11:55
     2019-03-26 21:00:00   timer_02_c01    27.03.2019 21:00:00
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'TV','state') eq "on"
   days:
   devices:
     0           TV
     all         TV
   do:
     0:
       0          set Sitzbank_links on, set Sitzbank_rechts on, set Vitrine off
     1:
       0         
   helper:
     event      presence: absent
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   TV
     timerevent off
     triggerDev TV
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: timer_2
       state: cmd_2
     timerevents:
       off
     timereventsState:
       state: off
     triggerEvents:
       presence: absent
     triggerEventsState:
       presence: absent
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1553706715
     1          1553716800
   perlblock:
   readings:
     0           TV:state
     all         TV:state
   realtime:
     0          18:11:55
     1          21:00:00
   time:
     0          {sunset("real",0)}
     1          21:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1553706715:
       localtime  1553706715
       hash:
     1553716800:
       localtime  1553716800
       hash:
   uiState:
   uiTable:
Attributes:
   event-on-update-reading .*
   room       Steuerung


und ein List vom TV
Internals:
   DEF        10.0.0.30
   FUUID      5c45c885-f33f-ee2d-90e4-0fece571696797ef
   HOST       10.0.0.30
   NAME       TV
   NR         313
   PARTIAL   
   STATE      off
   TYPE       LGTV_WebOS
   VERSION    2.0.9
   READINGS:
     2018-08-01 22:50:59   3D              off
     2018-08-01 22:50:59   3DMode          2d
     2019-01-28 21:54:32   channel         -
     2018-08-01 22:51:07   channelCurrentEndTime -
     2018-08-01 22:51:07   channelCurrentStartTime -
     2018-08-01 22:51:07   channelCurrentTitle -
     2019-01-28 21:54:32   channelMedia    -
     2019-01-28 21:54:32   channelName     -
     2018-08-01 22:51:07   channelNextEndTime -
     2018-08-01 22:51:07   channelNextStartTime -
     2018-08-01 22:51:07   channelNextTitle -
     2018-12-19 17:39:06   extInput_HDMI-1 connect_true
     2019-01-29 14:52:39   extInput_HDMI-2 connect_true
     2018-10-15 08:40:08   extInput_HDMI-3 connect_true
     2019-01-15 15:35:58   extInput_HDMI-4 connect_false
     2019-01-29 14:52:35   input           HDMI-1
     2019-01-30 17:41:34   lastResponse    error - 500 internal error
     2019-01-29 14:52:35   launchApp       -
     2018-08-01 09:33:57   lgKey           45eb2988750c476d4276c8aaa18b0b7f
     2019-01-20 15:05:48   mute            off
     2019-01-29 17:44:22   pairing         unpaired
     2019-03-27 16:10:56   presence        absent
     2019-03-26 22:07:36   state           off
     2019-01-29 15:28:57   volume          8
   helper:
     wsKey      MTU1MzYzNDQzNC41NjYyNA==

     device:
       registered 0
       runsetcmd  0
       channelguide:
         counter    10979
Attributes:
   devStateIcon on:10px-kreis-gruen:off off:10px-kreis-rot:on
   pingPresence 1
   room       TV_Bereich
   verbose    0


do always ist nicht aktiv

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Setz mal event-on-change-reading .* bei TV rein.

Helmi55

#6
Servus hab ich gemacht. Leider ohne Wirkung.

hier nochmals ein list vom TV
Internals:
   CHANGED   
   DEF        10.0.0.30
   FUUID      5c45c885-f33f-ee2d-90e4-0fece571696797ef
   HOST       10.0.0.30
   NAME       TV
   NR         313
   PARTIAL   
   STATE      off
   TYPE       LGTV_WebOS
   VERSION    2.0.9
   READINGS:
     2018-08-01 22:50:59   3D              off
     2018-08-01 22:50:59   3DMode          2d
     2019-01-28 21:54:32   channel         -
     2018-08-01 22:51:07   channelCurrentEndTime -
     2018-08-01 22:51:07   channelCurrentStartTime -
     2018-08-01 22:51:07   channelCurrentTitle -
     2019-01-28 21:54:32   channelMedia    -
     2019-01-28 21:54:32   channelName     -
     2018-08-01 22:51:07   channelNextEndTime -
     2018-08-01 22:51:07   channelNextStartTime -
     2018-08-01 22:51:07   channelNextTitle -
     2018-12-19 17:39:06   extInput_HDMI-1 connect_true
     2019-01-29 14:52:39   extInput_HDMI-2 connect_true
     2018-10-15 08:40:08   extInput_HDMI-3 connect_true
     2019-01-15 15:35:58   extInput_HDMI-4 connect_false
     2019-01-29 14:52:35   input           HDMI-1
     2019-01-30 17:41:34   lastResponse    error - 500 internal error
     2019-01-29 14:52:35   launchApp       -
     2018-08-01 09:33:57   lgKey           45eb2988750c476d4276c8aaa18b0b7f
     2019-01-20 15:05:48   mute            off
     2019-01-29 17:44:22   pairing         unpaired
     2019-03-27 21:49:10   presence        absent
     2019-03-27 21:47:58   state           off
     2019-01-29 15:28:57   volume          8
   helper:
     wsKey      MTU1MzcxOTY1Ni43ODY5Mg==

     device:
       registered 0
       runsetcmd  0
       channelguide:
         counter    611
Attributes:
   devStateIcon on:10px-kreis-gruen:off off:10px-kreis-rot:on
   event-on-change-reading .*
   pingPresence 1
   room       TV_Bereich
   verbose    0


und noch das Log
2019.03.27 20:55:28 3: CUL_HM set Sitzbank_links on
2019.03.27 20:55:28 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:55:28 3: CUL_HM set Vitrine off
2019.03.27 20:56:08 3: CUL_HM set Sitzbank_links on
2019.03.27 20:56:08 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:56:08 3: CUL_HM set Vitrine off
2019.03.27 20:56:48 3: CUL_HM set Sitzbank_links on
2019.03.27 20:56:48 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:56:48 3: CUL_HM set Vitrine off
2019.03.27 20:57:28 3: CUL_HM set Sitzbank_links on
2019.03.27 20:57:29 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:57:29 3: CUL_HM set Vitrine off
2019.03.27 20:58:09 3: CUL_HM set Sitzbank_links on
2019.03.27 20:58:09 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:58:09 3: CUL_HM set Vitrine off
2019.03.27 20:58:49 3: CUL_HM set Sitzbank_links on
2019.03.27 20:58:49 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:58:49 3: CUL_HM set Vitrine off
2019.03.27 20:59:29 3: CUL_HM set Sitzbank_links on
2019.03.27 20:59:29 3: CUL_HM set Sitzbank_rechts on
2019.03.27 20:59:29 3: CUL_HM set Vitrine off




Gruß Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Sany

Hallo Helmut,

schau Dir doch mal in Ruhe an, wer wie Dein DOIF triggert: der Zeitraum triggert zum Sunset (wird wahr) und um 21:00 (wird falsch). Dein Fernseher scheint jede Menge Events zu liefern. Du fragst im DOIF den TV:state ab, dann schau Dir das doch mal eine Weile im Event Monitor an:
EventMonitor öffnen, dann bei "Events (Filter: .*) das .* anklicken und in der erscheinenden Eingabezeile TV:state vor das .* schreiben: TV:state.*
OK klicken und warten. Fernseher einschalten und einige Minuten laufen lassen, Fernseher dann ausmachen und wieder ein paar Minuten zusehen. Dann weist Du erst mal was da für Events kommen und vor allem wie oft.
Sollte der Fernseher nun alle xMinuten den state senden kannst Du Dir ja mal DOIF_Readings anschauen. Das sollte Dein Problem ganz elegant lösen.

event-on-change-reading .* ist genausogut wie kein event-on- Attribut gesetzt: es würde bei jeder Änderung jedes readings einen Event liefern. Wenn schon dann event-on-change-reading state. Aber das musst Du nicht bei DOIF_Readings. Und wir wissen ja nicht, ob die vielen anderen readings vom TV noch irgendwo genutzt werden.


Wer schaltet eigentlich die Lampen aus?

Gruß

Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Helmi55

Hallo Sany,
erde deinen Rat befolgen. Melde mich wieder.
Ach ja, ausgeschaltet wird durch "alles aus" liegt auf der Logitech FB, im HomeKit bzw. auch am Tablet welches das Wetter anzeigt.
Dadurch werden alle Lampen ausgeschaltet und wieder ein Licht im Vorzimmer für 10 Minuten eingeschaltet.
Schönen Tag
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Bartimaus

Moin,

bei mir habe ich den TV mit dem WOL-Modul eingebunden. Damit funktioniert die TV-abhängige Licht-Steuerung ziemlich gut. D.h. es triggert nicht dauernd und löst somit auch kein DOIF-Dauerfeuer aus.

LG
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

yersinia

#10
Das mit dem Dauerfeuer der Readings sowie den Attributen event-on-[change|update]-reading in den Devices kann ich nachvollziehen um das Mitteilungsbedürfnis der Devices entsprechend einzuschränken.
Allerdings kann ich nicht verstehen, wenn man wie von mir weiter oben vorgeschlagen die DOIF Bedingung einfach weiter einschränkt, das nicht schon ausreichen sollte? Ich würde doch der Logik des Anwenders hier auch folgen: Wenn zwischen Sonnenuntergang und 21 Uhr der Fernseher angeht, dann schalte auch drei (Licht)Schalter ein. Dies impliziert auch, dass die (Licht)Schalter aus gewesen sind. Wenn also Licht bereits an ist, dann schalte nicht nochmal.
Genauso soll es sich verhalten, wenn ich den Fernseher (und das Licht) zwischenzeitlich mal ausgeschaltet habe.

Btw, was passiert eigentlich, wenn sunset(real) nach 21 Uhr ist? Gilt das dann von heute 21:03 (fiktiver sunset) bis morgen 21:00?
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Helmi55

Hallo danke für deine Antwort. Ja das mit 21 Uhr kann ich natürlich auch noch auf 22 Uhr erweitern. das soll wirklich nicht zum Problem werden.
Deinen Vorschlag werde ich auch noch durcharbeiten um zu einem guten Ergebnis zu kommen.
Melde mich wieder Danke nice eve
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Per

Zitat von: Helmi55 am 27 März 2019, 20:37:34und noch das Log
Da sehe ich immer noch kein Event von einem TV?!

Helmi55

Also wenn ich mir den EventMonitor von TV nun ansehe
TV.*)   FHEM log   

2019-03-29 19:16:00 LGTV_WebOS TV presence: present
2019-03-29 19:16:06 LGTV_WebOS TV off
2019-03-29 19:16:08 LGTV_WebOS TV on
2019-03-29 19:16:10 LGTV_WebOS TV presence: present
2019-03-29 19:16:20 LGTV_WebOS TV presence: present
2019-03-29 19:16:30 LGTV_WebOS TV presence: present
2019-03-29 19:16:40 LGTV_WebOS TV presence: present
2019-03-29 19:16:46 LGTV_WebOS TV off
2019-03-29 19:16:48 LGTV_WebOS TV on
2019-03-29 19:16:50 LGTV_WebOS TV presence: present
2019-03-29 19:17:00 LGTV_WebOS TV presence: present
2019-03-29 19:17:10 LGTV_WebOS TV presence: present
2019-03-29 19:17:21 LGTV_WebOS TV presence: present
2019-03-29 19:17:26 LGTV_WebOS TV off
2019-03-29 19:17:28 LGTV_WebOS TV on
2019-03-29 19:17:31 LGTV_WebOS TV presence: present
2019-03-29 19:17:41 LGTV_WebOS TV presence: present
2019-03-29 19:17:51 LGTV_WebOS TV presence: present
2019-03-29 19:18:01 LGTV_WebOS TV presence: present


muss ich auf presence umstellen? Keine Ahnung woher immer das off on kommt?
Presence mit event on change ?   Ist das ein Ansatz?

Nice eve
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

Also mit DOELSEIF ([0:00]) ist Ruhe. Keine Meldung mehr im Log
Danke
PS das mit ([0:00]) kannte ich nicht
Gruß Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/