NEWS
8 Werte auf False oder TRUE vergleichen...dann setze
-
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.
-
habe das obere jetzt noch mit eingebaut, aber es wird immer noch auf 12345 gesetzt. Es wird auch immer ausgeführt....nur ob es TRUE oder FALSE ist...es wird immer wieder auf 12345 gesetzt.
-
@zimbl sagte: Wenn also einer von denen auf FALSE oder OPEN(0) dann soll der Wert 12346 geschaltet werden
Alle true bzw. 1 --> 12345.
-
ich probiere das sofort nochmal.
-
Ich habe das jetzt mal etwas verändert, bzw. für eine andere Geschichte fertiggestellt.
Alle Werte die Abgefragt werden, stehen auf "TRUE" bzw. Close (1)
Wenn ich jetzt einen Wert verändere auf Open(0) , dann wird 1803 gesendet. Wenn ich diesen
wieder verändere und es stehen wieder alle auf "TRUE" und Close(1) wird dennoch der Wert 1803 gesendet. -
@zimbl sagte: wird dennoch der Wert 1803 gesendet.
Ja, weil die ersten 6 Datenpunkte falsch geprüft werden. Richtige Abfrage:
-
-
@zimbl sagte:
Die ersten zwei Blöcke in der Schleife löschen. -