Signal Binding [4.3.0.0;5.0.0.0)

The signal binding allows openHAB to exchange message with other Signal users.
WARNING : LEGACY VERSION FOR openHAB 4
Limited support. You should use openHAB 5 and the relevant addon version

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

See documentation in Resources section for setup.

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 “lib” part as a codebase, with very little adjustments (available on my personal fork of signal-cli). Signal-cli uses itself the underlying library com.github.turasa:signal-service-java, which is a modified version of the android Signal official library. And deep down below, there is the native library for various architecture (compiled from the official signal repository in rust). I included in the binding the autobuilded ones from exquo/signal-libs-build on github, and libsignal-client on gitlab (no longer needed)

Note to other developers. What To Do To Update (In the case I’m not responding and the service is broken) :

You should probably update signal-cli, as they probabley fixed it upstream.
Merge the new signal-cli tag version in the openhab_adjustement branch (on my personal fork of signal-cli). Get the source in the signal-cli lib subproject and overwrite the sources in the 3rdparty source directory of the binding project.
Check what libraries has been updated in the signal-cli project (settings.gradle.kts). You may (or may not) update/add the corresponding library in the pom. Try to stick to the version already present in openHAB.
Beware of the transitive dependencies, they may also need update ! Especially the libsignal-client (transitive dependency of signal-service-java).
If the libsignal-client is updated, you also need to update all the signal library binaries (in the src/main/resources/lib). You can follow this link to get new libraries. I personally use those from the user “exquo”. Get the right version ! (same version number as libsignal-client).

Resources

KAR bundle

Source and documentation