Seite 1 von 1

Frage zur scripterstellung - keine Ahnung zur Syntax

Verfasst: 15.05.2018, 23:13
von homie_
Hallo,
möchte ein script erstellen
glaube zur Geschichte muss man nichts erklären - ist unten selbsterklärend.
Das unten angedeudete Script funktioniert so natürlich nicht - zu viele syntaxfehler.
Vielleicht könnte mir jemand helfen :D



Code: Alles auswählen

!!! hier sollen für je eine Wetterlage (3 Kategorien) Zeiten über 6 Variablen (für versch. Sprenger) gesetzt werden
!!! hier Var.1

var w = dom.GetObject("W_Bewä_Typ (9=Aus)").Value();

 if "W_Bewä_Typ (9=Aus")=1

var z1 = dom.GetObject("Sprenger z1").Value();
var z1 = 22;
dom.GetObject("Sprenger z1").State(z1)

var z2 = dom.GetObject("Sprenger z2").Value();
var z2 = 15;
dom.GetObject("Sprenger z1").State(z2)

!!! z3 bis zx (mir reichen eigentl 6)

!!! nun Var.2

 if "W_Bewä_Typ (9=Aus")=2

var a = dom.GetObject("Sprenger z1").Value();
var a = 22;
dom.GetObject("Sprenger z1").State(a)

!!! hier auch wieder z1 bis zx (mir reichen eigentl 6)

********************************************
das ganze würde über ein Programm Zeit-gesteuert starten.
Vielleicht kann das jemand so grammatikalisch für mich hinbiegen :D ??

Vielen Dank für Eure Hilfe

Re: Frage zur scripterstellung - keine Ahnung zur Grammatik

Verfasst: 16.05.2018, 20:29
von AndiN
Hallo,

bin auch kein Skriptprofi, aber vielleicht probieren wir es mal mit Hilfe zur Selbsthilfe?

Code: Alles auswählen

var w = dom.GetObject("W_Bewä_Typ (9=Aus)").Value();
Hier ordnest Du der Variable W den Wert der Systemvariable "W_Bewä_Typ (9=Aus)" zu. Ich halte es für bedenklich eine Variable mit "(" und "=" zu benennen (wenn das überhaupt möglich ist)

Code: Alles auswählen

 if "W_Bewä_Typ (9=Aus")=1
Keine Ahnung was Du jetzt machen möchtest. Aber ich würde mal behaupten Du möchtest wissen ob die o.a. Variable auf 1 steht. Dann solltest Du wenn überhaupt if W=1 nehmen und nicht "W_Bewä_Typ (9 Aus)... Das macht hier doch gar keinen Sinn

Eine IF Funktion sieht im Skript so aus:

Code: Alles auswählen

if (w==1){
== für Gleich
!= für Ungleich
{ für den IF Block

Code: Alles auswählen

var z1 = dom.GetObject("Sprenger z1").Value();
Okay, Du weißt der Variable Z1 den Wert der Systemvariable von "Sprenger z1" zu. Haken dran

Code: Alles auswählen

var z1 = 22;
???? Jetzt weißt Du der selben Variable 22 zu. Damit ist die vorherige Zeile überflüssig

Code: Alles auswählen

dom.GetObject("Sprenger z1").State(z1)
Jetzt weißt Du der Systemvariable z1 den Wert 22 zu. Passt. Nur das ";" fehlt hinter der Zeile

Code: Alles auswählen

var z2 = dom.GetObject("Sprenger z2").Value();
var z2 = 15;
dom.GetObject("Sprenger z1").State(z2)
Hier wie oben schon beschrieben ist die erste Zeile überflüssig und in der letzten Zeile fehlt das ";"
Und am Ende vom IF BLock die "}" nicht vergessen.

Die Frage ist warum Du das nicht mit einem Programm (kein Skript) realisierst.

Nach dem Motto

Code: Alles auswählen

WENN: Systemvariable "W_Bewä_Typ (9=Aus) = 1 
DANN: Sprenger Z1=22
usw.
Andi

Re: Frage zur scripterstellung - keine Ahnung zur Syntax

Verfasst: 17.05.2018, 07:32
von Sammy
Und Sonderzeichen (und Umlaute) ("Bewä) sind ein weiterer unnötiger Stolperstein. Bitte die Tipps für Anfänger lesen.

Gruß Sammy

Re: Frage zur scripterstellung - keine Ahnung zur Syntax

Verfasst: 17.05.2018, 14:22
von homie_
Hallo,

erst mal danke für den Tipp Umlaute rauszunehmen und zweitens bin ich schwer begeistert über die Hilfsbereitschaft in diesem Forum!
Schön die "Hilfe zur Selbsthilfe-Methode" :D . Bin nur grad leider im Zeitstress und werde das hoffentlich am Wochenende schaffen Schritt für Schritt zu probieren.
Schaut aber gut aus wie ich meine! Habe ja schon geschafft einen Sprenger exemplarisch mit einer zugewiesenen Zeitsys.Variable zu starten und zeitgenau zu stoppen.
Soweit so gut.

zu: "Keine Ahnung was Du jetzt machen möchtest."
Ich versuchs mal .. :lol:
mein Plan ist folgender: ich habe 12 Sprenger die wg. Wasserdruck alle nacheinander laufen müssen. Hatte das bisher in einem unendlichen Programm: wenn Zeit dann sprenger 1 von 01 - 1800sec; spenger 2 von 1802 - 3604sec usw. Das ganze nach Wetter in 4 verschiedenen Stufen (also 4 Programme). Nachteile dieser Version: bei Trockenheit läuft ein Programm am Abend über 2-3h. Läuft es an ist es nicht mehr (oder nur schwer) zu stoppen. Oder will man eine Zeit verändern muss mann wieder alle Zeiten durchdenken ...
Die neue Idee ist über meine Sysvariable "W_Bewä_Typ (9=Aus)" (Umlaute kille ich noch - sorry) 1 = starke Trockenheit; 2 =mittlere T; 3=wenig; 4= nur Tropfer; ... bis 9=aus; die Dauer der Bewässerung über meinen Regensensor weiterhin automatisch gewechselt werden (das klappt schon mit meinen Programmen so lala).
Mit dem neuen System gibt es dann zu jedem Wert (1-9 s.o.) ein script mit den Variblen der Bewässerungsdauer in Minuten pro Sprenger (im script alle fast tabellarisch untereinander, jeder Wert leicht änderbar). Dann gibt es zu jedem Spenger ein Programm: starte wenn der "Vorsprenger ausgeht mit Deiner vorab zugewiesenen Zeit (und falls es doch mal entgegen aller Vorhersagen zu regnen beginnt wird die Systemvariable 0 und alle anderen Sprenger starten nicht mehr. Hoffe verständlich erklärt.
Hab natürlich das Forum rauf und runter durchsucht um das Rad nicht nochmal erfinden zu müssen aber nichts so recht passendes für mich gefunden.

Melde mich sobald ich meine "Selbsthilfetests" durchhabe!

Re: Frage zur scripterstellung - keine Ahnung zur Syntax

Verfasst: 19.05.2018, 12:07
von homie_
bin gerade dabei alle meine ä ö ü ß rauszunehmen. Blöd dass im System selbst Umlaute ständig vorkommen:
"Programme und Verknüpfungen"
"nur prüfen"
"Geräte anlernern"
"Geräte"
usw.

Da macht man natürlich munter weiter ... :lol:
Aber ich glaube es lohnt sich alles zu bereinigen ....