rule "Anruf Notification"
when
Item M_Tel_Status changed to RINGING
then
var incCall = M_Tel_EingehendAnruf.state as StringListType
val callerNumber = incCall.getValue(1)
var calledNumber = incCall.getValue(0)
if (calledNumber === "00001") {
var calledNumber = "Praxistelefon"
}
if (calledNumber === "00002") {
var calledNumber = "Privattelefon"
}
var msg = "Anruf von " + callerNumber + " fuer " + calledNumber
M_Persist_Notify.postUpdate(msg)
sendBroadcastNotification(msg)
end
Die Regel funktioniert grundsätzlich, nur wird die Nummer angezeigt und nicht durch den String "Praxistelefon" oder "Privattelefon" ersetzt.
Ich freue mich auf Eure Hilfe und schonmal besten Dank
Grüße
Bernhard
---------------------------------
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
---------------------------------
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
Punkt 1: Du darfst nicht das Schlüsselwort var voranstellen, das legt eine neue lokale Variable an, die allerdings nur innerhalb des if-Blocks gilt, also außerhalb schon wieder verworfen wird. Ich könnte mir gut vorstellen, dass hier ein Override stattfindet, das darf natürlich nicht sein.
Punkt 2: Bist Du sicher, dass es sich wirklich um einen String handelt? Um das tatsächlich sicherzustellen, wäre die Rule so sinnvoller:
rule "Anruf Notification"
when
Item M_Tel_Status changed to RINGING
then
val incCall = M_Tel_EingehendAnruf.state as StringListType
val callerNumber = incCall.getValue(1)
var calledNumber = incCall.getValue(0).toString // String erzwingen
switch(calledNumber) {
case "00001" : calledNumber = "Praxistelefon"
case "00002" : calledNumber = "Privattelefon"
}
val msg = "Anruf von " + callerNumber + " für " + calledNumber
M_Persist_Notify.postUpdate(msg)
sendBroadcastNotification(msg)
end
Das switch-Konstrukt spart hier nur wenig Code, ist aber etwas effizienter als die if-Anweisungen.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
es funktioniert nicht nur, ich habe auch wieder was dazu gelernt. TOP.
Allen einen schönen Tag!
---------------------------------
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.