The signal binding allows openHAB to exchange message with other Signal users.
VERY IMPORTANT : The signal-cli bundled with the current version of the signal binding is faulty. You have several possibilities in the settings page:
- manage the version by yourself (use the “local” or “network” kind and provide signal-cli by your own mean)
- Or (simpler) use the “managed” kind, and write 0.14.5 in the “Kind related configuration parameter” to force the signal binding to download and use a newer version.
Also please note :
STILL WAITING FOR TEST on raspberry, windows, macos. May work (or not). Feedback welcome.
Features:
- Dedicated account (if you have a spare number, such as landline), or an account linked to your mobile phone number.
- Register your account in two steps from within openHAB, no command line or extra manipulation (include verification code, QR code)
- Sending, receiving text messages (individual user for the moment, no group).
- Sending images
- Trigger event.
- A “send” action for your rules.
- Delivery and read notifications
- (should) Work out of the box for the following platforms: linux (x64, arm, NOT musl), Windows, Macos (arm, NOT x64). For the others, please provide a signal-cli installation by yourself and use the “local” or “network” configuration.
See documentation in Resources section for setup.
KNOWN ISSUES
- Registration process with a phone call to get the verification code may be difficult. You may encounter
“Cannot verify message: Timeout while waiting for response”, and it may be a false error. After entering the verification code, deactivating and reactivating the account could be enough to make it work.
Configuration initialization (I made a mistake with the default parameter). You need to go the settings page and do some modifications for the bundle to register the right parameter for the “kind” (i.e. you probably want MANAGED for an automated download). If you don’t do so, then you have a silly issue with the binding trying to execute a directory.Fixed, feedback welcome.Works only with Java 25. As time of write, not directly compatible with the Java runtime running openHAB (Java 21). (look alpha 15 section for more information). Fixed, feedback welcome.- If you just updated, you may need to register again your number
New registration behavior is not optimal. I sometimes had error messages during verification process, but sometimes it was false error, because restarting openHAB make it work nonetheless. Please do so and sorry for the inconvenience (do not hesitate to look at the end of this thread, as several users has detailed their process).Feedback welcome.
Status and future development.
Fix all these alpha issues.
Then I will hopefully make a pull request, to include it officially in openHAB.
Contribution welcome ! :
Sending image(DONE)- Group messaging
- Auto discovery of already configured account in signal-cli
- … suggestions welcome
Changelog
Version 5.1.3 BETA 16
At last, this version is “usable”, without tinkering.
Auto download native graalVM signal-cli version (Java25 not needed anymore)
Fix registering issues
Upgrade version to openHAB 5.1.3 needed
Version 5.0.0 ALPHA 15
There will be bugs ! I appreciate if you want to test it and give feedbacks, but do not except a hassle free experience. Sorry for the inconvenience.
First release using the full signal-cli binary as an external process, and not only the library as a dependency.
You may (or may not) have to register again your account (I had to, but I don’t know if it’s because I made a mistake or if it is mandatory). Feedback on this subject is also welcome.
The registering process is now based on Actions (see the documentation).
Good news:
- The binding can (theoretically) manage and install signal-cli without manual intervention. This is the default.
- You could alternatively choose to provide it the path to a binary on your system.
- Or even use a remote one (TCP).
You configure this behavior at the binding level. Look at the documentation.
BUT, bad news, the managed version, unfortunately, is not completely autonomous. There is a caveat, as signal-cli 14+ works with Java25+ only. You have to provide the binding a path to the JDK25+ home. To do so, write, in the “configuration” parameter, the following :
JAVA_HOME=/your_path/to/the/jdk25/
(of course, adjust it to a valid path)
Warning : make sure that the openHAB user can access the JDK (read/execute).
I appreciate feedbacks. I appreciate even more feedbacks AND insights. If you are a developer or competent enough, please provide me with the maximum information you can give (and if you have a fix, may you be blessed, please open a PR !)
Version 5.0.0 BETA 14
(dropped - does not work, was for testing purpose only)
version 5.0.0 - BETA 13
Bumping signal-cli version to 0.13.18
openhab 5 only
version 4.3.0 - BETA 12
Bumping signal-cli version to 0.13.10
Remove warnings
version 4.2.0 - BETA 11
Fix linking account is failed (exceptions.MissingCapabilitiesException: StatusCode: 409) by bumping signal-cli version to 0.13.6
version 4.2.0 - BETA 10.
Bump to signal-cli version 0.13.4
i686 32 bits support
version 4.2.0 - BETA 9.
Bump to signal-cli version 0.13.3
musl arch support attempt
Adding (very simple draft) reaction emoji support
Adding reponse status to “send” action
version 4.2.0 - BETA 8.
Bump to signal-cli version 0.13 (with a backport from java 21 to java 17)
version 4.1.0 - BETA 7.
Fix the “signal-cli version is too old for the Signal-Server, please update.” message
version 4.1.0 - BETA 6.
Update signal-cli version to fix error when registering new linked account (accomodate changes in the whisper signal server side)
Renaming feature to avoid kar autodeletion by openHAB ?
version 4.1.0 - BETA 5.
First version explicitely targeting openHAB 4.
Written with java 17 (no more java 11 rewrite)
In the hope of resolving the sqlite error, the binary is now a KAR file, and sqlite is now a dependency feature.
Version 3.4.0 - BETA4
Action for sending image now include an accompanying text
Fix an error that forced to use vocal validation (which is broken)
Try to fix vocal validation with a workaround found on signal-cli forum
Version 3.4.0 - BETA3
Compatiblity with openHAB 3.4.x and openHAB 4.0
New feature : action to send images (see documentation)
Version 3.4.0 - BETA2
WARNING : breaking change ! You must delete and recreate your Thing account.
Full rewrite using the signal-cli library as a code base.
Fix : Connection issue following unknown changes on the whisper server side around the 6 december.
Fix : In all messages sent from the binding, the sender should now be apparent with the name you setup.
Fix : You can now send “note to yoursel” (if you use your full number : notification ON. if you use the special recipient “self” : no notification)
New : Delivery and Read status (both ways)
Version 3.4.0 - BETA1
Fix PushNetworkException - javax.net.ssl.SSLHandshakeException
(And some other too verbose exceptions in log)
Version 3.4.0 - BETA0.1
Fix DeprecatedVersionException
Version 3.4.0 - BETA0
Initial contribution.
Dedicated account, linked account.
Basic messages (send, receive)
Trigger event
Send action
Technical note
I strongly encourage you to contribute if you can, because it could take ages before I have the time to implement other features.
If you want to contribute, here is some information :
- this binding uses the signal-cli project and communicate with it with JSON-RPC.
- about the managed mode: the binding downloads binaries from the openHAB JFrog artifactory: one download for the release (a GraalVM binary), and one download for libsignal (the native signal lib). Both depend on the system architecture running openHAB.
- I push new versions to JFrog manually. I build them on my fork with github actions, because signal-cli doesn’t provide graalvm binaries for architecture other than linux x64. I also have to take the right libsignal version from another repository and upload them alongside.
- feel free to open a PR to my fork. A note on AI: If you want to use AI, I’m OK with that, with one absolute caveat: if you don’t understand what the AI did/coded, AND if you didn’t do a review with code quality in mind, then please understand that it is probably of no value to me (I may have done it myself, I know how to use AI and also how to do crappy code
). As many open source project encoutered issue with AI, I am also one of those thinking that the reviewer time is now a precious bottleneck.



