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
Axel37
8. November 2023 um 09:20
2
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.
FrankNo
9. November 2023 um 07:53
5
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
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
FrankNo
9. November 2023 um 19:41
7
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
volkerm
10. November 2023 um 16:31
9
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));