NEWS
[gelöst] Überwachung im Garten aktivieren
-
Guten Morgen Rainer,
vielen Dank für deine Antwort. Es tut mir leid, aber ich stehe da irgendwie auf'm Schlauch…
Trotz mehrfachem Durchlesen, weiß ich beispielsweise immer noch nicht, wie ich eine WENN-DANN-FUNKTION realisieren kann. Mir würde mich sehr freuen, wenn du mir da weiterhelfen würdest. Mir reicht wahrscheinlich schon folgendes Szenario, um das ganze nachvollziehen zu können.
Wenn GARTENÜBERWACHUNG AN und GARTENHAUSTÜR GEÖFFNET WIRD, dann ALARM AN und PUSHOVER NACHRICHT versenden.
Vielen Dank!!!
Andi
-
Dafür wäre evtl. der scenes Adapter besser geeignet.
Gruß
Rainer
-
Hallo,
ist eine klassische Anwendung für ein Skript:
/* garten.js Skript zur Alarmierung, wenn Alarm scharf und Gartenhaus oder Schuppentür geöffnet 25.07.2016 erstellt von pix */ // Datenpunkte festlegen: mit <id einfügen="">im Javascript Editor den Teil hinter dem = jeweils ersetzen var idAlarm = "hm-rega.0.HIERDATENPUNKTALARM", idAlarmanlage = "hm-rega.0.HIERDATENPUNKT_GArtenüberwachung", idGartenhaus = "hm-rega.0.HIERDATENPUNKT_Gartenhaus_Kontakt", idGartenhaus_Sabotage = "hm-rega.0.HIERDATENPUNKT_Gatenhaus_Sabotage", idSchuppentuer = "hm-rega.0.HIERDATENPUNKT_Schuppentür_Kontakt", idSchuppentuer_Sabotage = "hm-rega.0.HIERDATENPUNKT_Schuppentuer_Sabotage"; // Alarm geben, wenn Alarmanlage scharf function gibAlarm (text) { if (getState(idAlarmanlage).val === true) { // wenn Alarmanlage true, falls der Wert aus einer Werteliste kommt, entsprechend ändern setState(idAlarm, true); log(text); } } // Vier Kontakte überwachen on(idGartenhaus, function (obj) { if (obj.state.val === true) { gibAlarm('Gartenhaus bei scharfer Alarmanlage geöffnet'); } } // ab hier etwas kürzere Shreibweise on(idGartenhaus_Sabotage, function (obj) { if (obj.state.val) gibAlarm('Gartenhaus Sabotage bei scharfer Alarmanlage'); } on(idSchuppentuer_Sabotage, function (obj) { if (obj.state.val) gibAlarm('Schuppentuer bei scharfer Alarmanlage geöffnet'); } on(idSchuppentuer_Sabotage, function (obj) { if (obj.state.val) gibAlarm('Gartenhaus Sabotage bei scharfer Alarmanlage'); }</id>
Ich weiß nicht genaus, was das Homematikskript macht. Falls es nur die Uhrzeit loggt, kannst du das im ioBroker log ja auch so sehen. Sonst steht dir natürlich noch die Alarmierung per Email/etc. offen.
Gruß
Pix
-
@Rainer: Den Scenes-Aapter habe ich mir angesehen. Es wirkt so, also ob man immer max. 2 Geräte pro Scene miteinander verknüpfen kann. Wäre sehr umständlich!
@Pix: Vielen Dank für die Hilfe! Ich hatte irgendwie gehofft, dass ich um Java herumkomme und es für einen Laien eine etwas einfachere Lösung gibt… Mit Hilfe des Skripts kann ich mir aber schon mal die ersten Dinge erschließen und jetzt ein wenig rumprobieren. Wie programmiere ich dazu noch eine Pushover-Nachricht?
Ich habe allerdings noch drei grundlegende Fragen zum Workflow in ioBroker:
1. Gartenüberwachung ist bei mir eine hinterlegte Systemvariable auf der CCU. Müssen alle Variablen auf der CCU vorab erstellt werden oder kann ich diese auch in ioBroker erstellen?
2. Wo genau werden die Skripte in ioBroker geschrieben bzw. gespeichert?
3. Geht sowas nicht mit Node-Red?
Vielen Dank!
Andi
-
Hallo Andi,
wenn du noch an einer Umsetzung in node-red interessiert bist, kann ich dir nachher einen Beispielflow dazu senden.
Möchtest du Pushover direkt über node-red oder über den ioBroker Adapter ansteuern?
Gehen tut beides.
Gesendet von meinem SM-G900F mit Tapatalk
-
Hier der Flow:
Zuerst den Pushbullet-Node zu node-red zufügen. Dafür einfach in den Einstellungen des Node-Red-Adapters im Feld Zusätzliche NPM Module folgenden Text anhängen: node-red-node-pushover.
Der Node-Red Adapter wird automatisch neugestartet und der Node installiert. Danach die node-red-Seite neu laden, damit der Node auch angezeigt wird.Danach auf einer leeren Seite den folgenden Flow importieren und die IDs in den Nodes und den Pushbullet-Adapter mit deinen Daten einrichten.
! [
! {
! "id": "ea71199a.3a4bc8",
! "type": "ioBroker in",
! "z": "c5e2f479.a19c08",
! "name": "Gartenhaus State",
! "topic": "hier state für Gartenhaus Kontakt auswählen",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 128,
! "y": 283,
! "wires": [
! [
! "e5050153.4054f"
! ]
! ]
! },
! {
! "id": "adeb5f0f.bd2c7",
! "type": "ioBroker in",
! "z": "c5e2f479.a19c08",
! "name": "Gartenhaus Sabotage State",
! "topic": "hier state für Gartenhaus Sabotage auswählen",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 155,
! "y": 333,
! "wires": [
! [
! "e5050153.4054f"
! ]
! ]
! },
! {
! "id": "5e4af5cf.c526ac",
! "type": "ioBroker in",
! "z": "c5e2f479.a19c08",
! "name": "Schuppentür State",
! "topic": "hier state für Schuppentür Kontakt auswählen",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 124,
! "y": 380,
! "wires": [
! [
! "e5050153.4054f"
! ]
! ]
! },
! {
! "id": "11accbbc.bdc184",
! "type": "ioBroker in",
! "z": "c5e2f479.a19c08",
! "name": "Schuppentür Sabotage State",
! "topic": "hier state für Schuppentür Sabotage auswählen",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 153,
! "y": 427,
! "wires": [
! [
! "e5050153.4054f"
! ]
! ]
! },
! {
! "id": "e5050153.4054f",
! "type": "switch",
! "z": "c5e2f479.a19c08",
! "name": "Prüfe ob State aktiviert ist",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 493,
! "y": 326,
! "wires": [
! [
! "868de916.5abc28"
! ]
! ]
! },
! {
! "id": "868de916.5abc28",
! "type": "ioBroker get",
! "z": "c5e2f479.a19c08",
! "name": "Hole Gartenüberwachung",
! "topic": "hier hm-rega Variable auswählen",
! "attrname": "payload",
! "payloadType": "value",
! "x": 681,
! "y": 394,
! "wires": [
! [
! "f4856754.e12eb8"
! ]
! ]
! },
! {
! "id": "f4856754.e12eb8",
! "type": "switch",
! "z": "c5e2f479.a19c08",
! "name": "Prüfe ob Gartenüberwachung aktiv ist",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 926,
! "y": 317,
! "wires": [
! [
! "d33b39b2.5d2da8",
! "900a62b8.6625e"
! ]
! ]
! },
! {
! "id": "d33b39b2.5d2da8",
! "type": "ioBroker out",
! "z": "c5e2f479.a19c08",
! "name": "Setze Alarmvariable",
! "topic": "hm-rega Variable für Alarmmeldung auswählen",
! "ack": "false",
! "autoCreate": "false",
! "x": 1217,
! "y": 229,
! "wires": []
! },
! {
! "id": "900a62b8.6625e",
! "type": "change",
! "z": "c5e2f479.a19c08",
! "name": "Setze Nachicht für Pushover",
! "rules": [
! {
! "t": "set",
! "p": "payload",
! "pt": "msg",
! "to": "Hier ist die Meldung einzutragen",
! "tot": "str"
! }
! ],
! "action": "",
! "property": "",
! "from": "",
! "to": "",
! "reg": false,
! "x": 1144,
! "y": 380,
! "wires": [
! [
! "96d77deb.76a65"
! ]
! ]
! },
! {
! "id": "96d77deb.76a65",
! "type": "pushover",
! "z": "c5e2f479.a19c08",
! "name": "",
! "device": "",
! "title": "",
! "priority": 0,
! "sound": "",
! "x": 1353,
! "y": 376,
! "wires": []
! }
! ]Zur Erklärung, was dieser Flow macht:
Jeder der ioBroker Input-Nodes löst aus, wenn sich der Wert des ausgewählten State ändert und ACK=true ist. Dies kann der Fall sein, wenn der Wert auf true geht oder auch auf false.
Der erste Switch-Node prüft, ob der neue Wert == "true" ist. Nur dann geht es weiter.
Danach wird im ioBroker Get-Node der Wert für die Gartenüberwachung geholt und im nächsten Switch-Node überprüft, ob diese aktiv ist.
Wenn ja wird die Systemvariable für Alarm gesetzt und eine Pushover-Message versendet.
Was noch fehlt ist, wie die Variable für den Alarm wieder ausgeschaltet werden soll. Aber das war im Screenshot nicht zu sehen.
-
@Pix: Vielen Dank für die Hilfe! Ich hatte irgendwie gehofft, dass ich um Java herumkomme und es für einen Laien eine etwas einfachere Lösung gibt… Mit Hilfe des Skripts kann ich mir aber schon mal die ersten Dinge erschließen und jetzt ein wenig rumprobieren. Wie programmiere ich dazu noch eine Pushover-Nachricht?
Ich habe allerdings noch drei grundlegende Fragen zum Workflow in ioBroker:
1. Gartenüberwachung ist bei mir eine hinterlegte Systemvariable auf der CCU. Müssen alle Variablen auf der CCU vorab erstellt werden oder kann ich diese auch in ioBroker erstellen?
2. Wo genau werden die Skripte in ioBroker geschrieben bzw. gespeichert?
3. Geht sowas nicht mit Node-Red?
Vielen Dank!
Andi `
Hallo Andi,freut mich, dass du es brauchen kannst. Hier geht's aber um JavaScript und nicht um Java. Nicht, dass du dir die falschen Handbücher kaufst :lol:, denn du wirst nicht drumherum kommen.
Bevor du weitere Ziele, wie die Benachrichtigung per Pushover etc. in Angriff nimmst, sollten die drei Fragen geklärt werden:
-
Das o.g. Skript ist der einfachste Weg, deine bestehenden Variablen auf der CCU zu nutzen. Ich selbst habe keine Variablen mehr auf der CCU (ausser 950 Anwesenheit, jetzt Restart) und habe alles in ioBroker portiert. Du solltest das aber schrittweise machen und erstmal die Funktion und den Aufbau von Skripts verstehen.
-
Ich empfehle dir die Lektüre der ioBroker - Webseite, speziell die Javascript-Adapter Seite: http://www.iobroker.net/docu/?page_id=156&lang=de
-
Bestimmt. aber node-red nutzt für "kniffeligere" Aufgaben auch Javascript. Da kannst du gleich ein Skript schreiben.
Gruß
Pix
-
-
@pix und nobody: Vielen Dank für Eure Hilfe! Wirklich super Support hier im Forum! So macht der Einstieg Spaß
Ich habe jetzt zunächst mal den Flow von nobody übernommen. Muss jeder Flow in Node-Red auf eine eigene Seite?
Weiterhin ist mir der Workflow noch nicht ganz klar. Gehe ich recht in der Annahme, dass ich das CCU-Programm zur Gartenüberwachung mit dem Flow in Node-Red jetzt ersetzt haben? Wie ersetze ich jetzt noch die Variable zur Gartenüberwachung in der CCU? Läuft das über Objekte in ioBroker? Muss ich dann einfach in Vis einfach einen Button erstellen und diesen mit dem Objekt verknüpfen, um die Überwachung ein- und auszuschalten?
-
Hallo a-flow,
du kannst die flows beliebig anordnen und auch mehrere aus eine Seite.
Auf der Admin-Seite unter Objekte kann an im Baum beliebige neue States anlegen. Der Out-node kann das auch automatisch, aber dann ist der Typ offen.
Wenn diese nur für node-red und vis verwendet werden, lege ich die immer vis.0 an.
Nur States unterhalb hm-rega werden an die ccu übertragen.
Gesendet von meinem SM-G900F mit Tapatalk
-
Hallo,
da es ja keine und / oder Verknüpfungen gibt habe ich folgendes getestet, leider ohne Erfolg.
Ich denke das liegt daran das in diesem Beispiel der Wert von OG2 Flur statisch auf 1 ist, das soll ja praktisch nur eine zusätzliche Abfrage sein.
Hat jemand eine Idee warum das so nicht funktioniert?
Lg Mike
-
Hallo Mike,
kannst du uns erstmal erklären, was du machen möchtest?
Deine Switch-Nodes haben nur einen Ausgang. Deswegen werden wie wohl nur dann weiterleiten, wenn die Bedingung erfüllt ist. Für den anderen Fall benötigst du eine komplementäre Prüfung oder einen sonst-Ausgang, den man im switch-Node einfach aktivieren kann.
-
Hallo,
in diesem ganz einfachen Beispiel möchte ich eine einfache UND Verknüpfung realisieren.
EG Flur und OG2 Flur Licht ein, dann OG1 Flur Licht ein.
In meinem Beispiel ist OG2 Flur Licht bereits ein, dann schalte ich EG Flur Licht ein, es sollte eigentlich dann OG1 Flur Licht schalten.
Das geht scheinbar so nicht.
-
Du hast recht, dass dies auf diese Art nicht geht, aber anders:
Code:
! [
! {
! "id": "b32d986f.6a2e88",
! "type": "ioBroker in",
! "z": "96f1d94b.d7a958",
! "name": "",
! "topic": "EG_Flurlicht.STATE",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 287.6111145019531,
! "y": 489.55558013916016,
! "wires": [
! [
! "2bae7c00.3ff194"
! ]
! ]
! },
! {
! "id": "3546ef74.cf7e8",
! "type": "ioBroker in",
! "z": "96f1d94b.d7a958",
! "name": "",
! "topic": "OG2_Flurlicht.STATE",
! "payloadType": "value",
! "onlyack": true,
! "func": "all",
! "gap": "",
! "x": 302.6111145019531,
! "y": 624.5555648803711,
! "wires": [
! [
! "83f3a054.19ae4"
! ]
! ]
! },
! {
! "id": "6e320613.41b498",
! "type": "ioBroker get",
! "z": "96f1d94b.d7a958",
! "name": "",
! "topic": "OG2_Flurlicht.STATE",
! "attrname": "payload",
! "payloadType": "value",
! "x": 700.6109924316406,
! "y": 485.00003814697266,
! "wires": [
! [
! "d4746af9.f15508"
! ]
! ]
! },
! {
! "id": "9c9e4ee7.ea617",
! "type": "ioBroker get",
! "z": "96f1d94b.d7a958",
! "name": "",
! "topic": "EG_Flurlicht.STATE",
! "attrname": "payload",
! "payloadType": "value",
! "x": 694.6110534667969,
! "y": 626.9999771118164,
! "wires": [
! [
! "d4746af9.f15508"
! ]
! ]
! },
! {
! "id": "2bae7c00.3ff194",
! "type": "switch",
! "z": "96f1d94b.d7a958",
! "name": "",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 472.6111145019531,
! "y": 490.4444351196289,
! "wires": [
! [
! "6e320613.41b498"
! ]
! ]
! },
! {
! "id": "83f3a054.19ae4",
! "type": "switch",
! "z": "96f1d94b.d7a958",
! "name": "",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 474.6111145019531,
! "y": 626.4443740844727,
! "wires": [
! [
! "9c9e4ee7.ea617"
! ]
! ]
! },
! {
! "id": "d4746af9.f15508",
! "type": "switch",
! "z": "96f1d94b.d7a958",
! "name": "",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 929.6111145019531,
! "y": 555.4444198608398,
! "wires": [
! [
! "860b3262.18f93"
! ]
! ]
! },
! {
! "id": "860b3262.18f93",
! "type": "ioBroker out",
! "z": "96f1d94b.d7a958",
! "name": "",
! "topic": "OG1_Flurlicht.STATE",
! "ack": "false",
! "autoCreate": "false",
! "x": 1167.6111145019531,
! "y": 553.2222518920898,
! "wires": []
! }
! ]Ein Flow braucht genau einen Trigger für den Start. Dies sind in node-red immer in-Nodes.
Da die Reihenfolge, in der die Schalter gedrückt werden, nicht feststeht, muss es für beide States einen in-Node geben und jeweils der andere über einen get-Node abgerufen und geprüft werden.
-
Hallo,
ok, das kann ich ja noch nachvollziehen, hier ein Ausschnitt aus deinem Beispiel.
Das entspricht ja komplett meinem, OG2 war ja bereits an, dann entspricht es exakt Deinem Beispiel und es hätte funktionieren müssen.
Die Switch sind jeweils auf "is true", oder?
Ok, ich habe gesehen, die switch von Dir sind mit == True konfiguriert, macht das den Unterschied?
Ich habe vergeblich nach einer Anleitung für den Switch gesucht, leider nichts gefunden.
Ich möchte von den programmen auf der CCU weg, bin mir noch nicht so sicher ob ich das alles in Node-RED umsetzen kann, das meiste sind logische Verknüpfungen und vergleicher, wenn Jalousie > 80% und Tageslicht… dann Licht in dem Raum aus, halt einfach einfache Dinge, dafür ist das Tool ja schon fast zu mächtig. Java kann ich nicht, am liebsten Programmierung wie in der SPS, so mit logischen Verknüpfungen.
Lg Mike
-
Kommt drauf an, was du in den Adapter-Einstellungen eingestellt hast. Aus historischen Gründen werden von den iobroker-Nodes alle Werte als String ausgegeben. Somit funktioniert nur die Abfrage auf =="true" oder Eingabe als Zeichenkette im Switch-Node.
Wenn das Häkchen in den Einstellungen nicht gesetzt ist kannst du auch auf ===true bzw. is true abfragen.
-
Hallo,
der Haken war gesetzt, aber mit == TRUE funktioniert das.Wenn ich EG Flur schalte, kommt, schaltet OG1 Flur
jetzt wollte ich ein Vergleicher mit hinzu nehmen, wie muss den dann der Switch konfiguriert werden wenn z.B Licht Schlafen bei 30% das OG1 Flur Licht geschaltet werden soll ?
! [
! {
! "id": "f1c5ce48.33ec",
! "type": "ioBroker in",
! "z": "f1d2bf37.5edd7",
! "name": "_EG Flur Licht.STATE",
! "topic": "hm-rpc.0.MEQ0276480.1.STATE",
! "payloadType": "value",
! "onlyack": "",
! "func": "all",
! "gap": "",
! "x": 179.8298797607422,
! "y": 428.28125,
! "wires": [
! [
! "75da5cde.fd5ae4"
! ]
! ]
! },
! {
! "id": "75da5cde.fd5ae4",
! "type": "switch",
! "z": "f1d2bf37.5edd7",
! "name": "",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 375.8402557373047,
! "y": 427.72222900390625,
! "wires": [
! [
! "9505a39c.7263"
! ]
! ]
! },
! {
! "id": "9505a39c.7263",
! "type": "ioBroker get",
! "z": "f1d2bf37.5edd7",
! "name": "OG2 Flur Licht:1.STATE",
! "topic": "hm-rpc.0.MEQ0276539.1.STATE",
! "attrname": "payload",
! "payloadType": "value",
! "x": 568.8299102783203,
! "y": 428.6041856695107,
! "wires": [
! [
! "e53d2389.ec33c"
! ]
! ]
! },
! {
! "id": "e53d2389.ec33c",
! "type": "switch",
! "z": "f1d2bf37.5edd7",
! "name": "",
! "property": "payload",
! "propertyType": "msg",
! "rules": [
! {
! "t": "eq",
! "v": "true",
! "vt": "str"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 765.8264312744141,
! "y": 428.72570666560443,
! "wires": [
! [
! "b33a62c1.d1b6a"
! ]
! ]
! },
! {
! "id": "b33a62c1.d1b6a",
! "type": "ioBroker out",
! "z": "f1d2bf37.5edd7",
! "name": "_OG1 Flur Licht.STATE",
! "topic": "hm-rpc.0.MEQ0276492.1.STATE",
! "ack": "false",
! "autoCreate": "false",
! "x": 967.8298797607422,
! "y": 428.8993225097656,
! "wires": []
! },
! {
! "id": "b1c3f40f.a90ce8",
! "type": "ioBroker get",
! "z": "f1d2bf37.5edd7",
! "name": "OG1 Schlafen Licht:3.LEVEL",
! "topic": "hm-rpc.0.MEQ0375275.3.LEVEL",
! "attrname": "payload",
! "payloadType": "value",
! "x": 147,
! "y": 501.9305419921875,
! "wires": [
! [
! "c352e86b.291a08"
! ]
! ]
! },
! {
! "id": "c352e86b.291a08",
! "type": "switch",
! "z": "f1d2bf37.5edd7",
! "name": "",
! "property": "payload",
! "propertyType": "flow",
! "rules": [
! {
! "t": "btwn",
! "v": "10",
! "vt": "flow",
! "v2": "40",
! "v2t": "flow"
! }
! ],
! "checkall": "true",
! "outputs": 1,
! "x": 380.8333282470703,
! "y": 503.3992919921875,
! "wires": [
! [
! "9505a39c.7263"
! ]
! ]
! }
! ]LG Mike
-
Hallo,
habe jetzt mal nachdem ich Scenes und node-red gebastelt habe etwas mit Blockly gemacht, hier habe ich leider ein Verständnis Problem, hat jemand vielleicht ein Beispiel wie ich 2 Eingänge (Zustände von Licht z.B.) mit einem "und" Glied auf einen Ausgang schalten kann?
In Blockly bekomme ich keinen state geändert, vermutlich mache ich etwas grundlegendes falsch, im Forum habe ich gesucht, so einfache Sachen werden irgendwie nicht beschrieben, wenn ich einmal den Anfang habe, danach klappt es meistens.
Lg Mike
-
habe etwas mit Blockly gemacht, hier habe ich leider ein Verständnis Problem
Lg Mike `
Mache doch bitte hierzu einen neuen Beitrag im richtigen Bereich auf.
-
Hallo,
der Haken war gesetzt, aber mit == TRUE funktioniert das.Wenn ich EG Flur schalte, kommt, schaltet OG1 Flur
jetzt wollte ich ein Vergleicher mit hinzu nehmen, wie muss den dann der Switch konfiguriert werden wenn z.B Licht Schlafen bei 30% das OG1 Flur Licht geschaltet werden soll ? `
Ich gehe mal davon aus, dass der Vergleich im Switch-Node nicht das tut, was er soll.
Es gibt in Javascript unterschiedliche Operatoren für Vergleiche. == z.B. überprüft nur den Wert, nicht aber den Datentyp. Falls möglich wird der Datentyp für den Vergleich implizit konvertiert. Mit === wird auch der Datentyp mit überprüft. Wenn einer der Werte eine Zeichenkette ist wird bei == eigentlich immer der andere auch in eine Zeichenkette konvertiert und dann diese verglichen.
Man Gibt im Switch-Node den Datentyp auch an:
Wenn du nun nicht auf Gleichheit sondern z.B. auf größer oder kleiner prüfen möchtest geht das so nicht, da dieser bei Zeichenketten nicht das gewünschte Ergebnis haben wird. Die einfachste Lösung ist, den Haken einfach weg zu machen. Dann kommt der Level-Wert direkt als Zahl und man kann dann mit Zahlen vergleichen. Ansonsten müsste man den String zuerst in einem Function-Node erst mittels Javascript in eine Zahl umwandeln.