NEWS
8 Werte auf False oder TRUE vergleichen...dann setze
-
@zimbl ich verstehe dein Problem mit Blockly nicht, das müsste imho so aussehen
Du hängst einfach auf der rechten Seite des "oder" jeweils wieder ein "oder" rein bis du da 8 Werte eintragen kannst.
ObjectID wäre dann die globale Boolean Variable, die du vorher anlegen musst, das "oder" findest du im Blockly unter "Logik" (und da wählst du dann "und" aus und änderst das "und" in ein "oder" -
@zimbl sind Deine DPs alle im selben Adapter zu finden ? Also im selben Objekt-Strang?
-
@zimbl sagte: Bei 8 Überwachten Werte
Du meinst mit Werten Datenpunkte?
Dann kann man entsprechend viele Blöcke "oder" verwenden oder es über eine Schleife lösen. -
-
ja das sieht ganz gut aus....ich glaube hier werde ich mal drauf aufbauen...
Meine Idee sag bisher so aus...
-
obwohl das ist für mich halt auch sehr gut nachvollziehbar....."als laie"
aber ich denke auch aufwendiger...
-
Hier löst dein Script allerdings schon aus, sobald eines der Objekte auf 'false' wechselt bzw. aktualisiert. Das würde der "oder" Verknüpfung entsprechen. Wenn alle Objekte z.B. auf 'true' stehen und NUR dann ausgelöst werden soll, musst du einen anderen Weg suchen. Aber wie du ja gesehen hast, führen einige Wege zum Ziel.
-
ja meins ist auch nur mal so ein versuch....man muss auch probieren, sonst lernt man es ja nie. Zum Glück gibt es hier dieses Forum....
Vielen Dank nochmal an alle
-
Richtig. Einfach machen und gucken, was passiert. So lernt man am Besten.
-
so ich habe das mal aufgebaut und getestet,
aber leider nimmt er immer den oberen Wert zum Steuern. (12346)Was könnte verkehrt sein ?
-
@zimbl sagte in 8 Werte auf False oder TRUE vergleichen...dann setze:
Was könnte verkehrt sein ?
Wenn Du das mal zeigen würdest (bildlich) dann könnte man da auch helfen
-
natürlich kein Problem.
ich muss dazu sagen, das ich derzeit eigentlich "denke" das ich hier nur Änderungen registriere, weil die unteren Werte sind im "Normal" Zustand TRUE und die oberen GPIO "FALSE"
-
@zimbl sagte: das ich hier nur Änderungen registriere
So ist es: Wenn sich kein Wert ändert, wird auch nicht getriggert.
-
Aber was ist dann eigentlich die Ausgangsposition ?
Weil ich will ja praktisch das der "Normal" Zustand als Sollwert ist und wenn sich ein
Wert ändert, wäre das ja dann der Grund warum sich das Signal auf 12346 ändert. -
@zimbl sagte: Aber was ist dann eigentlich die Ausgangsposition ?
Das, was du im ersten Post geschrieben hast:
@zimbl sagte in 8 Werte auf False oder TRUE vergleichen...dann setze:
wenn einer von Ihnen ein TRUE hat
und sich ein Wert ändert, wird 12345 geschrieben.
-
ok, dann ist das vielleicht der Fehler. Sorry, habe ich was vergessen.
wie kann ich das zwei Teilen ?
Ich denke weil die unteren Werte nicht False sind. Geht es nicht. Da ist der Unterschied 1 bzw. 0, da es aber glaube keine Boolschen Werte sind, müsste ich den INT auf 0 oder 1 Abfragen. -
@zimbl sagte: Da ist der Unterschied 1 bzw. 0
Das spielt keine Rolle, wenn 1 als true interpretiert werden kann (implizite Typwandlung).
-
JA dann wird es noch das Problem sein, das TRUE / FALSE bei den letzten 5 genau umgedreht ist.
Gibt es sowas wie eine Negation die ich vor der Objekt ID setzen kann ? -
-
wahnsinn was du da immer so strickst... da kommt doch niemand drauf
Also ist es so, das die oberen Werte normal auf TRUE und FALSE abgefragt werden, und die unteren 5 Werte auf 0 und 1 abgefragt werden.
Aber ich habe bei dem ganzen hin und her, selbst ein Gedankenfehler gemacht....
Also die oberen GPIO stehen aktuell auf TRUE und die anderen "valve_state" close(1)
INFO: { "type": "state", "common": { "type": "number", "states": { "0": "open", "1": "close"} "read":
true, "write": false, "name": "valve_state", "role": "value"Wenn also einer von denen auf FALSE oder OPEN(0) dann soll der Wert 12346 geschaltet werden, wenn komplett alle wieder auf TRUE bzw. close(1) stehen, dann soll der Wert 12345 geschaltet werden.