Rule - Blockly Script mit toString.contains

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
neuling10
Beiträge: 56
Registriert: 26. Mär 2022 18:15
Answers: 0

Rule - Blockly Script mit toString.contains

Beitrag von neuling10 »

Hallo an die Runde,

ich habe mittlerweile alle meine Rules aufgrund der für mich doch etwas einfacheren Lesbarkeit und vor allem Adaptierbarkeit bei Änderungsbedarf von DSL auf Blockly Rules umgestellt. Das ganze funktioniert bisher soweit so gut bis auf die Abfrage, ob ein String eines Items einen gewissen Text beinhaltet (für die Steuerung div. Geräte mittels Harmony Fernbedienung). In der funktionierenden DSL Rule sieht das recht simpel aus:

Code: Alles auswählen

if(Kamera_Terrasse_IRSteuerung_SAT_Wohnzimmer.state.toString.contains("0x08ZUH837")) {
sendCommand('Kamera_Terrasse_Tilt', 'DECREASE');
}
Nach mehreren Versuchen schaffe ich es jedoch nicht das Statement

Code: Alles auswählen

item.state.toString.contains("Codewort")
in einer Blockly Rule abzubilden. Hat hierzu vielleicht jemand eine Idee, wie das funktioniert?

Grüße
neuling10

Harka
Beiträge: 307
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Rule - Blockly Script mit toString.contains

Beitrag von Harka »

Hi,
wenn find größer 0 ...
Gruß

neuling10
Beiträge: 56
Registriert: 26. Mär 2022 18:15
Answers: 0

Re: Rule - Blockly Script mit toString.contains

Beitrag von neuling10 »

Guten Abend Harka,

danke für den Hinweis :)

Leider hänge ich nun bei einem anderen Problem. Meine Überlegung ist es, dass der Index bei gefundenem Suchwort an eine Variable übergeben wird. Ist die Variable größer Null, wurde das Suchwort im String des Items gefunden.
Nun probiere ich schon diverse Varianten und komme nicht drauf, warum das Suchwort nicht gefunden wird (sicher vorkommende Wörter wie "2023" oder "Time", siehe Log-Einträge) und die Variable/das Item auf 0 bleiben :?:

Bild

Code: Alles auswählen

2023-04-09 22:20:40.997 [INFO ] [org.openhab.rule.1c07ca034b         ] - {"Time":"2023-04-09T21:20:14","IrReceived":{"Protocol":"UNKNOWN","Bits":16,"Hash":"0x5808A5C1"}}
2023-04-09 22:20:40.998 [INFO ] [org.openhab.rule.1c07ca034b         ] - 0
2023-04-09 22:20:40.999 [INFO ] [org.openhab.rule.1c07ca034b         ] - 0
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Harka
Beiträge: 307
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Rule - Blockly Script mit toString.contains

Beitrag von Harka »

Huch, jetzt glaube ich (halbwegs) verstanden zu haben wo Du hin willst und wo scheiterte ^^
Du hast ein JSON-Wert, der erst mal mit dem Blockly-toString (in Text - mit Zahnrad - ein Item) vorbehandelt werden muss.
Forum-Find.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

neuling10
Beiträge: 56
Registriert: 26. Mär 2022 18:15
Answers: 0

Re: Rule - Blockly Script mit toString.contains

Beitrag von neuling10 »

Ah, vielen Dank @Harka, es läuft nun wie gewünscht :D
Auf das Zahnrad-Symbol wäre ich wohl noch tagelang nicht gekommen...

Antworten