Und-Verknüpfung mit "Bei Änderung auslösen"

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

fÄbs
Beiträge: 7
Registriert: 14.10.2019, 21:13

Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von fÄbs » 14.10.2019, 21:30

Hallo zusammen,

ich habe eine kurze Frage zu meinem Programm, welches Bewegungsbenachrichtungen verschickt und leider ein bisschen unzuverlässig funktioniert:
Beinhaltet "Bei Änderung auslösen" auch gleichzeitig "Nur prüfen", wenn eine andere Bedingung zuschlägt? Sprich Variable MovementRecognizedCam wird auf BewegungErkannt ausgelöst und die zweite Variable MovementRecognizedBW steht bereits aus BewegungErkannt.
Unbenannt.PNG
Unbenannt.PNG (8.81 KiB) 1342 mal betrachtet
Oder ist es besser stattdessen notwendig Folgendes zu basteln?
WENN
--- Variable1 = true mit "Bei Änderung auslösen"
--- UND
--- Variable2 = true mit "Nur prüfen"
- ODER
--- Variable2 = true mit "Bei Änderung auslösen"
--- UND
--- Variable1 = true mit "Nur prüfen"

Besten Dank und viele Grüße!

ABE2000
Beiträge: 290
Registriert: 06.02.2019, 00:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 4 Mal
Danksagung erhalten: 21 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von ABE2000 » 14.10.2019, 22:02

Du kannst auch ODER verwenden.

Bei der UND-Verknüpfung muss ja beides immer wahr sein.

Wenn du es "komplizierter" machen möchtest, dann ginge auch:

Wert1 = true (Änderung)
ODER
Wert2 = true (Änderung)
UND
Wert1 = false (Prüfung)
ODER
Wert2 = false (Prüfung)

Diese Option würde allerdings bedeuten, dass das Programm nur dann auslöst, wenn ein Wert als true geändert wurde und der zweite aber noch auf false steht.

Die Frage stellt sich nur: Wann möchtest du, dass das Programm auslöst? Wenn beide Werte auf true stehen oder wenn sich nur ein Wert auf true ändert?

In deinem Fall bedeutet das, dass Wert1 oder Wert2 schon auf true stehen müsste und sich dann der andere Wert auf true ändern müsste, um das Programm auszuführen (und ja, der zweite Wert wird dabei auch überprüft, da du ja die UND-Verknüpfung verwendest).
Wenn du stattdessen die ODER-Verknüpfung anwendest, wird bei jeder Änderung von Wert1 und Wert2 auf true das Programm ausgelöst - egal wie der andere Wert dann steht!

MfG René
Tinkerboard S mit HM-MOD-RPI-PCB (vorher Raspberry Pi3+) RaspberryMatic
HomeMatic Gateway
HomeMatic CCU2 Gateway

80 angelernte wireless Geräte
287 Kanäle
137 Programme

--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------

fÄbs
Beiträge: 7
Registriert: 14.10.2019, 21:13

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von fÄbs » 14.10.2019, 22:19

Hallo René,
schon einmal vielen Dank für Deine Antwort. Komplizierter ist immer doof.
Entscheidend für mich war diese Aussage:
und ja, der zweite Wert wird dabei auch überprüft, da du ja die UND-Verknüpfung verwendest
Ich schließe daraus, dass mein Gedankengang richtig war und die Option "Bei Änderung auslösen" auch überprüft, wenn eine andere Bedingung zutrifft.

Und ja, ich möchte, dass das Programm auslöst, wenn beide Variablen auf "true" stehen.

Viele Grüße,
fäbs

ABE2000
Beiträge: 290
Registriert: 06.02.2019, 00:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 4 Mal
Danksagung erhalten: 21 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von ABE2000 » 14.10.2019, 22:25

Dann kannst du dein Programm ja so lassen.

Wenn du meinst, es funktioniert nicht richtig oder zu unzuverlässig, dann kannst du ja die zweite Option testen:

UND-ODER-UND

Oder noch besser wäre es, wenn du das komplette Programm darstellt, dann könnte man eventuelle Fehler auch gleich sehen (du hast nur einen Ausschnitt des gesamten Programms eingefügt)

MfG René
Tinkerboard S mit HM-MOD-RPI-PCB (vorher Raspberry Pi3+) RaspberryMatic
HomeMatic Gateway
HomeMatic CCU2 Gateway

80 angelernte wireless Geräte
287 Kanäle
137 Programme

--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------

Benutzeravatar
robbi77
Beiträge: 13847
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 738 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von robbi77 » 14.10.2019, 22:31

Das wurde doch extra schon mal alles aufgeschrieben wie Programme funktionieren ...
Link in meiner Signatur: Programmlogik
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

Benutzeravatar
Roland M.
Beiträge: 9784
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1373 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von Roland M. » 14.10.2019, 22:39

Hallo und willkommen im Forum!

Das wichtigste in meinen Augen ist die Unterscheidung zwischen Programmauslöser und Bedingung(en)!

Auch wenn erst im 27. SONSTWENN ein Auslöser ("Auslösen auf Änderung" bzw. "Auslösen auf Aktualisierung") das Programm startet, so wird das Programm immer von oben nach unten abgearbeitet, der Aktionsteil der ersten wahren Bedingung ausgeführt und das Programm anschließend beendet.

In deinem Fall sind vermutlich beide Systemvariablen "gleichberechtigt", also wäre vermutlich ein "WENN SV1=wahr ODER SV2=wahr DANN..." gerechtfertigt, jeweils mit "Auslösen auf Änderung".
Bitte in solchen Fällen immer den genauen Anwendungsfall angeben, dann kann man auch leichter helfen!

Und immer wieder gerne der Verweis auf die Tipps für Anfänger: viewtopic.php?f=1&t=22801 :)


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

fÄbs
Beiträge: 7
Registriert: 14.10.2019, 21:13

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von fÄbs » 14.10.2019, 23:03

Hallo!

so ganz sehe ich meine Frage dann (und auch nicht mit den Anfängerthreads aus Antwort und Signatur) beantwortet.
Ich habe zwei Variablen, die unabhängig von einander auf wahr, bzw BewegungErkannt gesetzt werden können. Das Programm soll genau dann auslösen (und zwar genau einmal zu dem Zeitpunkt) wenn beide Variablen zeitgleich den Wert true besitzen. Die nächste Auslösung ist frühestens, wenn mindestens eine der beide Variablen wieder auf false Stand.
So habe ich jetzt zwei "Auslöser" die unabhängig voneinander sind.

Viele Grüße!

Benutzeravatar
robbi77
Beiträge: 13847
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 738 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von robbi77 » 14.10.2019, 23:15

Das Programm soll genau dann auslösen (und zwar genau einmal zu dem Zeitpunkt) wenn beide Variablen zeitgleich den Wert true besitzen.
Dann muss da halt ein UND dazwischen ...
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von dtp » 15.10.2019, 09:08

Es ist so, wie vermutet:

Bedingung A bei Änderung auslösen
UND
Bedingung B bei Änderung auslösen

heißt, dass bei Erfüllung von A gleichzeitig B geprüft und bei Erfüllung von B gleichzeitig A geprüft wird. Falsch ist dagegen die Annahme, dass bei einer UND-Verknüpfung nur eine Auslösung erfolgt, wenn sich gleichzeitig beide Bedingungen ändern.

Im Falle von

Bedingung A bei Änderung auslösen
ODER
Bedingung B bei Änderung auslösen

wird die jeweils andere Bedingung übrigens nicht geprüft. Da genügt dann die bloße Erfüllung von Bedingung A oder B.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Und-Verknüpfung mit "Bei Änderung auslösen"

Beitrag von manfredh » 15.10.2019, 11:21

dtp hat geschrieben:
15.10.2019, 09:08
Im Falle von

Bedingung A bei Änderung auslösen
ODER
Bedingung B bei Änderung auslösen

wird die jeweils andere Bedingung übrigens nicht geprüft. Da genügt dann die bloße Erfüllung von Bedingung A oder B.
Auch wenn das nun spitzfindig ist:

Wenn B das Programm auslöst, wird beim Ablauf das A sehr wohl geprüft und (falls wahr, ohne weitere Prüfung des B) das DANN ausgeführt.
Zuletzt geändert von manfredh am 16.10.2019, 14:23, insgesamt 1-mal geändert.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“