Hauptmenü

(gelöst) DOIF und 2 Events

Begonnen von fireball, 03 Februar 2025, 16:26:52

Vorheriges Thema - Nächstes Thema

fireball

Hi,

ich habe aktuell ein HTTPMOD "Katzenklappe", welches mir den Zustand der Katzenklappe auswertet.
Dadurch bekomme ich auch Readings, welche mir sagen, ob eine Katze drin oder draußen ist und ich schicke mir dann ne Info aufs Handy.
Der Status wird alle 2 oder 5 min abgefragt.

Mit nem DOIF werte ich das Reading aus, wo die Katze sich befindet bzw. ob sie reingekommen ist oder rausgegangen ist.

Jetzt habe ich aber zwei Katzen :) und das Problem besteht darin, wenn die Katzen gleichzeitig rauslaufen, also innerhalb der Abfrage des HTTPMOD, dann bekomme ich zwar zwei Änderungsevents, aber DOIF scheint nur eins davon zu treffen und wertet das andere dann nicht mehr aus (bleibt also in dem DOIF Zweig, welcher zuerst gefunden wurde stecken)

do_always hilft dabei nicht.

Ist DOIF dafür falsch? Müssen es zwei DOIFs oder zwei Notifys sein oder hab ich was übersehen?!

VG+Danke

Internals:
  DEF        ([Katzenklappe:data_pets_01_position_where] == 1)
    ((set Meine_TGBot message Maui sagt, ich bin zu Hause.))
DOELSEIF ([Katzenklappe:data_pets_01_position_where] == 2)
    ((set Meine_TGBot message Maui sagt, ich gehe raus.))
DOELSEIF ([Katzenklappe:data_pets_02_position_where] == 1)
    ((set Meine_TGBot message Kami sagt, ich bin zu Hause.))
DOELSEIF ([Katzenklappe:data_pets_02_position_where] == 2)
    ((set Meine_TGBot message Kami sagt, ich gehe raus.))
  FUUID      67611f4b-f33f-0804-1d20-ca975a1b32416d80
  MODEL      FHEM
  NAME      Katzenklappe_BM
  NOTIFYDEV  Katzenklappe,global
  NR        716
  NTFY_ORDER 50-Katzenklappe_BM
  STATE      cmd_4
  TYPE      DOIF
  VERSION    28546 2024-02-23 20:11:05
  eventCount 27
  READINGS:
    2025-02-03 16:16:21  Device          Katzenklappe
    2025-02-03 16:16:21  cmd            4
    2025-02-03 16:16:21  cmd_event      Katzenklappe
    2025-02-03 16:16:21  cmd_nr          4
    2025-02-03 15:18:20  e_Katzenklappe_data_pets_01_position_where 1
    2025-02-03 16:16:21  e_Katzenklappe_data_pets_02_position_where 2
    2024-12-17 11:44:36  mode            enabled
    2025-02-03 16:16:21  state          cmd_4
  Regex:
    accu:
    bar:
    barAvg:
    collect:
    cond:
      Katzenklappe:
        0:
          data_pets_01_position_where ^Katzenklappe$:^data_pets_01_position_where:
        1:
          data_pets_01_position_where ^Katzenklappe$:^data_pets_01_position_where:
        2:
          data_pets_02_position_where ^Katzenklappe$:^data_pets_02_position_where:
        3:
          data_pets_02_position_where ^Katzenklappe$:^data_pets_02_position_where:
  attr:
    cmdState:
    wait:
    waitdel:
  condition:
    0          ::ReadingValDoIf($hash,'Katzenklappe','data_pets_01_position_where') == 1
    1          ::ReadingValDoIf($hash,'Katzenklappe','data_pets_01_position_where') == 2
    2          ::ReadingValDoIf($hash,'Katzenklappe','data_pets_02_position_where') == 1
    3          ::ReadingValDoIf($hash,'Katzenklappe','data_pets_02_position_where') == 2
  do:
    0:
      0          (set Meine_TGBot message Maui sagt, ich bin zu Hause.)
    1:
      0          (set Meine_TGBot message Maui sagt, ich gehe raus.)
    2:
      0          (set Meine_TGBot message Kami sagt, ich bin zu Hause.)
    3:
      0          (set Meine_TGBot message Kami sagt, ich gehe raus.)
    4:
  helper:
    NOTIFYDEV  Katzenklappe,global
    event      data_pets_02_status_activity_id: 4462749480,data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00,data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00,data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00,data_pets_02_position_where: 2,data_pets_02_position_since: 2025-02-03T15:15:37+00:00,data_devices_01_updated_at: 2025-02-03T15:16:02+00:00,data_pets_02_status_activity_where: 2,data_devices_02_updated_at: 2025-02-03T15:16:05+00:00,data_pets_02_position_id: 4462749480
    globalinit 1
    last_timer 0
    sleeptimer -1
    timerdev  Katzenklappe
    timerevent data_pets_02_status_activity_id: 4462749480,data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00,data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00,data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00,data_pets_02_position_where: 2,data_pets_02_position_since: 2025-02-03T15:15:37+00:00,data_devices_01_updated_at: 2025-02-03T15:16:02+00:00,data_pets_02_status_activity_where: 2,data_devices_02_updated_at: 2025-02-03T15:16:05+00:00,data_pets_02_position_id: 4462749480
    triggerDev Katzenklappe
    timerevents:
      data_pets_02_status_activity_id: 4462749480
      data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00
      data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00
      data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_where: 2
      data_pets_02_position_since: 2025-02-03T15:15:37+00:00
      data_devices_01_updated_at: 2025-02-03T15:16:02+00:00
      data_pets_02_status_activity_where: 2
      data_devices_02_updated_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_id: 4462749480
    timereventsState:
      data_pets_02_status_activity_id: 4462749480
      data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00
      data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00
      data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_where: 2
      data_pets_02_position_since: 2025-02-03T15:15:37+00:00
      data_devices_01_updated_at: 2025-02-03T15:16:02+00:00
      data_pets_02_status_activity_where: 2
      data_devices_02_updated_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_id: 4462749480
    triggerEvents:
      data_pets_02_status_activity_id: 4462749480
      data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00
      data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00
      data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_where: 2
      data_pets_02_position_since: 2025-02-03T15:15:37+00:00
      data_devices_01_updated_at: 2025-02-03T15:16:02+00:00
      data_pets_02_status_activity_where: 2
      data_devices_02_updated_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_id: 4462749480
    triggerEventsState:
      data_pets_02_status_activity_id: 4462749480
      data_pets_02_status_activity_since: 2025-02-03T15:15:37+00:00
      data_devices_01_last_new_event_at: 2025-02-03T15:16:01+00:00
      data_devices_02_last_new_event_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_where: 2
      data_pets_02_position_since: 2025-02-03T15:15:37+00:00
      data_devices_01_updated_at: 2025-02-03T15:16:02+00:00
      data_pets_02_status_activity_where: 2
      data_devices_02_updated_at: 2025-02-03T15:16:05+00:00
      data_pets_02_position_id: 4462749480
  internals:
  perlblock:
  readings:
    all        Katzenklappe:data_pets_01_position_where Katzenklappe:data_pets_02_position_where
  trigger:
  uiState:
  uiTable:
Attributes:
  do        always
  icon      helper_doif
  room      ALARM


Per

Am einfachsten in den Perl Modus wechseln.
Oder die Abfrage in der Reihenfolge
A und B
A
B
Keine
ausführen.

fireball

Hi,

danke der Hinweis war sehr wertvoll.
So hatte ich das noch gar nicht betrachtet... jetzt funktionieren die Infos.

([Katzenklappe:data_pets_01_position_where] == 1 && [Katzenklappe:data_pets_02_position_where] == 1)
    ((set Meine_TGBot message Kami und Maui sagen, wir sind zu Hause.))
DOELSEIF ([Katzenklappe:data_pets_01_position_where] == 2 && [Katzenklappe:data_pets_02_position_where] == 2)
    ((set Meine_TGBot message Kami und Maui sagen, wir gehen raus.))
DOELSEIF ([Katzenklappe:data_pets_01_position_where] == 1)
    ((set Meine_TGBot message Maui sagt, ich bin zu Hause.))
DOELSEIF ([Katzenklappe:data_pets_01_position_where] == 2)
    ((set Meine_TGBot message Maui sagt, ich gehe raus.))
DOELSEIF ([Katzenklappe:data_pets_02_position_where] == 1)
    ((set Meine_TGBot message Kami sagt, ich bin zu Hause.))
DOELSEIF ([Katzenklappe:data_pets_02_position_where] == 2)
    ((set Meine_TGBot message Kami sagt, ich gehe raus.))

VG
René

Per

Finde die Idee recht witzig, aber wird das nicht schnell nervig?
Und kann es passieren, dass eine rein und eine raus geht? Oder eine rausguckt und dann doch drinbleibt?

fireball

Ja... es kommen schon ein paar Nachrichten am Tag zusammen, aber so kann ich wenigstens sicherstellen, wo die Katzen sind bzw. in meinem Fall (Klappe nur zur Garage, aber nicht ins Haus) dann noch im Winter die Tür aufmachen.
Außerdem müssen nicht alle die App des Herstellers installieren und wir nutzen alle den gemeinsamen Telegram-Haus-Channel.

Das mit dem Kucken und nicht rausgehen, gibts auch, ist aber glaube ein anderer Wert. Jedenfalls wird das DOIF nicht getriggert.
Und mit eine raus und eine rein, das habe ich gar nicht betrachtet... der Fall ist aber bisher (in dem 2 Minuten Abfrageintervall) so noch nicht aufgetreten...

Am Ende ist es eine kleine Spielerei...  ;D

Per

Dass der Zustand mitgetrackt wird, ist ok, je nach Aktivität der beiden Tiger (wo bleiben die Bilder? ;)) kann es aber zu viel Gerede werden.
Mittels (z.B.) Alexa Abfrage oder Display kann man das auch im Bedarfsfall lösen (wenn abends die Tür geschlossen werden soll). Falls man gerade nicht im passenden Zimmer war, hat man ohnehin den aktuellen Status verpasst.

fireball

Ja, wenn uns auf die Nerven geht, dann setze ich das DOIF auf disable, aktuell gehts... die Racker pennen ja den ganzen Tag :P oder sind viel draußen...

Ansonsten habe ich eine Anzeige in FHEM mit den Zuständen, siehe Anhang.
Die Tür wird rot und offen, wenn sie draußen sind.


rabehd

Was für eine Klappe hast Du?
Meine ist 20 Jahre alt und daran klebt ein Bewegungssensor.
Auch funktionierende Lösungen kann man hinterfragen.

fireball

Hier die Infos mit Code für die Abfrage: