Fehler Schalten mit 8 fach Switch zrc-90eu
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Ah. Sieh mal die letzten beiden Zeilen des Logs. Da hat sich dann ja doch noch was getan.
Wenn ich es richtig verstehe, sendet ein kurzer Druck nur ein event x.0, wobei x die Taste ist. Wird die Taste weiterhin gehalten wird anschließend ein x.2 gesendet. Nur dann wird auch beim Loslassen noch ein x.1 hinterhergeschoben. Da es sich also um float Values handelt, muss die Rule entsprechend angepasst werden, also statt intValue floatValue eintragen. Der Vergleichswert muss aber nur mit Nachkommastelle geschrieben werden, wenn sie sich von 0 unterscheidet.
Gesendet von iPad mit Tapatalk
Wenn ich es richtig verstehe, sendet ein kurzer Druck nur ein event x.0, wobei x die Taste ist. Wird die Taste weiterhin gehalten wird anschließend ein x.2 gesendet. Nur dann wird auch beim Loslassen noch ein x.1 hinterhergeschoben. Da es sich also um float Values handelt, muss die Rule entsprechend angepasst werden, also statt intValue floatValue eintragen. Der Vergleichswert muss aber nur mit Nachkommastelle geschrieben werden, wenn sie sich von 0 unterscheidet.
Gesendet von iPad mit Tapatalk
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 35
- Registriert: 22. Feb 2020 18:43
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Hallo Udo, ich würde es gerne angleichen. bin aber in programmieren nicht so erfahren. Meinst du das ich nur "intValue" gegen eine "0"
Also auf dieses Art
switch((L_Switch_Wall.state as Number).0)
Dieses wird aber mit error im log angezeigt. Als Anfänger bin ich durch Zufall darauf gestoßen, das im log Syntax Fehler angezeigt werden. Das hat mir oft geholfen.
Also auf dieses Art
switch((L_Switch_Wall.state as Number).0)
Dieses wird aber mit error im log angezeigt. Als Anfänger bin ich durch Zufall darauf gestoßen, das im log Syntax Fehler angezeigt werden. Das hat mir oft geholfen.
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Nein, Du musst stattdessen .floatValue schreiben.
Dann kannst Du mit
auch das Ende des langen Tastendrucks erkennen.
Code: Alles auswählen
switch((L_Switch_Wall.state as Number).floatValue)
Code: Alles auswählen
case 2.2 :
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 35
- Registriert: 22. Feb 2020 18:43
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Hallo Udo,
sorry habe deine Antwort jetzt erst gehen.
da scheint noch immer ein Fehler zu sein.
Ich habe als Wert immer "case X.0:" eingesetzt.
sorry habe deine Antwort jetzt erst gehen.
da scheint noch immer ein Fehler zu sein.

Ich habe als Wert immer "case X.0:" eingesetzt.
==> /var/log/openhab2/openhab.log <==
2021-01-15 20:17:18.076 [INFO ] [eclipse.smarthome.model.script.src90] - Taste 2.0 gedrückt
2021-01-15 20:17:18.082 [WARN ] [eclipse.smarthome.model.script.src90] - Diese Taste gibt es nicht!
==> /var/log/openhab2/events.log <==
2021-01-15 20:17:27.725 [vent.ItemStateChangedEvent] - L_Switch_Wall changed from 2.0 to 1.0
==> /var/log/openhab2/openhab.log <==
2021-01-15 20:17:27.741 [INFO ] [eclipse.smarthome.model.script.src90] - Taste 1.0 gedrückt
2021-01-15 20:17:27.749 [WARN ] [eclipse.smarthome.model.script.src90] - Diese Taste gibt es nicht!
var Timer tSRC90 = null
rule "Wall Switch SRC90"
when
Item L_Switch_Wall received update
then
if(tSRC90 !== null) // Rule läuft schon, Abbruch
return;
tSRC90 = createTimer(now.plusMillis(200), [ | // Sperre der Rule
tSRC90 = null // Sperre aufheben
])
if(!(L_Switch_Wall.state instanceof Number)) { // keine Zahl im Status
logWarn("src90","Rule mit ungültigem Code getriggert!")
return;
}
logInfo("src90","Taste {} gedrückt",L_Switch_Wall.state)
switch((L_Switch_Wall.state as Number).floatValue) {
//L_Switch_Wall.state as Number).intValue)
case 1.0: {
// Befehle für Taste 1
L_Bild_Light.sendCommand(if(L_Bild_Light.state != ON) ON else OFF)
//L_LED_Light.sendCommand(if(L_Light.state != ON) ON else OFF)
}
case 2.0: {
L_Light.sendCommand(if(L_Light.state != ON) ON else OFF)
}
case 3.0: {
// Befehle für Taste 3
L_Fan.sendCommand(if(L_Fan.state != ON) ON else OFF)
}
case 4.0: {
// Befehle für Taste 4
Bedroom_Light.sendCommand(if(Bedroom_Light.state != ON) ON else OFF)
Bedroom_Radio.sendCommand(if(Bedroom_Radio.state != ON) ON else OFF)
}
case 5.0: {
// Befehle für Taste 5
}
case 6.0: {
// Befehle für Taste 6
}
case 7.0: {
// Befehle für Taste 7
Bedroom_Light.sendCommand(if(Bedroom_Light.state != ON) ON else OFF)
}
case 8.0: {
// Befehle für Taste 8
Bedroom_Radio.sendCommand(if(Bedroom_Radio.state != ON) ON else OFF)
}
default: {
// Da stimmt was nicht...
logWarn("src90","Diese Taste gibt es nicht!")
}
}
end
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Ergänze bitte ma ldas logWarn am Ende so:
So kannst Du im Fehlerfall sowohl den Status als auch den errechneten Float Value sehen.
Code: Alles auswählen
default: {
// Da stimmt was nicht...
logWarn("src90","Diese Taste {} ({}) gibt es nicht!",L_Switch_Wall.state,(L_Switch_Wall.state as Number).floatValue)
}
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 35
- Registriert: 22. Feb 2020 18:43
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Hallo Udo, ich denke mal da fehlt noch eine Klammer wenn nicht sogar mehr. 

- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Ja, eine, ich hab sie oben ergänzt....
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 35
- Registriert: 22. Feb 2020 18:43
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Hallo Udo,
danke für die Verbesserung.
Bei meinen Versuch habe ich leider die fehlende Klammer an der falschen Stelle gesetzt.
Folgende Meldung erscheint im log, egal ob ich "case 2" oder "case 2.0" verwende.
danke für die Verbesserung.

Folgende Meldung erscheint im log, egal ob ich "case 2" oder "case 2.0" verwende.
Wenn ich z.B. die Taste 3 drücke, zeigt das log den Wechsel zur anderen Taste an.2021-01-18 18:40:12.788 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'Wall_Switch_all.rules'
2021-01-18 18:40:20.185 [INFO ] [eclipse.smarthome.model.script.src90] - Taste 2.0 gedrückt
2021-01-18 18:40:20.196 [WARN ] [eclipse.smarthome.model.script.src90] - Diese Taste 2.0 (2.0) gibt es nicht!
2021-01-18 18:43:33.834 [vent.ItemStateChangedEvent] - L_Switch_Wall changed from 2.0 to 3.0
==> /var/log/openhab2/openhab.log <==
2021-01-18 18:43:33.851 [INFO ] [eclipse.smarthome.model.script.src90] - Taste 3.0 gedrückt
2021-01-18 18:43:33.862 [WARN ] [eclipse.smarthome.model.script.src90] - Diese Taste 3.0 (3.0) gibt es nicht!
-
- Beiträge: 33
- Registriert: 9. Jan 2021 16:12
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
So wie es aussieht wird die Zahl nicht richtig verglichen
manchmal helfen Anführungszeichen versuch mal
manchmal helfen Anführungszeichen versuch mal
Code: Alles auswählen
case: "1.0":
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fehler Schalten mit 8 fach Switch zrc-90eu
Boah, nee... Anführungszeichen machen aus der Zahl einen String. Du kannst einen String nur mit einem String vergleichen, das heißt, Du müsstest dann statt .floatValue .toString schreiben. Das kann man auch machen, aber man muss dann schon an beiden Stellen ändern.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet