Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
dll-live
Beiträge: 93
Registriert: 08.01.2017, 14:42
Hat sich bedankt: 10 Mal

Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Beitrag von dll-live » 21.09.2022, 21:48

Hallo Zusammen

Gibt es eine Möglichkeit im Wenn-Bereich eines Programm mehrere Blöcke mit unterschiedlichen Verknüpfungsoperatoren (UND / ODER) zu verschachteln.

Im Pseudo Code ist folgendes Meine Ausgangslage:

Wenn....
(Block 1)
---Tuere1_geschlossen = wahr
---UND
---"Check_aktiv" = wahr
UND
(Block 2)
--- (Block1 im Block2)
------Fenster1_geschlossen = wahr
------UND
------Fenster1_check = wahr
---ODER
---(Block2 im Block2)
------Fenster1_geschlossen = wahr
------UND
------Fenster1_check = wahr

Freundliche Grüsse
Daniel
Zuletzt geändert von dll-live am 22.09.2022, 11:55, insgesamt 1-mal geändert.

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich

Beitrag von MichaelN » 21.09.2022, 22:20

Hast du es schon mal versucht zusammen zu klicken?

Wo ist eigentlich der Sinn darin 2x die gleiche Bedingung zu verodern?

Code: Alles auswählen

-----Fenster1_geschlossen = wahr
------UND
------Fenster1_check = wahr
---ODER
---(Block2 im Block2)
------Fenster1_geschlossen = wahr
------UND
------Fenster1_check = wahr
Zuletzt geändert von MichaelN am 22.09.2022, 07:03, insgesamt 1-mal geändert.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich

Beitrag von Baxxy » 21.09.2022, 23:40

Das geht nicht.
Wurde aber mal als "Feature-Request" besprochen soweit ich mich erinnere. Finde es aber nicht.

Solche Verschachtelungen kann man mit Script machen, im Programm nimmt man ein "Sonst, wenn..."

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

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich

Beitrag von Roland M. » 22.09.2022, 00:44

Hallo!
Baxxy hat geschrieben:
21.09.2022, 23:40
Solche Verschachtelungen kann man mit Script machen, im Programm nimmt man ein "Sonst, wenn..."
...und wie wir es gelernt haben, das A OR ( B AND C) nach (A OR B) AND (A OR C) aufzudröseln, einfach die Bedingungen unter Verwendung HM'scher Logik (first exit...) so zu bilden, dass man mit WENN - SONSTWENN - SONSTWENN - ... - DANN auskommt. :D


SCNR! ;)


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,...

dll-live
Beiträge: 93
Registriert: 08.01.2017, 14:42
Hat sich bedankt: 10 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Beitrag von dll-live » 22.09.2022, 12:01

Hallo zusammen.

Besten Dank für die Antworten. Leider habe ich es befürchtet dass es über die WEB-Oberfläche nicht geht. Jetzt schau ich mal wie ich weiter mache - evtl löse ich es extern....

@MichaelN:
Ja, ich habe es versucht, ging aber nicht - deshalb habe ich die Frage ja ins Forum gestellt.
Zweimal das Gleiche mit ODER zu verknüpfen ist natürlich sinnlos, da ist mir ein Fehler unterlaufen. Das Zweitemal sollte es Fenster2 heissen.

Freundliche Grüsse
Daniel

Benutzeravatar
HM-Villa
Beiträge: 488
Registriert: 24.01.2022, 10:13
System: CCU
Hat sich bedankt: 28 Mal
Danksagung erhalten: 113 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Beitrag von HM-Villa » 22.09.2022, 13:17

Hallo dll-live,

mit Hilfe der boolschen Algebra :roll: kannst Du Dein Problem

Code: Alles auswählen

(T1G Λ CA) Λ ((F1G Λ F1C) V (F2G Λ F2C))
(Du erkennst die Ausdrücke wieder?), unter Anwendung des Distributivgesetzes leicht in eine Form umwandeln, die in das WebUI passt:

Code: Alles auswählen

(T1G Λ CA Λ F1G Λ F1C) V (T1G Λ CA Λ F2G Λ F2C)
Es muss nicht immer ein Script sein! :wink:

EDIT: Auf dem Handy (zumindest auf meinem) funktioniert die Darstellung der Zeichen für die Konjunktion und Disjunktion in Code-Tags nicht, deshalb nun der Versuch mit einem großen Lambda Λ und einem V.
Zuletzt geändert von HM-Villa am 27.09.2022, 18:22, insgesamt 1-mal geändert.
______________________________________________________
950 Kanäle in 201 Geräten und 39 CUxD-Kanäle in 5 CUxD-Geräten

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Beitrag von Xel66 » 22.09.2022, 16:54

HM-Villa hat geschrieben:
22.09.2022, 13:17
Es muss nicht immer ein Script sein! :wink:
Ooooch Spielverderber! Aber 100%ACK-.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dll-live
Beiträge: 93
Registriert: 08.01.2017, 14:42
Hat sich bedankt: 10 Mal

Re: Programm mit unterschiedlich verschachtelten Blöcken im Wenn Bereich -- gelöst

Beitrag von dll-live » 23.09.2022, 21:21

Hallo @HM-Villa

Besten Dank für deinen Input, der ist Super!
Ja, die liebe boolschen Algebra.... Das hatte ich im Studium - doch war es im Moment nicht mehr "present".
Das erhöht zwar im ersten Moment den Schreibaufwand jedoch ist es einfacher zu handhaben und verringert den Fehlerquotienten enorm.

Freundliche Grüsse
Daniel

Antworten

Zurück zu „HomeMatic allgemein“