FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: harle am 13 November 2021, 09:38:43

Titel: Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 09:38:43
Hallo zusammen,

wir haben eine Lampe im Flur (via Gosund Wifi Steckdose), die über einen Bewegungsmelder an und aus geschaltet wird.

Diese Lampe würden wir aber auch gerne zu bestimmten Zeiten manuell dauerhaft einschalten (via Gassistent per Handy).

Gibt es eine Möglichkeit die Quelle der Ein-/Ausschaltung zu erkennen und falls diese "manuell" war, dann soll der Bewegungsmelder nicht auslösen?

Mein Google-Fu ist hier leider gescheitert.

Vielen Dank und beste Grüße
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 09:47:26
Zu wenig Informationen, um Dir wirklich gezielt helfen zu können.

Grundsätzlich: wenn Du die Lampe so steuerst, dass ein notify auf den Bewegungsmelder reagiert und dann das Licht angeht, kannst Du das im notify feststellen. Im notify gibt es seit neuestem ein reading, in dem das auslösende device steht. Damit kannst Du feststellen, ob das notify über den Bewegungsmelder getriggert wurde oder nicht.

Wie erfolgt das manuelle Anschalten?
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 11:06:01
Hallo betateilchen,

danke für deine Antwort, ich versuche mein Struktur so gut wie möglich darzustellen.

Die Steckdose "Flur" können wir auch am Handy über Google Home FHEM Integration an/aus schalten.

Der Bewegungsmelder ist momentan über DOIF  angesteuert:

([Bewegungsmelder_Flur:occupancy] eq "true" and isday() eq "0") (set Flur on)


Wenn ich dich korrekt verstehe sollte ich hier auf notify umstellen, da es dort ein Verursacher reading gibt.

Das könnte ich dann über if abfangen und entsprechend die Lampe schalten?

Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 11:09:28
Zitat von: harle am 13 November 2021, 11:06:01
Wenn ich dich korrekt verstehe sollte ich hier auf notify umstellen, da es dort ein Verursacher reading gibt.

Das könnte ich dann über if abfangen und entsprechend die Lampe schalten?

Genau.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: FHEMAN am 13 November 2021, 11:23:38
Zitat von: betateilchen am 13 November 2021, 11:09:28
Genau.
Welches Reading wäre das?
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: Gisbert am 13 November 2021, 11:26:15
Hallo FHEMAN,

du bist am Zug, d.h. poste deine Definitionen, die mit deiner Frage zu tun haben.

Viele​ Grüße​ Gisbert​
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 11:28:04
Steht das bei notify nicht auch in $NAME?

Und "sowas" gibt's doch bestimmt auch bei DOIF ;)
(nicht dass ich das nutze aber wollte nur "fair" bleiben 8)  )

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: FHEMAN am 13 November 2021, 12:04:54
Zitat von: Gisbert am 13 November 2021, 11:26:15
Hallo FHEMAN,

du bist am Zug, d.h. poste deine Definitionen, die mit deiner Frage zu tun haben.

Viele​ Grüße​ Gisbert​
Ich bin nicht der eigentliche Fragesteller. Frage aber deshalb, weil ich einen Verursacher schon lange suche. Und es diesen meiner Meinung nach nur bei Aktoren gibt, aber nicht im Web Interface, leider.

Ich denke ansonsten auch, dass ein notify zum DOIF hier keinen Mehrwert hat (?)
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 12:11:10
Die Anschlussfrage würde mich natürlich auch interessieren, ich sehe im Notify z.B. triggeredByDev.

Sehe aber momentan noch kein Land, wie ich das notify aufbaue, damit ich abhängig von triggeredByDev Aktionen einleiten kann.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 12:18:06
Poste doch lists des notify und des BWM und des Schaltaktors...

Dann kann man da schon was "basteln"...

Ansonsten halt so "PSEUDO-CODE"!


define nSchalte notify SchalterTaster:RegEx {if($NAME eq "DiesesDevice"){fhem("set DasDevice on/off")}elsif($NAME eq "EinAnderesDevice"){fhem("set AnderesDevice on/off")}else{"..."}}


Statt $NAME geht auch ReadingsVal("nSchalte", "triggeredByDev", "nn")
ob es auch "sowas" wie $SELF gibt weiß ich grad nicht, dann könnte auch ReadingsVal($SELF, "triggeredByDev", "nn") gehen...

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 12:25:54
Hi Joachim,

hier mal die Lists. Beim Notify muss ich zugeben bin ich nach beim grundsätzlichen Anlegen noch beim Verstehen des if-Konstruktes...falls notify aber keinen Mehrwert hat, wie kann ich den "Trigger" bei DOIF abfragen?

Schaltaktor



Internals:
   CID        DVES_054D12
   DEF        DVES_054D12
   DEVICETOPIC Flur
   FUUID      61023f95-f33f-d342-2ab3-cf1c2f994e36a561
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     86
   NAME       Flur
   NR         99
   STATE      off
   TYPE       MQTT2_DEVICE
   m2s_MSGCNT 86
   m2s_TIME   2021-11-13 12:18:32
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-11-13 10:13:23   FallbackTopic   cmnd/DVES_054D12_fb/
     2021-11-13 10:13:23   GroupTopic      donoffs
     2021-11-13 12:18:32   Heap            27
     2021-11-13 10:13:23   Hostname        tasmota_054D12-3346
     2021-11-13 01:03:55   IODev           m2s
     2021-11-13 10:13:23   IPAddress       192.168.178.114
     2021-11-13 10:13:23   LWT             Online
     2021-11-13 12:18:32   LoadAvg         19
     2021-11-13 10:13:23   Module          Delock 11826
     2021-11-13 12:18:32   MqttCount       1
     2021-11-13 10:13:23   RestartReason   Power on
     2021-07-29 07:43:54   SaveData        on
     2021-07-29 07:43:54   SetOption26     on
     2021-11-13 12:18:32   Sleep           50
     2021-11-13 12:18:32   SleepMode       Dynamic
     2021-07-29 07:43:53   StateText1      off
     2021-07-29 07:43:53   StateText2      on
     2021-07-29 07:43:53   StateText3      toggle
     2021-07-29 07:43:54   StateText4      hold
     2021-11-13 12:18:32   Time            2021-11-13T12:18:31
     2021-11-13 12:18:32   Uptime          0T02:05:16
     2021-11-13 12:18:32   UptimeSec       7516
     2021-11-13 12:18:32   Vcc             3.463
     2021-11-13 10:13:23   Version         6.7.1(basic)
     2021-11-13 10:13:23   WebServerMode   Admin
     2021-11-13 12:18:32   Wifi_AP         1
     2021-11-13 12:18:32   Wifi_BSSId      00:A0:F9:37:3C:CF
     2021-11-13 12:18:32   Wifi_Channel    11
     2021-11-13 12:18:32   Wifi_Downtime   0T00:00:05
     2021-11-13 12:18:32   Wifi_LinkCount  1
     2021-11-13 12:18:32   Wifi_RSSI       86
     2021-11-13 12:18:32   Wifi_SSId       Knutschkuller
     2021-07-29 07:43:53   attrTemplateVersion 20210523
     2021-11-13 11:44:35   state           off
     2021-11-12 16:40:57   subscriptions   cmnd/DVES_054D12_fb/# cmnd/donoffs/# cmnd/tasmota_054D12/#
Attributes:
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/tasmota_054D12/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   genericDeviceType switch
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/tasmota_054D12/LWT:.* LWT
  tele/tasmota_054D12/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_054D12/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_054D12/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_054D12/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/tasmota_054D12/POWER1:.* state
  stat/tasmota_054D12/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       09_Flur,GoogleAssistant,MQTT2_DEVICE
   setList    off:noArg    cmnd/tasmota_054D12/POWER1 0
  on:noArg     cmnd/tasmota_054D12/POWER1 1
  toggle:noArg cmnd/tasmota_054D12/POWER1 2
  setOtaUrl:textField cmnd/tasmota_054D12/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/tasmota_054D12/upgrade 1
   setStateList on off toggle



BWM:

Internals:
   CID        zigbee_0x001788010918e497
   DEF        zigbee_0x001788010918e497
   DEVICETOPIC zigbee2mqtt/0x001788010918e497
   FUUID      618cbc41-f33f-d342-e64a-981ff083571710e7
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     242
   NAME       Bewegungsmelder_Flur
   NR         141
   STATE      T: 22.8 B: 12878 L: 255
   TYPE       MQTT2_DEVICE
   m2s_MSGCNT 242
   m2s_TIME   2021-11-13 12:20:34
   READINGS:
     2021-11-13 01:03:55   IODev           m2s
     2021-11-11 07:46:25   associatedWith  MQTT2_zigbee_pi
     2021-11-11 07:48:15   attrTemplateVersion 20200904
     2021-11-13 12:20:34   battery         100
     2021-11-13 12:20:34   illuminance     12878
     2021-11-13 12:20:34   illuminance_lux 19
     2021-11-13 12:20:34   linkquality     255
     2021-11-13 12:20:34   motion_sensitivity high
     2021-11-13 12:20:34   occupancy       false
     2021-11-13 12:20:34   occupancy_timeout 30
     2021-11-13 12:20:34   temperature     20.27
     2021-11-13 12:20:34   temperature_weather 22.8
     2021-11-13 12:20:34   update_available false
     2021-11-11 08:37:59   update_progress 100
     2021-11-11 08:37:59   update_remaining 29
     2021-11-13 12:20:34   update_state    idle
Attributes:
   devicetopic zigbee2mqtt/0x001788010918e497
   genericDeviceType motion
   homebridgeMapping "MotionDetected=state,values=motion:1;nomotion:0"
   icon       people_sensor
   model      zigbee2mqtt_hueMotionSensor
   readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
   room       09_Flur,MQTT2_DEVICE
   stateFormat T: temperature_weather B: illuminance L: linkquality
   userReadings temperature_weather { sprintf("%.1f",ReadingsVal($name,"temperature","")+2.5) }
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 13:18:23
Zitat von: harle am 13 November 2021, 12:25:54
hier mal die Lists.

Jetzt wäre noch (mal) die Frage welche "Wege" zum Einschalten du willst und was dazu führen soll, dass es "Dauer-an" bleibt?

Bzw. ich habe EnOcean Taster, die senden (glücklicherweise) selbst ein "Signal" an fhem.
Wenn nun per Taster EIN geschalten wird, dann setzte ich ein Reading im Aktor (z.B. setreading Aktor meinModus manual).
Im notify was auf den BWM reagiert wird eben dieses Reading abgefragt (ReadingsVal("Aktor", "meinModus", "nn")  ) und wenn da manual steht macht das notify nix :)

Wenn ich mit dem Taster wieder AUS schalte, dann schreibe ich in den Aktor eben "automatic" (z.B. setreading Aktor meinModus automatic) und wenn der BWM auslöst und dort "automatic" steht, dann macht eben das notify was für "automatic" vorgesehen ist :)

Zitat von: harle am 13 November 2021, 12:25:54
Beim Notify muss ich zugeben bin ich nach beim grundsätzlichen Anlegen noch beim Verstehen des if-Konstruktes

Erstellen von notify/DOIF am einfachsten per Eventmonitor: https://wiki.fhem.de/wiki/Event_monitor

(ein Auszug davon bei den verschiedenen Aktionen würde auch helfen und auch welcher Eintrag zu welcher Aktion gehört hat)

Das if-Zeugs in den geschweiften Klammern ist halt Perl, gibt es Seiten zum Selbststudium im Netz... ;)

notify und dann eben Perl -> { Perl-Code } (oder besser: auslagern in myUtils)
https://wiki.fhem.de/wiki/99_myUtils_anlegen


Zitat von: harle am 13 November 2021, 12:25:54
...falls notify aber keinen Mehrwert hat, wie kann ich den "Trigger" bei DOIF abfragen?

Was heißt "Mehrwert"?

notify und dann eben Perl -> { Perl-Code } (oder besser: auslagern in myUtils) ist doch ähnlich wie DOIF...

Was mich bei DOIF eher "stört" ist die "Mischung" zwischen "Programmierung" (mit DOIF-Sytax) und "Beeinflussung" durch Attribute...

Und wenn DOIF-Perl, dann kann ich auch gleich bei notify/at etc. bleiben ;)

Aber egal, führt hier weg...
...soll aber sagen: ich habe bzgl. DOIF keine Ahnung, sorry... :-\

Und wen du das DOIF schon hast, dann einfach commandre lesen was dazu steht oder warten bis sich jemand meldet, der das beantworten kann...

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 13:39:09
Zitat von: MadMax-FHEM am 13 November 2021, 13:18:23
Jetzt wäre noch (mal) die Frage welche "Wege" zum Einschalten du willst und was dazu führen soll, dass es "Dauer-an" bleibt?

Ich habe es Stand jetzt so, dass der BW die Lampe an und aus schaltet.

Wenn wir jetzt aber die Lampe manuell auf "on" schalten, dann soll der BWM so lange keine Aktion machen, bis die Lampe wieder manuell auf aus geschaltet wird.

Der BW soll quasi deaktiviert werden sobald manuell in die Schaltung der Lampe eingegriffen wird.

Ist das grundsätzlich überhaupt erfass-/bzw. machbar?
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 13:51:01
Zitat von: harle am 13 November 2021, 13:39:09
Wenn wir jetzt aber die Lampe manuell auf "on" schalten, dann soll der BWM so lange keine Aktion machen, bis die Lampe wieder manuell auf aus geschaltet wird.

Ja schon klar.
ABER: WAS schaltet denn manuell ein? Also ist es ein Schalter/Taster, der auch in fhem integriert ist bzw. zumindest fhem erkennen kann, wenn dadurch geschalten wird/wurde?

Zitat von: harle am 13 November 2021, 13:39:09
Ist das grundsätzlich überhaupt erfass-/bzw. machbar?

Ja, also wenn fhem den Schalter erkennen kann bzw. es eben eine Möglichkeit für fhem gibt irgendwie zu unterscheiden, dann klar, siehe meine Antwort!

Genau das mache ich ja... 8)

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 14:10:31
Zitat von: MadMax-FHEM am 13 November 2021, 13:51:01
WAS schaltet denn manuell ein? Also ist es ein Schalter/Taster, der auch in fhem integriert ist bzw. zumindest fhem erkennen kann, wenn dadurch geschalten wird/wurde?

Wir benutzen Google_Assistant_FHEM_Connect (https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect) im ganzen Haus und schalten entweder per Sprache oder per Shortcuts über Google Home auf dem Handy.
Ich könnte natürlich jetzt für den Flur einen separaten Schalter noch integrieren (z.B. Philips Hue Smart Button long press für an/aus), den könnte man dann abfragen? Ich gehe jetzt mal davon aus, dass man keine Rückmeldung von Google Assistant FHEM Connect bekommt, dass geschaltet wurde.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: Gisbert am 13 November 2021, 15:04:39
Hallo harle,

ich glaube, dass du die Frage von Joachim noch nicht ausreichend beantwortet hast.

Beispiel: dein BW und Google Assistant und dein vorhandener(?), manueller(?) Schalter schalten das gleiche Relais - wie soll denn Fhem den Unterschied registrieren? Entweder es gibt für jeden der 3 Schaltmöglichkeiten in irgendeinem Fhem-Device ein Reading, dann lässt sich dein Vorhaben umsetzen.

Denke mal bitte in diese Richtung und schildere genau, was von dem vorhanden ist und auf deine Situation passt.

Viele Grüße Gisbert
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: harle am 13 November 2021, 16:11:21
Hi Gisbert,

ich denke schon, dass ich es verstanden habe und ich gehe jetzt davon aus, dass FHEM den Unterschied nicht erkennen kann.

Heute schaltet nur der BW und Google Assistant das Relais, aber auch da wird es ja kein Reading geben, dass das Schalten von Google kam.

Was ich sagen wollte war, falls ich das Problem des nicht vorhandenen Readings über einen zusätzlichen, manuellen Schalter umgehen könnte, dann würde ich einen solchen in das System einbinden.

Da wir aber hauptsächlich Gassistant nutzen wird es keine Lösung geben das Relais auf Dauer-An zu lassen, wenn es über eben diesen Assistenten geschaltet wurde, so wie ich es mittlerweile verstanden habe.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: kabanett am 13 November 2021, 16:24:16
Hallo harle,
nimm doch in deinem DOIF den Zustand der Lampe bei der Einschaltbedingung
und
den eigenen Zustand des DOIF bei den Ausschaltbedingungen mit auf.

([Bewegungsmelder_Flur:occupancy] eq "true" and isday() eq "0" and [Flur] eq "off") (set Flur on)
DOELSE
([Bewegungsmelder_Flur:occupancy] eq "false" and [$SELF] eq "cmd_1") (set Flur off)


So sollte es nur einschalten wenn die Lampe vorher nicht an war
und nur ausschalten wenn das DOIF es selbst eingeschaltet hat.

Achtung Code ist nur aus der Hüfte geschossen ;)

Gruß
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: Gisbert am 13 November 2021, 18:35:35
Hallo harle,

ich hab einen ESP8266 (vermutlich steckt in deiner Gosund Wifi Steckdose auch ein ESP8266), an dem ein Bewegungsmelder und eine Lampe dran hängt (in der Realität noch etwas komplizierter als dein Fall, da es ein Wechselschalter ist).

Tagsüber möchte ich nicht, dass der Bewegungsmelder das Licht einschaltet - verständlich. Andererseits möchte ich manchmal nicht, dass das Licht nach 1~2 Minuten ausgeht.

Um das zu erreichen habe ich ESPEasy am Start zusammen mit sogenannten Rules in ESPEasy.

Tag/Nacht-Unterscheidung mache ich in Fhem in einem DOIF und sende ein Event zum ESP. Auf dieses Event setzt eine Rule auf und setzt ein Dummy in ESPEasy entsprechend (0 oder 1).
Willentlich setze ich die Automatik außer Kraft, indem ich ein weiteres Dummy-Device ändere (0 oder 1), so dass das Ausschalten nach Bewegungsende unterbleibt; der umgekehrte Fall geht auch (d.h. trotz Bewegung kein Licht).

Hier meine Rules:
on Wechselschalter2#Wechselschalter2 do
  if [Relais#Relais]=0
    gpio,14,1
  elseif [Relais#Relais]=1
    gpio,14,0
  endif
endon

on PIR#PIRstate=0 do
  if [detectVcc#stateVcc]=1 and [daylight#day]=0 and [automode#mode]=0 and [Relais#Relais]=0
    gpio,14,1
  elseif [detectVcc#stateVcc]=1 and [daylight#day]=0 and [automode#mode]=0 and [Relais#Relais]=1
    gpio,14,0
  endif
endon

on PIR#PIRstate=1 do
  if [daylight#day]=0
    timerSet,1,40
  elseif [daylight#day]=1
    timerSet,1,20
  endif
endon

on Rules#Timer=1 do
  if [detectVcc#stateVcc]=0 and [PIR#PIRstate]=1 and [automode#mode]=0 and [Relais#Relais]=0
    gpio,14,1
  elseif [detectVcc#stateVcc]=0 and [PIR#PIRstate]=1 and [automode#mode]=0 and [Relais#Relais]=1
    gpio,14,0
  endif
endon

on Einschalten do
  if [detectVcc#stateVcc]=1 and [Relais#Relais]=0
    gpio,14,1
  elseif [detectVcc#stateVcc]=1 and [Relais#Relais]=1
    gpio,14,0
  endif
endon

on Ausschalten do
  if [detectVcc#stateVcc]=0 and [Relais#Relais]=0
    gpio,14,1
  elseif [detectVcc#stateVcc]=0 and [Relais#Relais]=1
    gpio,14,0
  endif
endon

on Tag do
  taskvalueset 6,1,1
  Publish WechselschalterFlurEG_13/daylight/day,1
endon

on Nacht do
  taskvalueset 6,1,0
  Publish WechselschalterFlurEG_13/daylight/day,0
endon

on Auto do
  taskvalueset 7,1,0
  Publish WechselschalterFlurEG_13/automode/mode,0
endon

on noAuto do
  taskvalueset 7,1,1
  Publish WechselschalterFlurEG_13/automode/mode,1
endon


Vielleicht hilft dir dieser Ansatz weiter.
Viele​ Grüße​
Gisbert​
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 18:50:13
Irgendwie bewegen sich alle hinzukommenden Helfer mit ihren Fragen immer weiter weg vom eigentlichen Problem.
Jeder hat irgendwie recht mit seinen Fragen - aber weiterhelfen tut das alles dem Fragesteller nicht.

Ich mach mal Popcorn.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: FHEMAN am 13 November 2021, 18:55:24
Zitat von: betateilchen am 13 November 2021, 18:50:13
Irgendwie bewegen sich alle hinzukommenden Helfer mit ihren Fragen immer weiter weg vom eigentlichen Problem.
Jeder hat irgendwie recht mit seinen Fragen - aber weiterhelfen tut das alles dem Fragesteller nicht.

Ich mach mal Popcorn.
Du warst doch derjenige, der dem TE und mir mit seiner Aussage den Mund wässrig gemacht hat. Also anstatt Popcorn zu kaufen lass uns doch mal teilhaben an Deinem Wissen ;)
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 19:06:19
Zitat von: FHEMAN am 13 November 2021, 18:55:24
Du warst doch derjenige, der dem TE und mir mit seiner Aussage den Mund wässrig gemacht hat. Also anstatt Popcorn zu kaufen

Sorry, dass ich hier nicht 24/7 vor dem PC sitze, um immer innerhalb weniger Sekunden antworten zu können. Wenn ein Thread dann zwischenzeitlich so zerfleddert wurde wie dieser hier, habe ich einfach keine Lust mehr, weil die Erfahrung lehrt, dass sich der Zeitaufwand für eine Rückführung meistens nicht mehr lohnt.

Außerdem kaufe ich kein Popcorn, ich mache das in meiner Popcornmaschine selbst und immer frisch.
Dabei frage ich mich übrigens immer, warum die Menschheit aufgehört hat, herauszufinden, ob man noch andere Dinge durch Explosion besser machen kann als nur das Maiskorn...


--
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 19:15:41
solange der Schaltaktor in der Lage ist, seinen eigenen Zustand an FHEM zu melden, ist die Sache doch recht einfach logisch zu ermitteln.

Wenn der Bewegungsmelder auslöst und die Lampe zu dem Zeitpunkt schon an ist, muss sie auf anderem Weg eingeschaltet worden sein.
In dem Moment würde ich dafür sorgen, dass das notify, das auf den Bewegungsmelder reagiert, den Status des Schaltaktors nicht verändert. Es gibt mehrere mögliche Lösungsansätze, die man beliebig komplex und komfortabel gestalten kann.


Ähnliches Beispiel aus meiner eigenen FHEM Installation:

Bei mir gibt es an der Wohnungstür einen Türsensor, der beim Öffnen das Licht im Flur einschaltet. Dies soll er aber nur tun, wenn die Tür von außen aufgemacht wird. Das wiederum wird dadurch festgestellt, dass die Bewegungsmelder im Flur zu dem Öffnungszeitpunkt keine Bewegung IM Flur festgestellt haben (es ist also niemand innen zur Tür gelaufen, um sie aufzumachen)
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 19:18:48
Zitat von: harle am 13 November 2021, 16:11:21
Hi Gisbert,

ich denke schon, dass ich es verstanden habe und ich gehe jetzt davon aus, dass FHEM den Unterschied nicht erkennen kann.

Heute schaltet nur der BW und Google Assistant das Relais, aber auch da wird es ja kein Reading geben, dass das Schalten von Google kam.

Was ich sagen wollte war, falls ich das Problem des nicht vorhandenen Readings über einen zusätzlichen, manuellen Schalter umgehen könnte, dann würde ich einen solchen in das System einbinden.

Da wir aber hauptsächlich Gassistant nutzen wird es keine Lösung geben das Relais auf Dauer-An zu lassen, wenn es über eben diesen Assistenten geschaltet wurde, so wie ich es mittlerweile verstanden habe.

Also "nur" Sprache und BWM.

Ich weiß, jetzt gibt's wieder Haue ;)

Aber wenn du statt den direkten Aktor einen dummy per Sprache steuerst und dann eben ein DOIF (gut ich würde ja ein notify nehmen ;)  ) auf BWM und Sprache machst und eben bei Sprache im DOIF oder im Aktor merkst -> Sprache (so wie mein automatic/manual), dann kann das DOIF (oder notify) das ja abfragen und dann entweder bei BWM was tun oder lassen...

Alternativ: bei Alexa gibt es zusätzlich noch das echodevice, da gibt es ein Reading voice, das könnte man ebenfalls abfragen...
...evtl. gibt es sowas ja bei Google Home auch. Es gibt ja noch das GoogleCast/ChromeCast Device, vielleicht liefert das was...

Und Haue hin oder her: wenn ich etwas per Sprache (nutze Alexa) schalten will, wo ich aber vorher noch Dinge abfrage etc. dann nehme ich dafür entweder einen dummy... 8)

Zitat von: kabanett am 13 November 2021, 16:24:16
Hallo harle,
nimm doch in deinem DOIF den Zustand der Lampe bei der Einschaltbedingung
und
den eigenen Zustand des DOIF bei den Ausschaltbedingungen mit auf.

([Bewegungsmelder_Flur:occupancy] eq "true" and isday() eq "0" and [Flur] eq "off") (set Flur on)
DOELSE
([Bewegungsmelder_Flur:occupancy] eq "false" and [$SELF] eq "cmd_1") (set Flur off)


So sollte es nur einschalten wenn die Lampe vorher nicht an war
und nur ausschalten wenn das DOIF es selbst eingeschaltet hat.

Achtung Code ist nur aus der Hüfte geschossen ;)

Gruß

Ob das mit dem DOIF und self klappt: keine Ahnung.

Bin etwas skeptisch (dachte auch zuerst das ginge bei meinen "echt vorhandenen" Schaltern), weil wenn der BWM "schneller" ist, ok, dann evtl. ist das SELF schon damit gesetzt...
...aber wenn dann Sprache kommt, hmmm. Dann ist Self und somit keine Sprache oder wie ist/war das gedacht...

...bzw. wenn Sprache kam ist dann das SELF?

Ich kenne DOIF halt zu wenig...

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 19:22:47
Zitat von: betateilchen am 13 November 2021, 19:15:41
solange der Schaltaktor in der Lage ist, seinen eigenen Zustand an FHEM zu melden, ist die Sache doch recht einfach logisch zu ermitteln.

Wenn der Bewegungsmelder auslöst und die Lampe zu dem Zeitpunkt schon an ist, muss sie auf anderem Weg eingeschaltet worden sein.
In dem Moment würde ich dafür sorgen, dass das notify, das auf den Bewegungsmelder reagiert, den Status des Schaltaktors nicht verändert. Es gibt mehrere mögliche Lösungsansätze, die man beliebig komplex und komfortabel gestalten kann.

Naja aber nur, wenn die Sprache vorher war...
...wenn zuerst Bewegung -> an (notify merkt sich das vielleicht sogar) und dann Sprache?
Was zählt nun?
Weil Sprache schaltet ja den (bereits an Aktor) ja "nur "wieder an...
...und was ist beim Ausschalten?

Wenn keine Bewegung mehr ist?
Die Lampe/Aktor ist ja an aber keiner weiß mehr wodurch? ;)

Soll nun der BWM (also das BWM-notify) ausschalten oder nicht, weil ja evtl. Sprache?

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 19:27:23
Genau das meinte ich mit "Thread zerfleddern". Schade.

Ich bin hier raus.
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: MadMax-FHEM am 13 November 2021, 19:31:24
Zitat von: betateilchen am 13 November 2021, 19:27:23
Genau das meinte ich mit "Thread zerfleddern". Schade.

Ich bin hier raus.

Dass du immer gleich "beleidigt" bist...
...als Helfer "muss" man ab und an von dir auch einige (unnötige) "Schüsse" verkraften...

Außerdem wäre es ja doch interessant zu sehen, ob es tatsächlich so einfach geht, ich mag ja auch falsch liegen...
...sorry, dass ich (auch nur) ein Mensch bin und halt auch versuche zu (mitzu)denken und Finger um was zu schreiben... ;)

Gruß, Joachim
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: betateilchen am 13 November 2021, 19:39:53
Zitat von: MadMax-FHEM am 13 November 2021, 19:31:24
Dass du immer gleich "beleidigt" bist...

Ich bin überhaupt nicht beleidigt, solche Unterstellungen kannst Du gerne weglassen.


Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: FHEMAN am 13 November 2021, 20:00:22
Zitat von: betateilchen am 13 November 2021, 19:06:19
Sorry, dass ich hier nicht 24/7 vor dem PC sitze, um immer innerhalb weniger Sekunden antworten zu können. Wenn ein Thread dann zwischenzeitlich so zerfleddert wurde wie dieser hier, habe ich einfach keine Lust mehr, weil die Erfahrung lehrt, dass sich der Zeitaufwand für eine Rückführung meistens nicht mehr lohnt.

Außerdem kaufe ich kein Popcorn, ich mache das in meiner Popcornmaschine selbst und immer frisch.
Dabei frage ich mich übrigens immer, warum die Menschheit aufgehört hat, herauszufinden, ob man noch andere Dinge durch Explosion besser machen kann als nur das Maiskorn...


--
Na wenn Du Zeit für Popcorn Kommentare findest..

Das Kaufen war doch direkt ein T9-Fehler ;) ;)

Um mal wieder konstruktiv zu werden, hier mein (schlechter) Lösungsansatz für das Sender/Verursacher-Problem:
https://forum.fhem.de/index.php/topic,122468.msg1171989.html#msg1171989
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: Icinger am 14 November 2021, 09:00:31
Hier eine Version, wie sie bei mir im Einsatz ist:
Normalerweise wird das Licht über BWM gesteuert. Wenn ich länger im Keller bin, will ich den BWM aber übergehen --> Hierzu habe ich einen Taster.
Da ich mich aber nicht drauf verlassen will, dass das Licht auch über den Taster wieder ausgeschaltet wird, läuft zusätzlich im DOIF ein Timer, welcher in diesem Fall (Taster) das Licht nach einer Stunde ausschaltet.
Ab diesem Zeitpunkt (Timer ODER nochmalig Taster) läuft wieder der normale BWM-Timer.

define di_Kellerlicht DOIF ([xi_Motion_3:occupancy] eq "true") (set mq2_Mini2 on)(set mq2_Mini2 off;;setreading $SELF delay 600) \
DOELSEIF ([mq2_Mini5:Switch1]) (set mq2_Mini2 toggle;;setreading $SELF delay 3600)(setreading $SELF delay 600)

attr di_Kellerlicht do resetwait
attr di_Kellerlicht wait 0,[$SELF:delay]:0,[$SELF:delay]


lg, Stefan
Titel: Antw:Auslösen über Bewegungsmelder ignorieren, wenn Lampe manuell angeschaltet wurde
Beitrag von: KyleK am 14 November 2021, 15:29:56
Ich hab folgendes Setup bei mir:
* Zigbee-Licht in der Küche
* Zigbee-Dimmschalter der das Licht schaltet
* Amazon Echo zur Sprachsteuerung

Meine  Verhalten ist eigentlich wie das vom TE:
* Wenn das Licht nicht manuell eingeschaltet wurde, dann nutze den BWM
* Wenn das Licht manuell eingeschaltet wurde, ignoriere den BWM
* Wenn das Licht manuell ausgeschaltet wurde, aktiviere den BWM wieder.

Dazu hab ich folgendes DOIF:

defmod di.Kuechenlicht_Control DOIF ((["^Echo_:^voice",""] =~ /ober\s?licht(?!.*aus)/i or [hue.dimmer.Oberlicht:"DimUp"]) and ([?di.Kuechenlicht_Motion:mode] ne "disabled" or [$SELF:cmd] eq "2.2"))\
  (msg @rr_Frank ($EVENT) Oberlicht was turned on manually. Disabling di.Kuechenlicht_Motion)\
  (set di.Kuechenlicht_Motion disable)\
DOELSEIF([hue.light.Oberlicht:"^onoff:.0$"] and [?di.Kuechenlicht_Motion:mode] eq "disabled")\
  (msg @rr_Frank ($EVENT) Oberlicht was turned off. Enabling di.Kuechenlicht_Motion)\
  (set di.Kuechenlicht_Motion enable)\
\

attr di.Kuechenlicht_Control do always
attr di.Kuechenlicht_Control room System->DOIF
attr di.Kuechenlicht_Control wait 0,0:0,30

(Die msg commands waren mal fürs Testen gedacht und können eigentlich raus)

Dieses DOIF ist nur dazu da, das BWM-DOIF di.Kuechenlicht_Motion ein- oder auszuschalten.
Wenn jemand einen Alexa-Befehl "Oberlicht..(an|50%|???%|...)" sagt, oder am Dimmschalter das Licht anschaltet, dann wird das BWM-DOIF deaktiviert.
Wenn das Oberlicht abgeschalten wird (von wem ist egal), und das BWM-DOIF im Status "disabled" ist, dann schalte es wieder an.

Vielleicht hilfts...