[10,40]: mismatched input '(' expecting ')'
[10,41]: missing '}' at '180'
[10,44]: mismatched input ')' expecting 'end'
Learning by doing ;-) LMS bei bestimmten Titel auf anderen Sender umschalten
-
patrick31698 -
30. August 2020 um 12:55 -
Unerledigt
-
-
Kannst du mal einen Screenshot vom Code machen? Bei mir zeigt es keinen Syntax-Fehler…
-
-
-
Mhm ich sehe auf deinem Screenshot keinen Fehler. Habe auch gerade bei mir die Rule reingepackt und die läuft sauber durch. Hast du vielleicht in einer anderen Rule einen Fehler?
-
-
Ich probiere heute nachmittag weiter.
-
das funktioniert bei mir:
Java
Alles anzeigenimport java.util.List rule "squeezeswitch" when Item Wohnzimmer_Artist changed or Item Wohnzimmer_Titel changed then val List<String> blacklist = newArrayList("lewis capaldi", "watermelon sugar") //Blacklist val List<Integer> blacklist_time = newArrayList(1, 10) //Wartezeit in s pro Blacklist item for (var i = 0 ; i < blacklist.size() ; i++) { if (triggeringItem.state.toString.toLowerCase.contains(blacklist.get(i))) { logInfo("squeezeswitch", "gefunden: " + blacklist.get(i)) Wohnzimmer_PlayFavorite.sendCommand(1) createTimer(now.plusSeconds(blacklist_time.get(i)),[ Wohnzimmer_PlayFavorite.sendCommand(0) ]) i = blacklist.size() } } end
-
-
Mhm ich sehe auf deinem Screenshot keinen Fehler. Habe auch gerade bei mir die Rule reingepackt und die läuft sauber durch. Hast du vielleicht in einer anderen Rule einen Fehler?
Ich wüsste nicht, welche andere rule da rein funken sollte. Der Fehler bleibt.
-
Muss da in OH noch ein Binding oder Addon installiert werden?
-
-
Bei der Rule von @AcidZero kriege ich eine andere Fehlermeldung.
Rule 'squeezeswitch': 'size' is not a member of 'List'; line 8, column 22, length 16 -
du must ganz oben diese Zeilen einfügen dann sollte es klappen.
import java.util.List
import java.util.ArrayList -
-
du must ganz oben diese Zeilen einfügen dann sollte es klappen.
import java.util.List
import java.util.ArrayList'Die Rule läuft. Allerdings bekomme ich wieder einen Fehler.
Code==> /var/[definition='1','0']log[/definition]/openhab2/openhab.[definition='1','0']log[/definition] <== 2020-09-05 14:31:14.885 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'squeezeswitch2.rules', using it anyway: The import 'java.util.ArrayList' is never used. 2020-09-05 14:31:14.915 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'squeezeswitch2.rules'
Aber Du musst mir jetzt noch erklären, wie ich die Zeit in der der andere Favorit läuft einstelle.Ich habe jetzt per Spotify Leweis Capaldi losjaulen lassen.
Dann soll ja eigentlich für 3 Minuten Favorit 1 laufen (bei mir Antenne Niedersachsen und dann auf Favorit 0 (NDR2) zurückgeschaltet werden.Meistens läuft bei uns NDR2 und dann soll im Falle des Falles zu Antenne geschaltet werden und wenn es sicher ist, daß der ungewünschte Titel aus ist, zurück.
Zur Zeit springt er gleich wieder auf NDR2.
Code
Alles anzeigen==> /var/[definition='1','0']log[/definition]/openhab2/openhab.[definition='1','0']log[/definition] <== 2020-09-05 14:38:10.836 [INFO ] [smarthome.model.script.squeezeswitch] - gefunden: lewis capaldi ==> /var/[definition='1','0']log[/definition]/openhab2/events.[definition='1','0']log[/definition] <== 2020-09-05 14:38:10.837 [vent.ItemStateChangedEvent] - Wohnzimmer_Artist changed from Marlon Roudette to Lewis Capaldi 2020-09-05 14:38:10.838 [vent.ItemStateChangedEvent] - Wohnzimmer_Album changed from to Divinely Uninspired To A Hellish Extent (Extended Edition) 2020-09-05 14:38:10.839 [ome.event.ItemCommandEvent] - Item 'Wohnzimmer_PlayFavorite' received command 1 2020-09-05 14:38:10.843 [nt.ItemStatePredictedEvent] - Wohnzimmer_PlayFavorite predicted to become 1 2020-09-05 14:38:10.846 [vent.ItemStateChangedEvent] - Wohnzimmer_PlayFavorite changed from 0 to 1 2020-09-05 14:38:11.445 [vent.ItemStateChangedEvent] - Wohnzimmer_Control changed from PLAY to PAUSE 2020-09-05 14:38:11.840 [ome.event.ItemCommandEvent] - Item 'Wohnzimmer_PlayFavorite' received command 0 2020-09-05 14:38:11.846 [nt.ItemStatePredictedEvent] - Wohnzimmer_PlayFavorite predicted to become 0 2020-09-05 14:38:11.851 [vent.ItemStateChangedEvent] - Wohnzimmer_PlayFavorite changed from 1 to 0 2020-09-05 14:38:14.163 [vent.ItemStateChangedEvent] - Wohnzimmer_Control changed from PAUSE to PLAY 2020-09-05 14:38:14.167 [vent.ItemStateChangedEvent] - Wohnzimmer_Titel changed from Before You Go to Antenne Niedersachsen 103.8 (Adult Contemporary) 2020-09-05 14:38:14.206 [vent.ItemStateChangedEvent] - Wohnzimmer_Cover changed from raw type (image/jpeg): 105120 bytes to UNDEF 2020-09-05 14:38:14.207 [vent.ItemStateChangedEvent] - Wohnzimmer_Artist changed from Lewis Capaldi to 2020-09-05 14:38:14.208 [vent.ItemStateChangedEvent] - Wohnzimmer_Album changed from Divinely Uninspired To A Hellish Extent (Extended Edition) to 2020-09-05 14:38:14.209 [vent.ItemStateChangedEvent] - Kueche_Titel changed from Before You Go to Antenne Niedersachsen 103.8 (Adult Contemporary) 2020-09-05 14:38:14.212 [vent.ItemStateChangedEvent] - Kueche_Cover changed from raw type (image/jpeg): 105120 bytes to UNDEF 2020-09-05 14:38:14.213 [vent.ItemStateChangedEvent] - Kueche_Artist changed from Lewis Capaldi to 2020-09-05 14:38:14.213 [vent.ItemStateChangedEvent] - Kueche_Album changed from Divinely Uninspired To A Hellish Extent (Extended Edition) to 2020-09-05 14:38:14.893 [vent.ItemStateChangedEvent] - Wohnzimmer_Control changed from PLAY to PAUSE 2020-09-05 14:38:15.598 [vent.ItemStateChangedEvent] - Wohnzimmer_Control changed from PAUSE to PLAY 2020-09-05 14:38:15.599 [vent.ItemStateChangedEvent] - Wohnzimmer_Titel changed from Antenne Niedersachsen 103.8 (Adult Contemporary) to NDR 2 Niedersachsen 96.2 (Top 40/Pop) 2020-09-05 14:38:15.661 [vent.ItemStateChangedEvent] - Kueche_Titel changed from Antenne Niedersachsen 103.8 (Adult Contemporary) to NDR 2 Niedersachsen 96.2 (Top 40/Pop) 2020-09-05 14:38:20.111 [vent.ItemStateChangedEvent] - Wohnzimmer_Titel changed from NDR 2 Niedersachsen 96.2 (Top 40/Pop) to When The Beat Drops Out 2020-09-05 14:38:20.118 [vent.ItemStateChangedEvent] - Wohnzimmer_Cover changed from UNDEF to raw type (image/png): 12296 bytes 2020-09-05 14:38:20.119 [vent.ItemStateChangedEvent] - Wohnzimmer_Artist changed from to Marlon Roudette 2020-09-05 14:38:20.230 [vent.ItemStateChangedEvent] - Kueche_Titel changed from NDR 2 Niedersachsen 96.2 (Top 40/Pop) to When The Beat Drops Out 2020-09-05 14:38:20.231 [vent.ItemStateChangedEvent] - Kueche_Cover changed from UNDEF to raw type (image/png): 12296 bytes 2020-09-05 14:38:20.232 [vent.ItemStateChangedEvent] - Kueche_Artist changed from to Marlon Roudette 2020-09-05 14:38:20.955 [vent.ItemStateChangedEvent] - Schlafzimmer_Cover changed from raw type (image/jpeg): 47138 bytes to raw type (image/png): 12296 bytes 2020-09-05 14:38:21.362 [vent.ItemStateChangedEvent] - Wohnzimmer_Cover changed from raw type (image/png): 12296 bytes to raw type (image/jpeg): 47138 bytes 2020-09-05 14:38:21.367 [vent.ItemStateChangedEvent] - Kueche_Cover changed from raw type (image/png): 12296 bytes to raw type (image/jpeg): 47138 bytes 2020-09-05 14:38:29.673 [vent.ItemStateChangedEvent] - Schlafzimmer_Cover changed from raw type (image/png): 12296 bytes to raw type (image/jpeg): 47138 bytes
-
Du kannst den Import "java.util.ArrayList" entfernen wusste nicht genau ob der auch benutzt wurde.
Die Zeit musst du pro Suchbefehl in Sekunden eingeben.
- val List<String> blacklist = newArrayList("Suchbefehl 1", "Suchbefehl 2", usw.) //Blacklist
- val List<Integer> blacklist_time = newArrayList(Zeit in Sekunden Suchbefehl 1, Zeit in Sekunden Suchbefehl 2, usw. ) //Wartezeit in s pro Blacklist item
Wenn du immer 3 min warten willst kannst du es so machen:
Java
Alles anzeigenimport java.util.List rule "squeezeswitch" when Item Wohnzimmer_Artist changed or Item Wohnzimmer_Titel changed then val List<String> blacklist = newArrayList("lewis capaldi", "watermelon sugar") //Blacklist for (var i = 0 ; i < blacklist.size() ; i++) { if (triggeringItem.state.toString.toLowerCase.contains(blacklist.get(i))) { logInfo("squeezeswitch", "gefunden: " + blacklist.get(i)) Wohnzimmer_PlayFavorite.sendCommand(1) createTimer(now.plusSeconds(180),[ Wohnzimmer_PlayFavorite.sendCommand(0) ]) i = blacklist.size() } } end
-
-
Sekunden oder Millisekunden??
-
Sekunden sorry die Autovervollständigung ...
-
-
Nach erfolgreichen Tests ist die rule nun auf mein NAS umgezogen.
Mal sehen,ob das im Alltag nun so funktioniert.Soweit erst einmal vielen Dank.
-
Leider hat die hat es im "Produktiv-einsatz" nicht funktioniert. Muß mir das aber noch mal ansehen.
-
-
Auf meiner Syno kriege ich das nicht zu laufen. Blöderweise finde ich im Log außer einer sehr allgemeinen Fehlermeldung nichts.
-
Ich habe es mal im LMS-Forum erwähnt:
-> https://forums.slimdevices.com/showthread.php…8041#post988041 -
-
Vielen Dank für die Blumen, aber geschrieben habe ich das nicht unbedingt.
Die erste simple Version vielleicht. -
Kann sein das da eine ältere openHAB Version läuft ?
Was kommt den für eine Meldung genau ?
-
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!