Richtige Verwendung von $src$

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Richtige Verwendung von $src$

Beitrag von Xel66 » 14.11.2022, 23:28

Germa hat geschrieben:
14.11.2022, 23:07
In Homematic gilt anscheinend "Variablen können überall deklariert werden und sind ab da bis zum Ende des Scripts sichtbar"
Es ist noch viel schlimmer. Variablen und -inhalte sind auch nach Ablauf des Scripts weiterhin gültig und lassen sich in anderen Scripts verwenden (wenn sie am Anfang nicht neu deklariert sind). Sie gelten also systemweit.

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

Germa
Beiträge: 169
Registriert: 15.12.2019, 12:26
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 19 Mal

Re: Richtige Verwendung von $src$

Beitrag von Germa » 14.11.2022, 23:35

*tilt* :?
jetzt muss ich meine Skripte alle überprüfen .....
wenn wir uns alle gegenseitig helfen, ist allen geholfen :wink:
_______________________________________________
CCU3 seit 2018, 103 Geräte, 202 Programme, 222 sysvar
Projekte: Wettersensor viewtopic.php?t=65631

Benutzeravatar
Roland M.
Beiträge: 9805
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Richtige Verwendung von $src$

Beitrag von Roland M. » 15.11.2022, 00:17

Hallo!
Germa hat geschrieben:
14.11.2022, 23:07
In Homematic gilt anscheinend "Variablen können überall deklariert werden und sind ab da bis zum Ende des Scripts sichtbar"
Ja, sicher!

Hat dir auch schon jemand erzählt, dass
boolean x = 0.0 + "Hello world" / -0
ein gültiger Ausdruck ist und x anschließend vom Typ real ist?

Willkommen im der Homematic-Logik! :mrgreen: :twisted:


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Germa
Beiträge: 169
Registriert: 15.12.2019, 12:26
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 19 Mal

Re: Richtige Verwendung von $src$

Beitrag von Germa » 15.11.2022, 08:47

jaaaha, habe die Grundlagen gelesen ... der Datentyp der Operation wird durch den linken Operanden bestimmt :roll:
wenn wir uns alle gegenseitig helfen, ist allen geholfen :wink:
_______________________________________________
CCU3 seit 2018, 103 Geräte, 202 Programme, 222 sysvar
Projekte: Wettersensor viewtopic.php?t=65631

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Richtige Verwendung von $src$

Beitrag von Xel66 » 15.11.2022, 09:00

Jo, aber gerechnet wird von rechts nach links. :lol:

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

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Richtige Verwendung von $src$

Beitrag von jp112sdl » 15.11.2022, 09:27

Germa hat geschrieben:
14.11.2022, 23:35
*tilt* :?
jetzt muss ich meine Skripte alle überprüfen .....
I.d.R. verarbeitet man im Skript nur Variablen, die vorher initialisiert bzw. mit einem Wert belegt wurden.
Ich verwende in zig Skripten eine Variable namens "tmp", da gab es noch nie Probleme :wink:
Germa hat geschrieben:
14.11.2022, 23:07
C-Programmierer nicken mit dem Kopf zu meiner ersten Aussage.
C-Code geht durch einen Compiler und ist dann eigenständig in Maschinensprache von der CPU zu verarbeiten.

Hier haben wir aber eine Skript-Sprache. Skripte gehen durch einen Interpreter, und was der so manchmal interpretiert... ist auch nicht jedermanns Sache hier :mrgreen:
Xel66 hat geschrieben:
14.11.2022, 23:28
Variablen und -inhalte sind auch nach Ablauf des Scripts weiterhin gültig und lassen sich in anderen Scripts verwenden (wenn sie am Anfang nicht neu deklariert sind). Sie gelten also systemweit.
Ich hab das grad mal probiert.

WebUI in 2 Tabs geöffnet. Jeweils "Skript testen"
Tab1:

Code: Alles auswählen

var a="TEST";
WriteLine(a);

=> TEST
Tab2:

Code: Alles auswählen

WriteLine(a);

=>  Kommt nix
Ok - sind 2 verschiedene Sessions.
Dann halt in einer Session.
Nächster Versuch mit nur einem Tab.
1. Durchlauf

Code: Alles auswählen

var a="TEST";
WriteLine(a);

=> TEST
2. Durchlauf

Code: Alles auswählen

WriteLine(a);

=>  Kommt nix
Also ja, man kann mit session.GetVar usw. sich da was holen/setzen, aber einfach so geht das nicht mit den skriptübergreifenden Variablen, oder?

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: Richtige Verwendung von $src$

Beitrag von MichaelN » 15.11.2022, 09:29

Ich wollte das auch nochmal testen, aber ich glaube das ist überholtes Wissen. Vermutlich aus der Zeit als auch die Anzahl der Skript Variablen begrenzt waren. Aber vielleicht kann uns Xel ja noch mit einem Beispielskript erleuchten.
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 +++


jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Richtige Verwendung von $src$

Beitrag von jp112sdl » 15.11.2022, 09:38

Baxxy hat geschrieben:
15.11.2022, 09:36
Macht einen echten Test.
Und jetzt das Ganze noch programmübergreifend. :D

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon


Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“