I have just got this working great in openhab3 with the USRobotics 5637. There is currently no TCP binding in OH3, so used the Logviewer binding. Code below:
phone.things
logreader:reader:phoneLog [
filePath=“/var/log/cidcall.log”,
customPatterns="CID: "
]
phone.items
String PhoneRaw “Phone Log [%s]” { channel=“logreader:reader:phoneLog:lastCustomEvent” }
DateTime PhoneTime “Phone Time [%1$td/%1$tm/%1$ty %1$tH:%1$tM]”
String PhoneNumber “Phone Number [%s]”
String PhoneName “Phone Name [%s]”
String PhoneMessage “Phone Message [%s]”
phone.rules
rule “Caller ID”
when
Item PhoneRaw received update
then
var parts = PhoneRaw.state.toString.split(“\*”)
if (parts.get(12) == “NO NAME”) parts.set(12,“”)
if (parts.get(10) == “NONE”) parts.set(10,“”)
PhoneNumber.postUpdate(parts.get(8))
PhoneName.postUpdate(parts.get(12))
PhoneMessage.postUpdate(parts.get(10))
PhoneTime.postUpdate(now.toLocalDateTime().toString())
end