SDV V5.03.04G - Das Entwicklungs und Diagnose Tool für Homematic CCUs
Moderator: Co-Administratoren
-
- Beiträge: 3035
- Registriert: 28.01.2016, 18:06
- System: CCU
- Wohnort: Hürth
- Hat sich bedankt: 16 Mal
- Danksagung erhalten: 274 Mal
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
Ausgewertete Programme: 155
Auswertung ConditionsTypes
18 ivtObjectId
19 ivtSystemId
16 ivtInteger
24 ivtCurrentDate
20 ivtString
---------------
Auswertung DestinationTypes
19 ivtSystemId
16 ivtInteger
20 ivtString
18 ivtObjectId
---------------
Die Ausgabe davon bitte posten, danke für deine Mithilfe, Black
Auswertung ConditionsTypes
18 ivtObjectId
19 ivtSystemId
16 ivtInteger
24 ivtCurrentDate
20 ivtString
---------------
Auswertung DestinationTypes
19 ivtSystemId
16 ivtInteger
20 ivtString
18 ivtObjectId
---------------
Die Ausgabe davon bitte posten, danke für deine Mithilfe, Black
-
- Beiträge: 76
- Registriert: 15.06.2011, 11:26
- Hat sich bedankt: 36 Mal
- Danksagung erhalten: 8 Mal
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
Ausgewertete Programme: 50
Auswertung ConditionsTypes
19 ivtSystemId
16 ivtInteger
24 ivtCurrentDate
18 ivtObjectId
20 ivtString
---------------
Auswertung DestinationTypes
20 ivtString
18 ivtObjectId
19 ivtSystemId
16 ivtInteger
---------------
Auswertung ConditionsTypes
19 ivtSystemId
16 ivtInteger
24 ivtCurrentDate
18 ivtObjectId
20 ivtString
---------------
Auswertung DestinationTypes
20 ivtString
18 ivtObjectId
19 ivtSystemId
16 ivtInteger
---------------
Viele Grüße
Thilo - aka finerider
Thilo - aka finerider
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
Danke, das Bestätigt das, was ich auch bei mir beobachtet habe, unter welchen Bedingungen ich eine ID-Substitution machen muss. Dann kann ich dass nun in den getter der entsprechenden property packen.
Thnx, Black
Thnx, 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
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
sooo... Dank eines vernünftigen RAD ist auch mal eben schnell eine Testumgebung geschrieben. Das Ergebnis ist nun also das, was ich haben wollte:
Aus dem JSON, dessen Generierung auch einige hier mit überprüft haben, danke dafür nochmal , macht dieses kleine testprogramm, was nur als schnelltest für die Classes dient, ein HMScript, welches wieder ein Programm erzeugt, das dem entspricht, aus dem das JSON erzeugt wurde,
Also ein Backup Restore, allerdings als 2-pass aufgebaut. ID´s werden substituiert in Namen / Seriennummern, ebenso wird am Anfang überprüft, ob alle benötigen Kanäle, Devices, Datenpunkte, Systemvariablen auf der CCU vorhanden sind, wo das restore gestartet werden soll.
Bevor ich die Classes nun in den SDV einbaue werd ich vorher noch bisschen testen.
Die reine Laufzeit für
- Parsen des JSON Strings (ca 6000 zeichen) in ein JSON Object
- Erzeugen des Programmcodes Test auf Vorhandensein der Datenpunkte / Variablen inkl Substitution der ID´s im programmtext
- stringQuoting (was ein Kotz)
dauerte auf einer gemütlich Laufenden I5-NUC Windows Maschine: 2.9 ms. (gemessen in einer for 1 to 1000 generierschleife ).Der Compilercode ist also etwas schneller als wenn ich ein Generierscript auf der CCU laufen lassen würde. ^^
so, nu ist aber Schicht, nächste woche gehts weiter
Black
Aus dem JSON, dessen Generierung auch einige hier mit überprüft haben, danke dafür nochmal , macht dieses kleine testprogramm, was nur als schnelltest für die Classes dient, ein HMScript, welches wieder ein Programm erzeugt, das dem entspricht, aus dem das JSON erzeugt wurde,
Also ein Backup Restore, allerdings als 2-pass aufgebaut. ID´s werden substituiert in Namen / Seriennummern, ebenso wird am Anfang überprüft, ob alle benötigen Kanäle, Devices, Datenpunkte, Systemvariablen auf der CCU vorhanden sind, wo das restore gestartet werden soll.
Bevor ich die Classes nun in den SDV einbaue werd ich vorher noch bisschen testen.
Die reine Laufzeit für
- Parsen des JSON Strings (ca 6000 zeichen) in ein JSON Object
- Erzeugen des Programmcodes Test auf Vorhandensein der Datenpunkte / Variablen inkl Substitution der ID´s im programmtext
- stringQuoting (was ein Kotz)
dauerte auf einer gemütlich Laufenden I5-NUC Windows Maschine: 2.9 ms. (gemessen in einer for 1 to 1000 generierschleife ).Der Compilercode ist also etwas schneller als wenn ich ein Generierscript auf der CCU laufen lassen würde. ^^
so, nu ist aber Schicht, nächste woche gehts weiter
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: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
Könnte man diese Backupdatei so manipulieren, das nun ein anderes Gerät verwendet wird? Also z.B. Statt HM-LC-Sw2PBU-FM den Selbstbauaktor HB-LC-Sw2PBU-FM? Das würde ja den Austausch eines Aktors zu einem anderen deutlich vereinfachen, da die Tauschfunktion ja nur denselben Typ anbietet, selbst wenn ein anderer Typ fast gleich wäre.Black hat geschrieben: ↑28.04.2019, 19:01....Das Backup ist komplett Ise-ID unabhängig, es wird vorher ein Code in dem restore Programm erzeugt, der verifiziert das die benötigten geräte beim einspielen des Backups vorhanden sind (SerNr und HSSType) ebenso die benötigten Systemvariablen (name und ValueType müssen passen). zeitmodule erzeugt der SDV selber.....
Black
Gruß Carsten
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
joa, es wird gehen... und zwar über den Umweg des erstellten und abgespeicherten JSONs.
das Format (hat sich gegenüber der ersten version noch etwas geändert) sieht so aus:
Das ist im übrigen mein Test und Spieleprogramm. diese Datei wird als optionaler Zusatz zu dem HM Script erzeugt werden können und auch gespeichert werden können. Mit einem JSOn Editor, ich benutze immer diesen Online Editor https://jsoneditoronline.org, kannst du im linken Fenster den JSOn String eingeben und durch klick auf den Pfeil rechts parsen lassen. Für dich zum manuellen Manipulieren interessant ist der Reiter Datapoints, dort ist gelistet ist der Bezug zwischen den verwendetetn IseIDs und den tatsächlichen Systemvariablen, Kanälen, Geräten.
In diesem Beispiel z.B. ein Türkontakt.
Änderungen sollten und dürfen nur im Bereich Datapoints gemacht werden, die ID DARF NICHT geändert werden im JSON, darüber substituiert dann der SDV im pass2 die richtigen Zugriffe für das HMScript.
Damit gehen folgende Manipulationen:
1. ich habe ein Ersatzgerät, gleicher Typ, logischer weise andere Seriennummer, Device und Kanäle haben dann aber gleiche Namen wie das Altgerät.
dann
- Suchen unter Datapoints, bis ich den Datenpunkt dort in dem Array gefunden hab. Dort könnte ich nun wild die Seriennumer tauschen und gut ist.
- Zu dem Datenpunkt gibts aber auch einen Kanal. in dem Bild da drüber. auch hier kontrollieren, hat er den gleichen Namen, gut.
- Aus dem Teil nun wirder durch Pfeil links string generieren. diesen kopieren, abspeichern. im SDV dann JSON import und er generiert daraus ein programm, welches das neue Gerät beinhaltet. (DatenTyp des Datenpunktes müssen natürlich passen, sonst weist er beim restore ab.
2. Ich habe ein HM Drehgriffkontakt und möchte den gerne gegen ein HM-IP Drehgriffkontakt tauschen.
auch hier das gleiche Spiel
suchen der Datenpoints, korrektes Angeben des Namens, (Der HSSTYP mus natürlich auch passen, aus :0.Unreach ein :1. Level zu machen geht zwar ist aber ein garant für Müll.
WICHTIG: das geht auch bei Heizungs, Temperatursensoren etc, dabei aber auf jeden fall kontrollieren, dass der richtige Kanal mitgezogen wird, den dann auch ändern. es geht nicht bei: ich hätte 2 datenpunkte, die in einem Kanal liegen. das neue gerät hätte die beiden Datenpunkte, aber in 2 untershciedlichen Kanälen. auch dies könnte man verbiegen, das wird dann aber so kompliziert, das die Erfolgsaussichten gering sind)
3. Diese Manipulationen sind nicht Anfängertauglich. Es wird zwar sehr vieles abgefangen, trotzdem ist es möglich, ein Programm erzeugen zu lassen, was definitv nur Müll macht. Aus dem Grunde wird JSON Import auf mindestens Level 6 liegen. Man sollte dabei definitiv wissen was man tut
Im übrigen kurze Statusmeldung, die bisher noch in dem Externen Testprogramm verwendete pass2-Class kann ein funktionierendes programm aus einem JSON in der CCU anlegen. Backup Restore funktioniert also schonmal.
Black
das Format (hat sich gegenüber der ersten version noch etwas geändert) sieht so aus:
Das ist im übrigen mein Test und Spieleprogramm. diese Datei wird als optionaler Zusatz zu dem HM Script erzeugt werden können und auch gespeichert werden können. Mit einem JSOn Editor, ich benutze immer diesen Online Editor https://jsoneditoronline.org, kannst du im linken Fenster den JSOn String eingeben und durch klick auf den Pfeil rechts parsen lassen. Für dich zum manuellen Manipulieren interessant ist der Reiter Datapoints, dort ist gelistet ist der Bezug zwischen den verwendetetn IseIDs und den tatsächlichen Systemvariablen, Kanälen, Geräten.
In diesem Beispiel z.B. ein Türkontakt.
Änderungen sollten und dürfen nur im Bereich Datapoints gemacht werden, die ID DARF NICHT geändert werden im JSON, darüber substituiert dann der SDV im pass2 die richtigen Zugriffe für das HMScript.
Damit gehen folgende Manipulationen:
1. ich habe ein Ersatzgerät, gleicher Typ, logischer weise andere Seriennummer, Device und Kanäle haben dann aber gleiche Namen wie das Altgerät.
dann
- Suchen unter Datapoints, bis ich den Datenpunkt dort in dem Array gefunden hab. Dort könnte ich nun wild die Seriennumer tauschen und gut ist.
- Zu dem Datenpunkt gibts aber auch einen Kanal. in dem Bild da drüber. auch hier kontrollieren, hat er den gleichen Namen, gut.
- Aus dem Teil nun wirder durch Pfeil links string generieren. diesen kopieren, abspeichern. im SDV dann JSON import und er generiert daraus ein programm, welches das neue Gerät beinhaltet. (DatenTyp des Datenpunktes müssen natürlich passen, sonst weist er beim restore ab.
2. Ich habe ein HM Drehgriffkontakt und möchte den gerne gegen ein HM-IP Drehgriffkontakt tauschen.
auch hier das gleiche Spiel
suchen der Datenpoints, korrektes Angeben des Namens, (Der HSSTYP mus natürlich auch passen, aus :0.Unreach ein :1. Level zu machen geht zwar ist aber ein garant für Müll.
WICHTIG: das geht auch bei Heizungs, Temperatursensoren etc, dabei aber auf jeden fall kontrollieren, dass der richtige Kanal mitgezogen wird, den dann auch ändern. es geht nicht bei: ich hätte 2 datenpunkte, die in einem Kanal liegen. das neue gerät hätte die beiden Datenpunkte, aber in 2 untershciedlichen Kanälen. auch dies könnte man verbiegen, das wird dann aber so kompliziert, das die Erfolgsaussichten gering sind)
3. Diese Manipulationen sind nicht Anfängertauglich. Es wird zwar sehr vieles abgefangen, trotzdem ist es möglich, ein Programm erzeugen zu lassen, was definitv nur Müll macht. Aus dem Grunde wird JSON Import auf mindestens Level 6 liegen. Man sollte dabei definitiv wissen was man tut
Im übrigen kurze Statusmeldung, die bisher noch in dem Externen Testprogramm verwendete pass2-Class kann ein funktionierendes programm aus einem JSON in der CCU anlegen. Backup Restore funktioniert also schonmal.
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: 3035
- Registriert: 28.01.2016, 18:06
- System: CCU
- Wohnort: Hürth
- Hat sich bedankt: 16 Mal
- Danksagung erhalten: 274 Mal
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
Hi!
Nachdem ich das zuvor abgelernte Device wieder angelernt habe, hat es dieselben IDs bekommen, die es vorher schon hatte
Gruß,
Gerti
Habe ich heute mal probiert, geht nichtBlack hat geschrieben: ↑03.05.2019, 21:44@gerti
so eine brachial aktion verspricht nix gutes. natürlich kann man bei CreateObject als dritten Parameter die ID mitgeben, wo es angelegt werden soll.
aber das gesamte interne genöle der Devices dann händisch zusammenzubasteln ?
da würde ich eher liste der programme bilden, die das Device verwendet. von denen dann backup herstellen. (wird der SDV bald können).
dann das Device löschen. neu anlegen...
Black
Nachdem ich das zuvor abgelernte Device wieder angelernt habe, hat es dieselben IDs bekommen, die es vorher schon hatte
Gruß,
Gerti
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
dann ärger ihn mal:
schreibe dir die IDs von 2 oder 3 Kanälen des Devices auf.
lösche das Device
erzeuge über Script 3 Systemvariablen, die auf genau diesen Adressen liegen
dazu
object oSVs = dom.GetObject (ID_SYSTEM_VARIABLES);
object oID= dom.CreateObject (OT_VARDP,"Blockade1","ID des Kanales, den ich belegen will");
oSVs.Add (oID.ID() );
object oID= dom.CreateObject (OT_VARDP,"Blockade2","ID des Kanales, den ich belegen will");
oSVs.Add (oID.ID() );
object oID= dom.CreateObject (OT_VARDP,"Blockade3","ID des Kanales, den ich belegen will");
oSVs.Add (oID.ID() );
vorher backup machen natürlich, danach mal versuchen gerät neu anzulernen, das sollte nun ja neue Nummern bekommen, da ja die Nummern belegt sind von vorher.
wenn geklappt hat, im SDV die 3 sysvars wieder löschen
wenn nicht, bakcup zurückspielen ^^
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
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SDV V3.08.01B Scripterstellung und Objektinspektor / Changer CCU/RM
so ich habe mein Konzept nochmal überdacht auch im Hinblick auf die möglichkeit, in einem vom SDV erstellten Backup Programm händisch und möglichst einfach manipulationen vornehmen zu können (Im Hinblick auf Geräte tauschen, oder Namen von Systemvariablen tauschen) Damit wäre ein WebUi Programm austausch auch zwischen Nutzern möglich.Bratmaxe hat geschrieben: ↑06.05.2019, 07:57
Könnte man diese Backupdatei so manipulieren, das nun ein anderes Gerät verwendet wird? Also z.B. Statt HM-LC-Sw2PBU-FM den Selbstbauaktor HB-LC-Sw2PBU-FM? Das würde ja den Austausch eines Aktors zu einem anderen deutlich vereinfachen, da die Tauschfunktion ja nur denselben Typ anbietet, selbst wenn ein anderer Typ fast gleich wäre.
Es gibt ja mehrere Ansätze:
1. eins zu eins mit festen IDs arbeiten. Für den Programmierer die einfachste Lösung, Praktisch bedeutet das: nicht für Systemumzug zu gebrauchen, da dort auch bei gleichem gerät mit gleicher Seriennummer eine andere ID vergeben worden sein kann (bzw aller höchster wahrscheinlichkeit nach auch ist).
2. mit substitierten , von SDV in den jeweiligen Befehl eingebauten symbolischen Adressen (Syvarname, Kanalname, Datenpunktname)
mittlerer Aufwand für den programmierer, bei händischer Manipulation muss im gazen programm die einträge vertauscht werden.
Hatte ich schon laufen ^^
3. auch hier wieder substituiert, aber vom SDV in den jeweiligen Befehl eingebauten Symbolischen Adressen als aus bezug aus einer Adressliste, die am Anfang vom SDv erzeugt angelegt wurde.
der Programmierer kriegt dabei das kotzen.
Bei einer Manipulaton z.b. müsste bei einem Roladenaktor oder einem Thermostat in der KanalListe nur der symbolische Name geändert werden. Beim zusammensetzen des Programmes greift der SDV immer das richtige Element aus der Liste (aber wehe jemand verändert die Listenreihefolge !!)
Ich neige mittlerweile zu Version 3:
so sähe die ListenVariable der Kanäle aus:
Code: Alles auswählen
string sCHNList= "DI_ATELIER_TUER:1\tHmIP-BSL 001A58A9A2801C:6\tHmIP-BSL 001A58A9A2801C:12";
Code: Alles auswählen
oSCND.ConditionChannel (channels.Get ((sCHNList.StrValueByIndex ("\t",0))).ID () ); !- 0. Element aus Channellist [DI_ATELIER_TUER:1]
oSCND.LeftValType(18);
oSCND.LeftVal (channels.Get ((sCHNList.StrValueByIndex ("\t",0))).ID ()).DPByHssDP ("STATE").ID () ); !- 0. Element aus Channellist [DI_ATELIER_TUER:1]
Es wird eine eine quell bzw Ziel ID zerrupft, was es ist und demendsprechend dann eine symbolische Adressierung zusammengesetzt
Ganz zu Anfang läuft dann über die Listen noch ein Test auf Vorhanden und richtiger Typ bzw ValueType.
Ist es das was dir so vorstellst ? die Idee ist gar nicht mal so übel..
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