SDV V5.03.04G - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Moderator: Co-Administratoren
-
- Beiträge: 347
- Registriert: 13.02.2018, 19:23
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 127 Mal
- Danksagung erhalten: 20 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Vielen Dank für euren schnellen Support!
Habe die SVs durch den SDV automatisch korrigieren lassen.
Sieht alles gut aus!
Habe die SVs durch den SDV automatisch korrigieren lassen.
Sieht alles gut aus!
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul
- Black
- Beiträge: 5463
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 418 Mal
- Danksagung erhalten: 1069 Mal
- Kontaktdaten:
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Nach unserem letzten kleinen SDV-Stammtisch haben wir nun die kommende Roadmap entworfen. Was ich nun final einbauen werde ist die schon rudimentär laufende Programmeditiermöglichkeit von WebUI Programmen (Alles bisher sehr rudimentär, das ändert sich jetzt aber)
Dabei als erstes erstmall das, was die WebUI nicht kann-.
Dazu die Kleine Umfrage, damit ich ein bisschen die Wertigkeiten auch von anderen abschätzen kann und damit etwas Entscheidungsgrundlage habe, welche FUnktionen ich vllt etwas anwenderfreunlicher einbauen werde.
Black
Dabei als erstes erstmall das, was die WebUI nicht kann-.
Dazu die Kleine Umfrage, damit ich ein bisschen die Wertigkeiten auch von anderen abschätzen kann und damit etwas Entscheidungsgrundlage habe, welche FUnktionen ich vllt etwas anwenderfreunlicher einbauen werde.
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
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
-
- Beiträge: 76
- Registriert: 24.07.2020, 10:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 36 Mal
- Danksagung erhalten: 41 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Hi Black,
das liest sich ja wie ein wahrer Traum, wenn das alles auch nur annähernd so funktioniert wie ich mir das beim Lesen so vorstelle.
Dann wären ja die Zeiten endgültig vorbei, das man ein Programm neuschreiben muss, nur weil man die Reihenfolge von Regeln ändern möchte oder mittendrin eine Regel rausnehmen oder einfügen möchte.
Ich bin gespannt.
Mach lieber erstmal eine funktionierende Version mit den pure Features, die die WebUI nicht hat, den Optischen Schnickschnack oder Bedien-Gadgets kannst du mit der Zeit immer noch nachschieben.
Roland
das liest sich ja wie ein wahrer Traum, wenn das alles auch nur annähernd so funktioniert wie ich mir das beim Lesen so vorstelle.
Dann wären ja die Zeiten endgültig vorbei, das man ein Programm neuschreiben muss, nur weil man die Reihenfolge von Regeln ändern möchte oder mittendrin eine Regel rausnehmen oder einfügen möchte.
Ich bin gespannt.
Mach lieber erstmal eine funktionierende Version mit den pure Features, die die WebUI nicht hat, den Optischen Schnickschnack oder Bedien-Gadgets kannst du mit der Zeit immer noch nachschieben.
Roland
-
- Beiträge: 453
- Registriert: 30.11.2016, 20:24
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 19 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Man kann nach Blacks Veröffentlichung endlich die ganzen „Fitzelprogramme“ in ein einziges packen.
Kommt man auf weitere „komische Ideen“, testet diese in dediziertem Programm und bei „funst“, einfach das Hauptprogramm um die Teile des „neuen Programms“ erweitern.
Durch die Kommentarfunktion(en) und die Suche/Auflistung? bleibt ebenfalls die Übersicht erhalten
fällt bei UI Programmen ab ca. 30. „Sonst, wenn“ nicht mehr ganz sooo leicht
Das mit der SPS-Anlehnung und der entsprechenden Ausgaben macht die Nummer IMHO noch effizienter
Kommt man auf weitere „komische Ideen“, testet diese in dediziertem Programm und bei „funst“, einfach das Hauptprogramm um die Teile des „neuen Programms“ erweitern.
Durch die Kommentarfunktion(en) und die Suche/Auflistung? bleibt ebenfalls die Übersicht erhalten
fällt bei UI Programmen ab ca. 30. „Sonst, wenn“ nicht mehr ganz sooo leicht
Das mit der SPS-Anlehnung und der entsprechenden Ausgaben macht die Nummer IMHO noch effizienter
-
- Beiträge: 9561
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Und das sich die Trigger der ganzen SONST-WENN gegenseitig beeinflussen kann der SDV dann auch "beheben"?nimmnenkeks hat geschrieben: ↑24.04.2023, 20:24Man kann nach Blacks Veröffentlichung endlich die ganzen „Fitzelprogramme“ in ein einziges packen.
btw. kann das mal einer näher erläutern?
Freies Ändern der Logik innerhalb eines Bedingunsblockes (Also AWL Style einer SPS)
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 +++
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 +++
-
- Beiträge: 453
- Registriert: 30.11.2016, 20:24
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 19 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Es gibt ja auch andere Programmaufbaumöglichkeiten (bei denen man einigermaßen die Übersicht bei Mamutprogrammen, behält),MichaelN hat geschrieben: ↑24.04.2023, 22:17Und das sich die Trigger der ganzen SONST-WENN gegenseitig beeinflussen kann der SDV dann auch "beheben"?nimmnenkeks hat geschrieben: ↑24.04.2023, 20:24Man kann nach Blacks Veröffentlichung endlich die ganzen „Fitzelprogramme“ in ein einziges packen.
als die "übliche-Methode(n)".
In der Main Condition wird nur geprüft, ob das Programm überhaupt auslösen darf.
Die ganzen Trigger in das "erste" SONST-WENN (EXEC-Block) legen und Ruhe herrscht.
Mache ich seit Jahren so und funzt wunderbar.
Gerade bei Erweiterungen eines Programms um weitere komische Idee(n), einfach im EXEC-Block (1. SONST-WENN) den/die Trigger hinzufügen und ein/mehrere weiteres SONST-WENN's (für den/die neuen Trigger im EXEC-Block) am Ende "dran" hängen,
feddich.
Anleitung im Forum und nun BTT
- Black
- Beiträge: 5463
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 418 Mal
- Danksagung erhalten: 1069 Mal
- Kontaktdaten:
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
AWL ist eine Programmiersprache von Industrie SPSen.
Anweisungsliste
FInde ich persönlich übersichtlicher als den Fließtext der WebUI.
Also wird die Darstellugn im SDV ein aufgearbeitetes Programm in Listen/Baumstruktur sein.
Die Umfrage bildet auch so etwa die Priorität ab, die ich mir auch gesetzt habe. Ziel ist es, die DInge abzubilden, die die WebUI nicht kann und dieses so bearbeitbar zu gestalten, dass nicht nur ich das mit meiner krypischen Experimental Version dieses machen konnte)
Status:
An beliebiger (aber erlaubter) Stelle ein spezifisches Programmobjekt (Regel, Bedingungsblock, Bedingung, Anweisung) erzeugen: 90% done
An beliebiger (aber erlaubter) Stelle ein spezifisches Programmobjekt (Regel, Bedingungsblock, Bedingung, Anweisung) löschen : 90% done
Freies (aber erlaubtes) Verschieben jedes Programmobjektes innerhalb eines Programmes (über tasten 90% Done, DragDrop 40% done)
Kopieren von Programmteilen via Clipboard aus anderen Programmen / dem zu bearbeitenen Program (80% Done)
Kommentarfunktion zu jedem Programmobjekt (Welche maximale Längenbegrenzung, frei möchte ich nicht) (Strukur implementiert: 40% done)
Allgemein Zugänglichkeit der MainCondition ? (oder erst ab bestimmtem Level) Kann die WebUI nicht (ANwählbar gemacht, Struktur implementiert, 50% done)
Suchen nach Kommentaren (Kann die WebUI auch nicht) (Erstmal nach hinten geschoben 0 % done)
Editiermöglichkeiten der Programmobjekte (Ändern ohne die WebUI) Wenn kommt das erst im 2. Teil (EInfache Teile kommen im 1. Teil, 10% done)
Freies Ändern der Logik innerhalb eines Bedingungsblockes (Also AWL Style einer SPS) (Kommt definitiv 95% Done)
Gleichzeitiges Check und Change (quasi die PRG Objekte Prüfugen des SDV) (Wird beim Laden auf Pascal Ebene direkt mitgemacht, 30% Done)
ID sparsames Arbeiten (macht das ganze etwas aufwändiger aber effektiver)
Alle Operationen laufen im Speicher des PCs. Das Programm wird als Baumstruktur mit allen noch nötigen anderen Objekten ausgelesen, in einer Baumstruktur gespeichert und kann dort bearbeitet werden. Alle Bearbeitungsoperationen laufen nur im PC speicher
Es wird unterscheiden zwischen Struktur verändernden Operationen und Struktur belassenden Operationen.
1.Struktur belassende Opertionen verändern die ID Objekt Struktur des Programmes in der Rega nicht beim Schrreiben nicht.
2. Struktur ändernde Operationen verändern einmal beim Schreiben die ID Struktur, solange danach das Programm auch mehrfach hintereinander bearbeitet und verändert wird, werden keine weiteren IDs benötigt. Da wo möglich nimmt der SDV freie IDs aus ID Lücken .
Nächste Woche ist nochmal kleiner Interner Stammtisch mit Diskussion über UI und Handling.
Black
Anweisungsliste
FInde ich persönlich übersichtlicher als den Fließtext der WebUI.
Also wird die Darstellugn im SDV ein aufgearbeitetes Programm in Listen/Baumstruktur sein.
Die Umfrage bildet auch so etwa die Priorität ab, die ich mir auch gesetzt habe. Ziel ist es, die DInge abzubilden, die die WebUI nicht kann und dieses so bearbeitbar zu gestalten, dass nicht nur ich das mit meiner krypischen Experimental Version dieses machen konnte)
Status:
An beliebiger (aber erlaubter) Stelle ein spezifisches Programmobjekt (Regel, Bedingungsblock, Bedingung, Anweisung) erzeugen: 90% done
An beliebiger (aber erlaubter) Stelle ein spezifisches Programmobjekt (Regel, Bedingungsblock, Bedingung, Anweisung) löschen : 90% done
Freies (aber erlaubtes) Verschieben jedes Programmobjektes innerhalb eines Programmes (über tasten 90% Done, DragDrop 40% done)
Kopieren von Programmteilen via Clipboard aus anderen Programmen / dem zu bearbeitenen Program (80% Done)
Kommentarfunktion zu jedem Programmobjekt (Welche maximale Längenbegrenzung, frei möchte ich nicht) (Strukur implementiert: 40% done)
Allgemein Zugänglichkeit der MainCondition ? (oder erst ab bestimmtem Level) Kann die WebUI nicht (ANwählbar gemacht, Struktur implementiert, 50% done)
Suchen nach Kommentaren (Kann die WebUI auch nicht) (Erstmal nach hinten geschoben 0 % done)
Editiermöglichkeiten der Programmobjekte (Ändern ohne die WebUI) Wenn kommt das erst im 2. Teil (EInfache Teile kommen im 1. Teil, 10% done)
Freies Ändern der Logik innerhalb eines Bedingungsblockes (Also AWL Style einer SPS) (Kommt definitiv 95% Done)
Gleichzeitiges Check und Change (quasi die PRG Objekte Prüfugen des SDV) (Wird beim Laden auf Pascal Ebene direkt mitgemacht, 30% Done)
ID sparsames Arbeiten (macht das ganze etwas aufwändiger aber effektiver)
Alle Operationen laufen im Speicher des PCs. Das Programm wird als Baumstruktur mit allen noch nötigen anderen Objekten ausgelesen, in einer Baumstruktur gespeichert und kann dort bearbeitet werden. Alle Bearbeitungsoperationen laufen nur im PC speicher
Es wird unterscheiden zwischen Struktur verändernden Operationen und Struktur belassenden Operationen.
1.Struktur belassende Opertionen verändern die ID Objekt Struktur des Programmes in der Rega nicht beim Schrreiben nicht.
2. Struktur ändernde Operationen verändern einmal beim Schreiben die ID Struktur, solange danach das Programm auch mehrfach hintereinander bearbeitet und verändert wird, werden keine weiteren IDs benötigt. Da wo möglich nimmt der SDV freie IDs aus ID Lücken .
Nächste Woche ist nochmal kleiner Interner Stammtisch mit Diskussion über UI und Handling.
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
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
-
- Beiträge: 76
- Registriert: 24.07.2020, 10:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 36 Mal
- Danksagung erhalten: 41 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Hi Black,
ich leake jetzt mal deine Testversion . Ingesamt schaut das schon sehr stabil aus. Keine Abstürze, keine Memoryleaks.
Ist noch nicht vollständig, hattest du ja vorher schon gesagt.
DIe Kernfunktionen schieben, löschen, einfügen Drag Drop auch von Regeln gingen sauber. Wenn ich das richtig verstanden habe gehen bei Drag aus "Foreign-Programmen" nur Kopien, aus dem eigenen Workprogramm nur Verschieben. Über das Clipboard lief kopieren sauber.
Zeitmodule gingen auch, wie du angekündigt hast sucht dein Programm für Zeitmodule Regalücken.
Die Hints funktionierten, hier gings dir ja erstmal um die Funktion und korekte Erkennung wo in welchem Node und welcher Zeile er steht.
Erkläre mir aber bitte nochmal den Unterschied und die Auswirkungen von "Strukturänderung", "Strukturerweiterung" und "Werteänderung" Werteänderung denke ich ist wenn irgendein Wert wie Verknüpfungsart oder so sich geändert hat. Was bewirkt das dann beim Schreiben des Programmes bzw der Art des Schrreibens ?
Ich konnte an dem Programm rumändern, Reihenfolgen verschieben oder EInfügen
wie ich wollte, es lag immer brav an der gleichen Stelle am Ende der IDs, es wurden bei Änderungen keine Lücken erzeugt wie bei der WebUI. Die beiden anderen angekündigten Schreibmodi "Override as same" bzw "Override with extend" hattest ja noch nicht fertig bzw waren noch gesperrt.
Wunschliste von mir
Da du ja alles in dem Binärbaum hälst, wäre da da möglich, das du da zumindest eine einstufige Undo , vllt sogar Undo, Redo einbaust ?
Bei der WebUI löschen ist ja Objekt weg wenn du z.B löschst. Aber da du eh aus dem Speicher arbeitest, Wenn du den Arbeitsbaum gestackt hättest, wäre ja ein Undo bestimmt machbar.
DIe Funktionen, die du bisher für ändern implementiert hast sind echt klasse: EIne Stelle um die Logig auszuwählen, die passenden Methoden dahinter werden im Hintergrund geändert.
Auslöseart ändern , Retriggern und Verzögert um, wenn das sowie die Logik jetzt mal eben schnell änderbar wäre im Baum. reicht fürs erste. Der Rest wäre was für Step 2.
Der Ansatz jedenfalls wertet die Möglichkeiten einer CCU massiv auf, wenn das bei dir in dem neuen SDV eingebaut ist werd ich die WebUI wohl noch weniger benutzen.
Gruss Roland
(der von der Testversion schon ziemlich beindruckt ist)
ich leake jetzt mal deine Testversion . Ingesamt schaut das schon sehr stabil aus. Keine Abstürze, keine Memoryleaks.
Ist noch nicht vollständig, hattest du ja vorher schon gesagt.
DIe Kernfunktionen schieben, löschen, einfügen Drag Drop auch von Regeln gingen sauber. Wenn ich das richtig verstanden habe gehen bei Drag aus "Foreign-Programmen" nur Kopien, aus dem eigenen Workprogramm nur Verschieben. Über das Clipboard lief kopieren sauber.
Zeitmodule gingen auch, wie du angekündigt hast sucht dein Programm für Zeitmodule Regalücken.
Die Hints funktionierten, hier gings dir ja erstmal um die Funktion und korekte Erkennung wo in welchem Node und welcher Zeile er steht.
Erkläre mir aber bitte nochmal den Unterschied und die Auswirkungen von "Strukturänderung", "Strukturerweiterung" und "Werteänderung" Werteänderung denke ich ist wenn irgendein Wert wie Verknüpfungsart oder so sich geändert hat. Was bewirkt das dann beim Schreiben des Programmes bzw der Art des Schrreibens ?
Ich konnte an dem Programm rumändern, Reihenfolgen verschieben oder EInfügen
wie ich wollte, es lag immer brav an der gleichen Stelle am Ende der IDs, es wurden bei Änderungen keine Lücken erzeugt wie bei der WebUI. Die beiden anderen angekündigten Schreibmodi "Override as same" bzw "Override with extend" hattest ja noch nicht fertig bzw waren noch gesperrt.
Wunschliste von mir
Da du ja alles in dem Binärbaum hälst, wäre da da möglich, das du da zumindest eine einstufige Undo , vllt sogar Undo, Redo einbaust ?
Bei der WebUI löschen ist ja Objekt weg wenn du z.B löschst. Aber da du eh aus dem Speicher arbeitest, Wenn du den Arbeitsbaum gestackt hättest, wäre ja ein Undo bestimmt machbar.
DIe Funktionen, die du bisher für ändern implementiert hast sind echt klasse: EIne Stelle um die Logig auszuwählen, die passenden Methoden dahinter werden im Hintergrund geändert.
Auslöseart ändern , Retriggern und Verzögert um, wenn das sowie die Logik jetzt mal eben schnell änderbar wäre im Baum. reicht fürs erste. Der Rest wäre was für Step 2.
Der Ansatz jedenfalls wertet die Möglichkeiten einer CCU massiv auf, wenn das bei dir in dem neuen SDV eingebaut ist werd ich die WebUI wohl noch weniger benutzen.
Gruss Roland
(der von der Testversion schon ziemlich beindruckt ist)
-
- Beiträge: 453
- Registriert: 30.11.2016, 20:24
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 19 Mal
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Bei unserem letzten Treffen durfte ich mir Black's aktuelle Version in Aktion ansehen und wir haben über weitere Möglichkeiten gesprochen...
Der aktuelle Stand ist schon sehr beeindruckend!!!
So viele Dinge, die bisher einfach nicht möglich (zumindest mir nicht bekannt) waren, geschweige denn über die UI möglich sind.
RolandT's angesprochene Wunsch-Funktionen (Auslöseart, Retriggern, entsprechende Hints... ) Undo/Redo u.v.m. kommen, bzw. laufen schon.
Ebenso beeindruckend das von RolandT angesprochene ID-Handling, bei Änderung/Erweiterung von Programmen.
Wir sprachen auch über die Möglichkeit direkt eine "Programmvorlage" abzulegen, sodaß man die ID-Verschwendung bei einem neuen Programm (ID's über UI ja eher willkürlich) ebenfalls direkt das neue Programm aus Elementen bestehender Programme zusammenbauen kann.
Durch die Kommentarfunktion bleibt auch der Überblick bei Monsterprogrammen (die ja aus bisherigen Subprogrammen nun möglich sind) erhalten.
Als Schmakerl natürlich, die Möglichkeit der Änderung, der Main-Condition um z.B. Programme erst nach dem vollständigen Reboot aktiv werden zu lassen, ohne das ganze Geklicke in der UI (könnte man sich ggf. direkt in ein Vorlagenprogramm (s.o.) einbauen).
Gruß Keks
Der aktuelle Stand ist schon sehr beeindruckend!!!
So viele Dinge, die bisher einfach nicht möglich (zumindest mir nicht bekannt) waren, geschweige denn über die UI möglich sind.
RolandT's angesprochene Wunsch-Funktionen (Auslöseart, Retriggern, entsprechende Hints... ) Undo/Redo u.v.m. kommen, bzw. laufen schon.
Ebenso beeindruckend das von RolandT angesprochene ID-Handling, bei Änderung/Erweiterung von Programmen.
Wir sprachen auch über die Möglichkeit direkt eine "Programmvorlage" abzulegen, sodaß man die ID-Verschwendung bei einem neuen Programm (ID's über UI ja eher willkürlich) ebenfalls direkt das neue Programm aus Elementen bestehender Programme zusammenbauen kann.
Durch die Kommentarfunktion bleibt auch der Überblick bei Monsterprogrammen (die ja aus bisherigen Subprogrammen nun möglich sind) erhalten.
Als Schmakerl natürlich, die Möglichkeit der Änderung, der Main-Condition um z.B. Programme erst nach dem vollständigen Reboot aktiv werden zu lassen, ohne das ganze Geklicke in der UI (könnte man sich ggf. direkt in ein Vorlagenprogramm (s.o.) einbauen).
Gruß Keks
- Black
- Beiträge: 5463
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 418 Mal
- Danksagung erhalten: 1069 Mal
- Kontaktdaten:
Re: SDV V4.09.06J - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Hi Roland, das hat etwas damit zu tun, wie die WebUI mit Ihren IDs um sich wirft, wenn man Programme verändert.RolandT hat geschrieben: ↑29.04.2023, 15:26Erkläre mir aber bitte nochmal den Unterschied und die Auswirkungen von "Strukturänderung", "Strukturerweiterung" und "Werteänderung" Werteänderung denke ich ist wenn irgendein Wert wie Verknüpfungsart oder so sich geändert hat. Was bewirkt das dann beim Schreiben des Programmes bzw der Art des Schrreibens ?
XX sei das Ursprungsprogramm, YY das zu bearbeitenden WebUI Programm
XX
und wird XX bearbeitet, in der Rega liegen nun
XXYY
nun ändert man z.b. eine Verzögerungszeit, und speichert.
Das Bild sieht nun so aus
____XX
und will man die zeit nochmal ändern
____XXYY
und speichert wieder
________XX
(Das _ sind die dabei entstehenden rega Lücken (Annähernd passsend, real ist Objektanzahl -4) Ein Abspeichern erzeugt eine Lücke annähernd von 2 * (Anzahl Objekte pro Programm)
Vergleichbar mit der AUsdehlung des Universums (Die Menge der Materie, der IDs bleibt konstant, nur der Raum expandiert)
Dem setze ich mit den 3 (2 sind erstmal dann vorhanden) Strategien dagegen:
Overrride: Wurden nur Werte geändert, so kann das neue Programm identisch in die bestehende Struktur geschrieben werden. Dabei werden gar keine IDs verbraucht. Da die KOmpletten Strukturen im Speicher des PCs liegen, kann der SDV dann das Programm ausrechnen, was genau diese Änderungen beim Abspeichern erzeugen wird.
Das nächste sind dann:
Strukturänderung: (Das sidn DInge, die Die WebUI nicht beherrscht)
Der Strukturelle Aufbau eines Programmes wird durch Kopieren, Verschieben, Erzeugen oder Löschen von Regeln oder Sonstigen Programmelementen geändert. (Verschieben, Kopieren, Erzeugen, Löschen und Verschieben via DragDrop ist im übrigen fertig) Hierbei wird dann bei der Anlage: Das komplette alle Programm gelöscht, das neue Programm dann im oberen ID Bereich neu angelegt.
Änder ich nun nochmal etwas, auch wenn es STrukturen sind, erzeuge ich keine Lücken mehr, da der SDV die alten Programmrückstände restlos entsorgt, (damit sinkt wieder die oberste genutzte ID) und dann das komplette Programm aus seinem SPeicherbaum neu generiert.
Strukturänderung war das, was in deiner Testversion gelaufen ist, die funktioniert auch schon zuverlässig.
Joah, um deinen kleinen WUnsch hatte ich vorher eleganz einen Bogen gemacht. Vom Prinzip her geht es so wie du schreibst, im Hintergrund gibt es da aber im Hinblick auf ide Programmerzeugen / Struktur Strategie ein paar Spassbremsen. Da ich das aber auch als praktisch erachtet habe , hab ich ein paar fingerübungen gemacht und nun ist ein x-Stufiges Undo/Redo Implementiert, was auch die Strukturellen Belange beachtet. EIgentlich ist es nur durch den SPeicher (die HeapSize) begrenzt, ich habs erstmal auf 25 Stufen begrenzt.RolandT hat geschrieben: ↑29.04.2023, 15:26Wunschliste von mir
Da du ja alles in dem Binärbaum hälst, wäre da da möglich, das du da zumindest eine einstufige Undo , vllt sogar Undo, Redo einbaust ?
Bei der WebUI löschen ist ja Objekt weg wenn du z.B löschst. Aber da du eh aus dem Speicher arbeitest, Wenn du den Arbeitsbaum gestackt hättest, wäre ja ein Undo bestimmt machbar.
Er lief schon in der Version, die ich Mittwoch mit Keks durchgegangen bin
Joah, Damit gehen DInge, die die WebUI nun mal nicht beherrscht (und wo ich denke, dass sich sich dabei auch bedingt durch ihren Aufbau extrem schwertuen würde). Möglichkeiten das etwas vereinfacht anzugehen hab ich vor 3 Jahren schon mal in einem Issue geschrieben. Bekannterweise ohne Reaktion. Da ich allerdings auf diese Möglichkeiten nicht verzichten möchte, entstanden nun halt mein alternativer Ansatz. Das wird auch kein Proof of concept bleiben sondern es läuft ja schon, wie Roland und Keks schon getestet habennimmnenkeks hat geschrieben: ↑05.05.2023, 13:32Der aktuelle Stand ist schon sehr beeindruckend!!!
So viele Dinge, die bisher einfach nicht möglich (zumindest mir nicht bekannt) waren, geschweige denn über die UI möglich sind.
DIe Maincondition ermöglicht natürlich auch einige massiv Strukturelle Vereinfachungen beim AUfbau von WebUI Programmen. WIe ich vor längerer Zeit auch schon mal in einem Issue geschrieben habe, lassen sich damit die Ausführung von allen Regeln (AUCH DER SONST Regel !!) sperren.nimmnenkeks hat geschrieben: ↑05.05.2023, 13:32Als Schmakerl natürlich, die Möglichkeit der Änderung, der Main-Condition um z.B. Programme erst nach dem vollständigen Reboot aktiv werden zu lassen, ohne das ganze Geklicke in der UI (könnte man sich ggf. direkt in ein Vorlagenprogramm (s.o.) einbauen).
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
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