Hätte gerne Bool, habe aber nur Integer

Moin zusammen

kann man eine Integer Variabele zu Bool konvertieren?

oder anders gefragt, wie kann ich das ändern das links in dem Graphen die 0,2 Schritte sind.

Ich frage meine BWWP über Modbus ab, und bekomme auch den Wert 0 für aus und 1 für ein zurück.
aber als Integer Variabele.

Variabelenprofil habe ich erstellt mit Schrittweite 0

Notfalls über eine Hilfsvariable mit einem kleinen Skript

ich habe mir jetzt eine neue Bool Variabele erstellt, und auf dieser ein Ereignis gesetzt.

meintest du das mit der Hilfsvariablen?

irgendwas mache ich falsch!
meine erstellte Bool Variable reagiert nicht auf eine Änderung der Integer Variable. :thinking:

Als Auslöser sollte „Bei einen bestimmten Wert“ und dann „1“ stehen.
Die Aktion ist dann „Setze auf Wert“ und dann „An“.

Und dann noch ein zweites Ereignis für „0“ und „Aus“. Das sollte es sein.

Gruß
Frank

Hallo Frank,

Danke
Das hat soweit funktioniert :+1:

Aber warum funktioniert nicht die Aktion

„auf auslösenden Wert setzen“?

Ich will einfach nur verstehen, was hinter dieser Aktion steckt, und wofür man diese einsetzen kann

Der auslösende Wert ist ja Integer. Du kannst eine Bool-Variable nicht mit einem Integer-Wert belegen.
1 ist hier eben nicht gleich 1 und 0 nicht 0.
Wenn du dir die Werte als Binärzahl vorstellst, wird es deutlicher. 00000001 (8-bit Int) passt nicht in eine 1-bit bool (0 oder 1).

Gruß
Frank

ok, klingt auch irgendwie logisch

könnte man das ganze auch mittels einem Skript lösen?

wie würde so ein Skript aussehen?

Ich bin zufrieden mit der jetzigen Lösung und frage wirklich nur aus Interesse

Man könnte es so machen, wenn der Integer wirklich immer nur 0 oder 1 ist:

$intID = 59518;
$boolID = 32882;

SetValue($boolID,GetValue($intID)==1);

Das Script dann über ein ausgelöstes Ereignis bei Änderung triggern.

Nachtrag: Eine Alternative wäre so ein Typecast anstatt des Prüfens auf Wert 1

SetValue($boolID,(bool) GetValue($intID));