Systemvariable per Programm um 1 erhöhen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

rowdy1
Beiträge: 20
Registriert: 27.05.2015, 23:29

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von rowdy1 » 10.07.2015, 19:33

Hallo

Wenn ich das >>>

Code: Alles auswählen

integer n = dom.GetObject("Name der Zähl-SV vom Typ Zahl").Value();
integer max = 9;
n = n + 1;
if (n > max) {n = 0;}
dom.GetObject("Name der Zähl-SV vom Typ Zahl").State(n);
Script in verschiedenen Programmen einsetzten möchte. Muss ich die Variablen innerhalb des Scriptes (n) immer umbenennen oder gibt es einen Trick, das man sich das sparen kann?

Gruß
rowdy

inidona
Beiträge: 395
Registriert: 17.09.2013, 18:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von inidona » 12.07.2015, 11:54

Hallo, nein das musst du nicht umbenennen, nur die Zähl-SV wenn es ein anderer Zähler sein soll


Gesendet von iPhone mit Tapatalk

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von Homoran » 12.07.2015, 11:58

und natürlich wenn zwei (oder mehr) Zähler parallel laufen musst du entsprechend viele Zählvariablen anlegen und die Skripts entsprechend anpassen.
Wenn immer nur ein Skript läuft geht das mit einer Variable für alle, wobei du am Anfang erst einen reset machen müsstest, wenn du bei 0 beginnen willst.

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

rowdy1
Beiträge: 20
Registriert: 27.05.2015, 23:29

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von rowdy1 » 12.07.2015, 17:47

Hallo inidona Hallo Homoran

Danke für die Antwort. :D


Gruß
rowdy

FZ8
Beiträge: 2
Registriert: 16.11.2023, 23:27
System: CCU

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von FZ8 » 16.11.2023, 23:29

Hallo,

bin ein Neuling, könnte mir bitte jemand sagen was hier falsch ist?

Code: Alles auswählen

! SV hochzählen bis Maximalwert, dann auf 0
! Deklaration lokaler Variablen
object sv;    ! Systemvariable
integer n;    ! Zählwert
integer max;  ! Maximalwert

sv = dom.GetObject("Zähler Feueralarm");
n = 1 + sv.Value();
max = 9;
if (n > max) {n = 0;}
dom.GetObject("Zähler Feueralarm").State(n);
Zuletzt geändert von alchy am 17.11.2023, 19:51, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von MichaelN » 16.11.2023, 23:43

Systemvariable ist nicht eindeutig referenziert
Was sagt das Fehlerprotokoll?

Im Zweifel plug and Play Lösung :

viewtopic.php?f=31&t=77401
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 +++

FZ8
Beiträge: 2
Registriert: 16.11.2023, 23:27
System: CCU

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von FZ8 » 17.11.2023, 11:19

Kein Fehler.

Hättest du einen Tipp wie es gehen würde.

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

Re: Systemvariable per Programm um 1 erhöhen

Beitrag von Xel66 » 17.11.2023, 11:46

Zur Referenzierung würde ich dom.GetObject(ID_SYSTEM_VARIABLES).Get("Variablenname") benutzen. Das referenziert auf ein Objekt, welches auch eine Systemvariable mit dem entsprechenden Namen verweist. Hilft bei Namensdopplungen (Geräte, Favoriten, Programme etc. mit gleichem Namen). Ferner meide ich die Benutzung von deutschen Umlauten. Bei mir funktioniert aber Dein Script. Vielleicht ist Deine Systemvariable auch nicht korrekt definiert (Zahl!?!).

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

Antworten

Zurück zu „HomeMatic allgemein“