Hab ich auch mal getestet.
Klappt auch auf der CCU2.
Wär ja eine Form von Parameterübergabe oder ?
Richtige Verwendung von $src$
Moderator: Co-Administratoren
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Richtige Verwendung von $src$
Cool. Dann macht "Skript testen" also nicht das selbe, was sonst im Hintergrund passiert. Auch interessant.
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Richtige Verwendung von $src$
Und wenn Du das Auslese Programm nicht vom Setzen Programm starten lässt, sondern manuell startest?
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: 14165
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: Richtige Verwendung von $src$
Würde ich im Realbetrieb nicht empfehlen. Für solche Zwecke schreibe ich das in eine Systemvariable und lese es wieder aus. Ich benutzte in verschiedenen Scripten auch die gleichen Scriptvariablennamen (sind in einzelenen Bestandteilen nur kopierte Scripte für unterschiedliche Aufgaben z.B. Push, Mail oder TTS, und die nutzen alle die Scriptvariable "nachricht"). Da die Scriptingengine immer nur einen gleichzeitigen Schriptlauf zulässt, kommt sich das nicht in Gehege. Aber die Scriptläufe nacheinander kann man teils nicht beeinflussen.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- Baxxy
- Beiträge: 10832
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2227 Mal
Re: Richtige Verwendung von $src$
Irgendwo hatten das Black und/oder Jens mal erklärt.
"Script testen" arbeitet anders wie der Editor im "offenem Programm". Mit letzterem müsste man mal testen ob das funktioniert.
Kann man machen.
Aber wie Xel schon schrieb kann das zu Komplikationen führen.
Schön wäre es wenn man die (gecached-ten?) Scriptvariablen samt Wert irgendwie auslesen könnte, aber da ist mir nix bekannt.
Die Scriptvariablen in jedem Script frisch zu deklarieren ist m.E. immer noch die beste und sauberste Option.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Richtige Verwendung von $src$
Ei der Daus, das geht auch.
Aber Reboot-fest ist das nicht.
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 +++
- Black
- Beiträge: 5480
- 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: Richtige Verwendung von $src$
Es gibt 2 Ausführungsebenen auf der CCU, das eine ist die Rega interne Abarbeitung der CCU Programme und zum anderen die Script API auf :8181
Die beiden Ebenen wissen nix voneinander, heisst, Scriptvariablen, die in den "normalen" CCU Programmen definiert und verwendet wurden, sieht die Scripr API Abene nicht, und umgekehrt.
Script Testen der CCU oder auf Editoren wie der SDV benutzen die Script API. über eine Hintertür könntest du auch von der Script API aus die in der Programmebene verwendeten Variablen auslesen, das geht aber nur durch die Hintertür: Script aus der Script API erzeugt ein Synthetisches Programm in der Programmebene der CCU und startet dieses und geht dann erstmal in Warteschleife. Das Programm in der Programmebene läuft nun und schreibt sein ergebnis z.b. in eine neu erzeugte sysvar, in eine Datei oder sonstwo hin. das programm kommt dann aus der warteschleife und wertet die AUsgabe aus.
kann man machen.. kann man auch lassen
die auch von EQ3 verwendete Methode von "Parameterübergaben" geschieht über Scriptvariablen.
diese weden aber so ausgewertet: (es exitiere eine Scriptvariable mit namen n vom Typ Integer, die immo den Wert 10 enthalte)
WriteLine (system.IsVar("n"));
AUsgabe: true
system.IsVar(Varname[string]) --> [boolean]
-------------------
wenn diese Variable also existiert ist der saube Weg des Zugriffes dann
WriteLine (system.GetVar ("n"))
Ausgabe: 10
system.GetVar (Varname[string]) -->[variant]
Black
Die beiden Ebenen wissen nix voneinander, heisst, Scriptvariablen, die in den "normalen" CCU Programmen definiert und verwendet wurden, sieht die Scripr API Abene nicht, und umgekehrt.
Script Testen der CCU oder auf Editoren wie der SDV benutzen die Script API. über eine Hintertür könntest du auch von der Script API aus die in der Programmebene verwendeten Variablen auslesen, das geht aber nur durch die Hintertür: Script aus der Script API erzeugt ein Synthetisches Programm in der Programmebene der CCU und startet dieses und geht dann erstmal in Warteschleife. Das Programm in der Programmebene läuft nun und schreibt sein ergebnis z.b. in eine neu erzeugte sysvar, in eine Datei oder sonstwo hin. das programm kommt dann aus der warteschleife und wertet die AUsgabe aus.
kann man machen.. kann man auch lassen
die auch von EQ3 verwendete Methode von "Parameterübergaben" geschieht über Scriptvariablen.
diese weden aber so ausgewertet: (es exitiere eine Scriptvariable mit namen n vom Typ Integer, die immo den Wert 10 enthalte)
WriteLine (system.IsVar("n"));
AUsgabe: true
system.IsVar(Varname[string]) --> [boolean]
-------------------
wenn diese Variable also existiert ist der saube Weg des Zugriffes dann
WriteLine (system.GetVar ("n"))
Ausgabe: 10
system.GetVar (Varname[string]) -->[variant]
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