[GELÖST & ERLEDIGT] Script-Hilfe: Gegenseitiges setzen von SysVar's

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von dtp » 13.07.2020, 12:24

MichaelN hat geschrieben:
13.07.2020, 12:20
nein, die auslösende SysVar ist ja schon auf True gesetzt, sonst hätte das Progrmam gar nicht ausgelöst...
So ist es. 8)

Aber ich will ehrlich sein. Erst dein Hinweis hat mich auf die Idee gebracht. Daher gebe ich das Kompliment gerne zurück. :wink:
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MichaelN
Beiträge: 9684
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von MichaelN » 13.07.2020, 12:27

dtp hat geschrieben:
13.07.2020, 12:23
Bin nur noch nicht so ganz sicher, ob der Variablentyp für source eher var oder string sein sollte. Vermutlich geht's mit beidem. ;)
Lt. Skript-Doku ist .Name() vom Typ String (var geht natürlich immer)
LG, Michael.

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

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

Benutzeravatar
FBK2904
Beiträge: 454
Registriert: 22.03.2016, 17:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Bei Ludwigsburg
Hat sich bedankt: 80 Mal
Danksagung erhalten: 42 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von FBK2904 » 13.07.2020, 12:31

MichaelN hat geschrieben:
13.07.2020, 12:05
FBK2904 hat geschrieben:
12.07.2020, 19:12

Jetzt muss ich nur noch Michales Punkt "kommt die Schleife zum Trigger, diese SV auf true setzen" irgendwie umsetzen.

Code: Alles auswählen

!- ### SysVar-Auslöser finden ###

! *** Hier erste und letzte Taste definieren
integer min = 4;
integer max = 6;

string ausloeser = "???";
object src = dom.GetObject("$src$");
if (src){
string ausloeser = src.Name();
 dom.GetObject("TEST_SV_xyz0").State(ausloeser);
}
WriteLine ("Auslöser: "#ausloeser);

!- ### Auslöser auf True, alle anderen auf False setzen ###
string taste;
string sysvar;
foreach(taste,system.GenerateEnum(min,max))
{
 sysvar = "TEST_SV_xyz" + taste;
 if ( sysvar == ausloeser )
    {
    WriteLine (sysvar #": true");
    dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvar").State(true);
    } else {
    WriteLine (sysvar #": false");
    dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvar").State(false);
    }
}
ich habe den Code dabei etwas aufgeräumt...
BTW:
Wieso funktioniert das zerlegen von "ausloeser" so nicht :?:

Code: Alles auswählen

string name = src.Name();
boolean inhalt = src.Value();
Die Variablen "name" und "inhalt" sind (wohl) leer.
Nein, das muss funktionieren. Siehe meinen Code. Ich weiß nur nicht, was Du mit dem Inhalt willst, den habe ich aus dem Code eliminiert
Hi Michael,

erst einmal herzlichen Dank für deine Unterstützung und für's Script optimieren :D !
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])

Benutzeravatar
FBK2904
Beiträge: 454
Registriert: 22.03.2016, 17:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Bei Ludwigsburg
Hat sich bedankt: 80 Mal
Danksagung erhalten: 42 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von FBK2904 » 13.07.2020, 12:34

dtp hat geschrieben:
13.07.2020, 12:14
Na ja, ich hatte ja weiter oben eine mögliche Lösung gepostet, aber die willst du anscheinend nicht nutzen.

Da wird einfach abgefragt, welche Systemvariable auf true gesetzt wurde, um die anderen auf false zu setzen. Geht natürlich mit entsprechenden Änderungen auch für andere Binärwerte. Man muss also nicht alle Systemvariablen auf false setzen, um dann anschließend die auslösende wieder auf true zu setzen.
Doch, Doch ... hatte ich gesehen und auch getestet, aber bin nicht damit ganz klar gekommen :| .
Trotzdem meinen Dank dafür.
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])

Benutzeravatar
FBK2904
Beiträge: 454
Registriert: 22.03.2016, 17:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Bei Ludwigsburg
Hat sich bedankt: 80 Mal
Danksagung erhalten: 42 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von FBK2904 » 13.07.2020, 12:37

@ ALL
Ihr könnt aufhören weiter zu grübeln und habe die Lösung meines Problems 8) !
Poste ich heute Nachmittag.

Grüssle,
Frank
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])

Benutzeravatar
FBK2904
Beiträge: 454
Registriert: 22.03.2016, 17:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Bei Ludwigsburg
Hat sich bedankt: 80 Mal
Danksagung erhalten: 42 Mal

Re: Script-Hilfe: Gegenseitiges setzen von SysVar's

Beitrag von FBK2904 » 13.07.2020, 15:20

Fonzo hat geschrieben:
12.07.2020, 21:54
.... . Dann brauchst Du für den speziellen Anwendungszweck weder ein CCU Programm noch irgendein Skript. .... .
OH Mann ... bin ich ein Holzkopf mit einem fetten Holzbalken vor der Birne :roll: !

Danke Fonzo :wink: für die Erleuchtung (wenn's auch etwas länger gedauert hat).
Keine Ahnung warum ich vor 3,5 Jahren bei den Anfängen mit NEO mit der doofen und umständlichen SV- und PRG-Gedönse
herum geschlagen hatte, um den aktiven Seiten-Button zu erleuchten.
Die Lösung ist so einfach wie auch trivial, wenn man(n) nicht um fünf Ecken herum denkt :oops: .

- Button auf unterste Ebene mit Befehl zum Seite auf xx wechseln.
- Neutrale Grafik darüber und auf der entsprechend aktiven Creator-Seite einfach auf "Icon" drücken und eine andere Grafik setzen.

Somit habe ich heute auf der CCU 14 Programme und 14 SysVar's gelöscht und in NEO 14 Makros auch gelöscht 8) !

Aber ein gutes hat die ganze Sache/Aktion auch gehabt. Endlich weiss ich wie der §src§-Befehl angewandt wird :lol: .

Mein herzliches DANKESCHÖN geht hier nochmals an allen Beteiligten (MichaelN, dtp und Fonzo) :!:

Grüssle,
Frank

@Michael: Dein vervollständigtes Script von mir, ist schon in meinem Script-Ordner archiviert :D .
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])

Antworten

Zurück zu „HomeMatic allgemein“