ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 13:31

Ich habe beim Vorbereiten des nächsten Steps der Programmierung des SDV wiedermal ein bisschen in der rega gegraben und dabei auf folgendes gestossen (ist nicht ganz neu, aber mal aufbearbeitet als Möglichkeit für die WebUI):

Istzustand:
Beim Anlegen einer Condition in einer ProgramRule werden die Bedingungen der dann anzulegenden Singleconditions auch direkt mit definiert.
OT1.JPG
dadurch dass die Bedungen dann zangsweise festliegen ist das system an sich starr, obwohl dieses nicht sein müsste.
diese ANDs in dem Beispiel sind nicht in stein gemeisselt sondern finden sich in den entsprechenden Singleconditions in der Methode .Operatortype wieder. Diese methode ist Read/Write und beschreibt die Art, die das Ergebnis der Singlecondition verknüpft wird. Kann si ähnlich betrachtet wrden wie NegateCondition (), welches ja mit dem Nicht eine Invertierung der Singlecondition ermöglicht (s.a. entsprechender beitrag seinerzeit von mir)

Das interessante ist nun, dass sich dieser Oeratortype ändern lässt und damit auch gezielt und reproduzierbar die Logik der Condition.

in dem beispiel nun habe ich das And der letzen Bedingung mit dem SDV in ein OR geändert. (mit einem Script geht es genauso)
OT2.png
daraus resultiert nun folgende Logig in der WebUI:

Man beachte nun das oder, welches sich auch in der WebUI wiederfindet
OT3.JPG

in SPS AWL-Schreibweise (die einige ja kennen ja das ursprungsprogramm ja so aus:

Code: Alles auswählen

U "TP1"
U "TP2"
U "TP3"
U "TP4"
heisst, in der standart WebUI Schreibweise wurde das VKE (verknüpfungsergebnis) nur true, wenn alle 4 bedingungen auch wahr waren. logisch eigentlich. dies führte zum Ausführen des Dann teiles.

mit der gerwaltaktions des Umschreibens in ein OR und dem Umstand, das wir aussnutzen, das die Rega bei der Auswertung der programmlogig streng von oben nach unen durchgeht erhalten wir die folgende resiltierende SPS-Schreibweise

Code: Alles auswählen

U "TP1"
U "TP2"
U "TP3"
O "TP4"
heisst, das VKE wird true, wenn entweder TP4 true ist oder aber TP1,TP2 und TP3 alle 3 true sind:

TEST:

folgendes kleines testscript kommt aus Anwendung:

1.

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(false);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);    
der und Teil als auch das TP4 sind false, der sonst part wird ausgeführt:

Code: Alles auswählen

--------------------------------- SystemLog ---------------------------------
Nov 15 13:06:33 homematic-ccu2 user.debug LOGGERNAME: [SONST TEIL ohne Trigger]
2. Der Und part ist true, der oder part false:

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(false);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);    
wie erwartet ist das VKE true, damit die Ausgabe:

Code: Alles auswählen

Nov 15 13:20:16 homematic-ccu2 user.debug LOGGERNAME: [DANN TEIL ohne Trigger]
3. Der und teil ist false, der oder teil aber true:

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);    
wie erwartet ist das VKE true, damit die Ausgabe:

Code: Alles auswählen

Nov 15 13:22:16 homematic-ccu2 user.debug LOGGERNAME: [DANN TEIL ohne Trigger]
bis hierhin... nette erweiterung

aber es geht noch weiter.....
Zuletzt geändert von Black am 15.11.2020, 13:57, insgesamt 3-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 13:31

Wir nehmen uns den SDV und spielen noch bisschen weiter:
OT4.JPG
In SPS Schreibweise

Code: Alles auswählen

O "TP1"
O "TP2"
U "TP3"
U "TP4"
heisst, entwerder TP1 oder TP2 müssen true sein, zusätzlich müssen aber TP3 und TP4 beide noch true sein.

wie zu erwarten:

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);     
ergibt VKE=true also den Dann teil
--------

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);     
ergibt VKE=false also den Sonst teil
--------

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(ftrue);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);     
ergibt VKE=true also den Dann teil
-------------

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(ftrue);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(false);
dom.GetObject (ID_PROGRAMS).Get ("Test 1").State(1);     
ergibt VKE=false also den Sonst teil


Auf diese Art und weise lassen sich also logiken Übersichtlicher schreiben.


Das war jetzt der einfache Teil, den den WebUI so auch noch darstellen kann. Zum Spielen gibt es noch 2 andere Zustände, die die Rega beherrscht, aber die WebUI nicht.

Der erste wäre OPERATOR_NONE.

wenn ich eine SingleCondition auf Operator_NONE stelle, wird die bisherige Auswertung verworfen und das Teilergebnis ist VKE=true;

etwas kompliziert aber in einem Beispiel:

Code: Alles auswählen

O "TP1"
NONE "TP2"
U "TP3"
U "TP4"
heisst, TP1 und TP2 sind irrelevant für die Auswertung duch das None bei TP2 wird das Ergebnis der verknüpfung TP1 und TP2 verworfen und mit VKE=true mit U TP3 und U TP4 weitergemacht. bedeutet dass NON in TP2 disebelt quasi die Auswertung bis zu dem Punkt, wo NONE gesetzt wurde,

nett zu testzwecken von programmen, oder wenn mans kann, um programmteile dynamisch zu deaktivieren.
Zuletzt geändert von Black am 15.11.2020, 13:54, insgesamt 3-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 13:32

Das Operator XOR bei einer Singlecondition habe ich noch nicht stabil zu Ergebnissen bekommen, entweder sieht das die Rega nicht vor (war mal geplant, aber vergessen, das programmiertem gewechselt, budgetrahmen ausgeschöpft, das übliche so halt) oder mir feht da selber noch der Ansatz. Also OperatorType(3) ist stand jetzt nicht zu empfehlen.

part 1 liesse sich aber echt einfach umsetzen, vllt schlisst sich jerome ja mit mir mal kurz, er hat ja ein Händchen für WebUI patches und der negatePatch wurde ja auch entsprechend gut umgesetzt.

Part 2 mit Oeprator NONE wäre jetz nicht direkt Anfängertauglich (vllt mit der Kindersicherung kombinierbar), und bräuchte auch noch eine geänderte Darstellung, die wird zur zeit mit ? dargestellt

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Hütte
Beiträge: 746
Registriert: 08.02.2017, 11:08
Hat sich bedankt: 32 Mal
Danksagung erhalten: 75 Mal

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Hütte » 15.11.2020, 14:19

@Black,

nun mal zum spannenden Teil aus deinem Beispiel. Was passiert wenn das ODER zwischen der zweiten und dritten Bedingung sitzt? Ist das Ergebnis dann wirklich (TP1 und TP2) oder (TP3 und TP4)? Sprich, die Rega arbeitet intern logisch korrekt ab? Oder verhaspelt sich die Rega da irgendwo?

Denn aktuell hat man ja nur eine "Klammerebene", um mehere Gruppen von Bedingungen zu gruppieren und diese Gruppen dann entweder nur noch per UND oder nur noch per ODER zu verknüpfen. Mehr Ebenen gibt es nicht und die Verknüpfung von Gruppen kann man auch nicht mixen.

Oder würde die Rega das auch hergeben? Also nicht nur innerhalb eine Gruppe ein logisch korrekter Mix aus UND und ODER, sondern auch z.B. (Gruppe A ODER Gruppe B) UND Gruppe C?

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 15:06

Nein streng von oben nach unten. So wie ichs auch in sos Schreibweise geschrieben habe

Für

Code: Alles auswählen

U T1
U T2
O
U T3
U T4
Brauchst du die zweite condition

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 15:27

Die Tests mit den logiken unter den conditions (deine blöcke) mache ich nachher noch...

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 17:10

@Hütte

folgendes kam beim zweiten test bei raus:
OT5.JPG

hier ist die darstellung der WebUi fälschlich, und zwar wird die bedingungsart der jeweiligen Condition UNTER die Kondition geschrieben. dies ist aber Murks, das gehört drüber (bei der ersten dann ausgeblendet)


geschrieben hate ich in SPS Notation:

Code: Alles auswählen

u(
U TP1
)
U(
U TP2
)
O(
U TP3
)
U(
U TP4
)
Zu sehen hier, hier habe ich im SDV die CndOperatorType () der Condition2 auf OR geändert

von der Logik her verhält es sich so wie man es erwartet (bzw von einer SPS her auch kennt)

Test1

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test2").State(1);      
Nov 15 16:55:27 homematic-ccu2 user.debug LOGGERNAME: [SONST TEIL ohne Trigger]

Die ersten UNDs ergeben false, durch TP3 belibt es false trotz oder und TP4 mit UND bleibt trotzdem VKE= false, also SONST Teil


test2

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(false);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(true);
dom.GetObject (ID_PROGRAMS).Get ("Test2").State(1);   
Nov 15 17:03:12 homematic-ccu2 user.debug LOGGERNAME: [DANN TEIL ohne Trigger]

stimmt auch, TP1 und TP2 ergibt true, TP3 verodert ist immer noch true und TP4 wieder und ergebt VKE=true, also den Dann Teil

Test3

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP1").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP2").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP3").State(true);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("TP4").State(false);
dom.GetObject (ID_PROGRAMS).Get ("Test2").State(1); 
Nov 15 17:05:22 homematic-ccu2 user.debug LOGGERNAME: [SONST TEIL ohne Trigger]

stimmt auch, TP1 und TP2 ergibt true, TP3 verodert ist immer noch true und TP4 wieder und ergebt VKE=flase, da das letzte UND mit TP4=false auch false ergibt, , also den Sonst Teil


Ingesamt auch eine Interessante verknüpfung, hier müsste aber die Position in der WebUI angefasst werden.


Black
Dateianhänge
OT6.JPG
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Hütte
Beiträge: 746
Registriert: 08.02.2017, 11:08
Hat sich bedankt: 32 Mal
Danksagung erhalten: 75 Mal

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Hütte » 15.11.2020, 18:18

@Black

Der Satz mit der stregen Abarbeitung von Oben nach Unten durch die Rega in deinem ersten Betrag war mir durch die Lappen gegangen.

Insgesamt eine interessante Möglichkeit, die sich da anbietet. Ist allerdings auch etwas gewöhnungsbedürftig, da hier straight von oben nach unten abgearbeitet wird, also A wird mit B veknüpft, das Ergebnis dann mit C und das neue Ergebnis mit D, u.s.w.

Und wahrscheinlich ist dies der Grund, warum das von eQ-3 nur so in der WebUI umgesetzt wurde, wie es jetzt ist. Die aktuelle Umsetzung kann sich dadurch ganz einfach an die boolsche Logik halten. Entweder sind innerhalb eines Blockes (Klammer) alle Bedingungen mit UND oder mit ODER verknüpft. Da ist es nicht notwendig, zu berücksichtigen, dass ein UND eine höhere Priorität als ein ODER hat. Es gibt nur das Eine oder das Andere - fertig, aus, vorbei. Und dassselbe gilt auch für die Verknüpfung der Blöcke.

Denn mit der neuen Möglichkeit, die sich hier auftut, muss man etwas mehr Gehirnschmalz beim Entwurf seiner Bedingungen reinstecken. Und um da wohl Verwirrungen bei den Nutzern zu vermeiden, hat sich eQ-3 wahrscheinlich für die einfache Variante entschieden.

Und wenn man jetzt noch entweder Einzelbedingungen oder Blöcke kopieren/verschieben könnte, dann spart man auch noch ungemein Zeit, wenn man ein Programm anpassen muss, weil es entweder so noch nicht passt oder neue Prüfungen/Trigger hinzukommen.

Vielen Dank schon einmal für deine ganze Arbeit.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von jp112sdl » 15.11.2020, 18:57

Ich seh hier überhaupt nicht durch 8)
Black hat geschrieben:
15.11.2020, 13:32
part 1 liesse sich aber echt einfach umsetzen, vllt schlisst sich jerome ja mit mir mal kurz, er hat ja ein Händchen für WebUI patches und der negatePatch wurde ja auch entsprechend gut umgesetzt.
Was wäre denn Part1? Was soll in der WebUI dafür anders sein als bisher?
Black hat geschrieben:
15.11.2020, 13:32
mit Oeprator NONE wäre jetz nicht direkt Anfängertauglich (vllt mit der Kindersicherung kombinierbar), und bräuchte auch noch eine geänderte Darstellung, die wird zur zeit mit ? dargestellt
Hat das im Leben der CCU schon mal jemand vermisst?
Ich sehe zwar insgesamt ein "Proof of Concept", aber gibt es einen Nutzen für die breite Masse?

Es gibt durch den "NegateCondition" Patch schon den "unschönen Nebeneffekt", dass ein Nutzer der von RM zurück zur Original-FW geht, das dann nie wieder ändern kann, sofern er ein RM-Backup einspielt.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: ISSUE: Änderbarkeit der Logikverknüpfung in der WebUI

Beitrag von Black » 15.11.2020, 19:34

jp112sdl hat geschrieben:
15.11.2020, 18:57
Was wäre denn Part1? Was soll in der WebUI dafür anders sein als bisher?
In einer Singlecondition nicht die Darstellungen AND / OR Fix und unveränderbar, sondern als menü, wo sich And bzw OR einstellen lässt.
jp112sdl hat geschrieben:
15.11.2020, 18:57
Black hat geschrieben:
15.11.2020, 13:32
mit Opeprator NONE wäre jetz nicht direkt Anfängertauglich (vllt mit der Kindersicherung kombinierbar), und bräuchte auch noch eine geänderte Darstellung, die wird zur zeit mit ? dargestellt
Hat das im Leben der CCU schon mal jemand vermisst?
Ich sehe zwar insgesamt ein "Proof of Concept", aber gibt es einen Nutzen für die breite Masse?
Das wäre verzichtbar für die breite Masse, wer es haben möchte, kann es entweder per Script von Hand setzen zum debuggen bzw in meinem SDV
jp112sdl hat geschrieben:
15.11.2020, 18:57
Es gibt durch den "NegateCondition" Patch schon den "unschönen Nebeneffekt", dass ein Nutzer der von RM zurück zur Original-FW geht, das dann nie wieder ändern kann, sofern er ein RM-Backup einspielt.
Es geht schon zu ändern, ein Scriptbefehl... Nur passt dann die Logik.. auch logisch :mrgreen: nicht mehr. Aber EQ3 soll ja irgendwann auch mal nachziehen bei den Entwicklungen... eigentlich, vllt, In schā' Allāh
Hütte hat geschrieben:
15.11.2020, 18:18
Insgesamt eine interessante Möglichkeit, die sich da anbietet. Ist allerdings auch etwas gewöhnungsbedürftig, da hier straight von oben nach unten abgearbeitet wird, also A wird mit B veknüpft, das Ergebnis dann mit C und das neue Ergebnis mit D, u.s.w.
Eine SPS arbeitet in AWL aber genauso... Aus dem grunde hab ich das ja äquivalent auch in SPS-AWL geschrieben als beispiel
Hütte hat geschrieben:
15.11.2020, 18:18
Denn mit der neuen Möglichkeit, die sich hier auftut, muss man etwas mehr Gehirnschmalz beim Entwurf seiner Bedingungen reinstecken. Und um da wohl Verwirrungen bei den Nutzern zu vermeiden, hat sich eQ-3 wahrscheinlich für die einfache Variante entschieden.
So schwieruig ist das nicht ^^
Hütte hat geschrieben:
15.11.2020, 18:18
Und wenn man jetzt noch entweder Einzelbedingungen oder Blöcke kopieren/verschieben könnte, dann spart man auch noch ungemein Zeit, wenn man ein Programm anpassen muss, weil es entweder so noch nicht passt oder neue Prüfungen/Trigger hinzukommen.
Verschieben innerhalb des Programmes und kopieren von einem Anderen Programm wird beides gehen... Der programmetchnische Unterbau ist klar auf Regaseite, ich bin mir auf der SDV Seite noch nicht so klar. Es Tendiert zu einem Extra reiter mit 2 * baumstruktur für Quell und Arbeitsprogramm und Infofenster.. Aber ich und der enge testerkreis diskuttieren da noch ein paar Ansätze. Weil mittendrin umwerfen möcht ich auch net, dafür ist meine freizeit zu rar.
Hütte hat geschrieben:
15.11.2020, 18:18
Vielen Dank schon einmal für deine ganze Arbeit.
muchas gracias


Black
Zuletzt geändert von Black am 15.11.2020, 21:40, insgesamt 1-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

Zurück zu „RaspberryMatic“