SDV V5.03.04G - Das Entwicklungs und Diagnose Tool für Homematic CCUs

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

mbhomie007
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

Beitrag von mbhomie007 » 14.04.2023, 09:51

Vielen Dank für euren schnellen Support! :mrgreen:

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

Benutzeravatar
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

Beitrag von Black » 22.04.2023, 15:34

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

RolandT
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

Beitrag von RolandT » 24.04.2023, 18:50

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

nimmnenkeks
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

Beitrag von nimmnenkeks » 24.04.2023, 20:24

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 :mrgreen:
fällt bei UI Programmen ab ca. 30. „Sonst, wenn“ nicht mehr ganz sooo leicht :lol:

Das mit der SPS-Anlehnung und der entsprechenden Ausgaben macht die Nummer IMHO noch effizienter

MichaelN
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

Beitrag von MichaelN » 24.04.2023, 22:17

nimmnenkeks hat geschrieben:
24.04.2023, 20:24
Man kann nach Blacks Veröffentlichung endlich die ganzen „Fitzelprogramme“ in ein einziges packen.
Und das sich die Trigger der ganzen SONST-WENN gegenseitig beeinflussen kann der SDV dann auch "beheben"?

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 +++

nimmnenkeks
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

Beitrag von nimmnenkeks » 25.04.2023, 11:53

MichaelN hat geschrieben:
24.04.2023, 22:17
nimmnenkeks hat geschrieben:
24.04.2023, 20:24
Man kann nach Blacks Veröffentlichung endlich die ganzen „Fitzelprogramme“ in ein einziges packen.
Und das sich die Trigger der ganzen SONST-WENN gegenseitig beeinflussen kann der SDV dann auch "beheben"?
Es gibt ja auch andere Programmaufbaumöglichkeiten (bei denen man einigermaßen die Übersicht bei Mamutprogrammen, behält),
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

Benutzeravatar
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

Beitrag von Black » 25.04.2023, 21:27

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

RolandT
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

Beitrag von RolandT » 29.04.2023, 15:26

Hi Black,

ich leake jetzt mal deine Testversion :D :D . 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.

Move.PNG

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.

Move2.png

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)

nimmnenkeks
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

Beitrag von nimmnenkeks » 05.05.2023, 13:32

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

Benutzeravatar
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

Beitrag von Black » 05.05.2023, 18:54

RolandT hat geschrieben:
29.04.2023, 15:26
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 ?
Hi Roland, das hat etwas damit zu tun, wie die WebUI mit Ihren IDs um sich wirft, wenn man Programme verändert.
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.
RolandT hat geschrieben:
29.04.2023, 15:26
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.
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.
Er lief schon in der Version, die ich Mittwoch mit Keks durchgegangen bin
nimmnenkeks hat geschrieben:
05.05.2023, 13:32
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.
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 haben
nimmnenkeks hat geschrieben:
05.05.2023, 13:32
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).
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.
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 „HomeMatic Tipps & Tricks - keine Fragen!“