CallMeBot Signal
Beta HA app 0.1.2 in the shared Blocks for HA repository. Complete DE/EN/FR, system language and light/dark/system appearance. Original UGSo implementation inspired by ioBroker.signal-cmb.

Setup
- Add
https://github.com/rockbaer2007/ugso-ha-mqtt-addonsto the HA app store and install CallMeBot Signal. - Configure HA MQTT, start the app and open its Ingress UI. Supervisor MQTT credentials take priority; app options are the fallback.
- Use the current bot contact from the official Signal activation guide. Send its activation phrase in Signal and wait for your Signal API key.
- Save a profile ID, display name, your international phone number with + or Signal UUID, and matching key. When your number is hidden, the bot may provide a UUID. Copy the recipient value from the activation link unchanged.
- Choose a default profile. “Send message” really sends to the selected saved profile.
WhatsApp keys do not work for Signal. Both apps can run together with isolated profiles, MQTT topics, client IDs and diagnostic entities. The WhatsApp app retains its existing technical IDs.
Blockly and profile selection
Since Blocks for HA 0.1.50: Messages → Signal · CallMeBot.

Click the profile field, search by name/ID and select. Empty uses the default recipient. The display name is shown; the profile ID is stored. Connect text, a variable or Jinja as the message. Logging: errors only, none or info. The block generates native mqtt.publish; JSON is serialized after template evaluation.
The app publishes a catalog on ugso/callmebot_signal/profiles and the MQTT discovery diagnostic entity sensor.ugso_callmebot_signal_profiles. State: profile count. Attributes: IDs, names, default and source marker, no recipient, message or key. Blocks uses the source marker even if the entity is renamed. Standard discovery prefix: homeassistant.
Without a connection, enter the profile ID manually or leave it empty. Invalid/deleted IDs are never replaced automatically. JSON projects retain the dedicated block; YAML import displays the send as a general HA/MQTT action.
Protocol and limits
- Send:
ugso/callmebot_signal/send, QoS 0, retain false. - Example:
{"profile":"default","message":"Hello from HA","loglevel":"errors"}. Empty profile uses the default recipient. - Result:
ugso/callmebot_signal/result, not retained, profile, request ID, status and time only. - Catalog and availability:
ugso/callmebot_signal/profilesandugso/callmebot_signal/availability, retained. Availability reflects the broker connection. - Up to 16 profiles, 4000 characters, queue of 20, at least 10 seconds between attempts per profile. Faster commands are rejected.
- Optional
request_id: one-hour deduplication, up to 1000 IDs. No automatic retries/replay after restart; retained commands are rejected. - One Signal app instance per broker. Restrict write access to command topics. External MQTT TLS configuration is not included.
This app sends text messages to your own activated recipients. Images, groups and replies are not implemented. accepted confirms API acceptance only. Recipient, key and message are sent over HTTPS to https://signal.callmebot.com/signal/send.php.
Keys stay in the private backend file /data/profiles.json, are never returned to browsers/MQTT/Blockly and are not logged. The file is not encrypted and is included in HA backups; protect backups accordingly.
Verification
Backend, UUID/number validation, MQTT protocol, Blockly/Jinja export, DE/EN/FR and mobile layout are verified with test data. Real Signal delivery and HA Supervisor installation require your own setup. Automated tests never send real messages.
Source · Apache-2.0 · Independent community project.
Beta: history, profile backup and MQTT TLS
History persists up to 200 entries with timestamp, profile ID, source and result. Filter by profile/error status and explicitly confirm clearing. It contains no messages, numbers, API keys or request IDs. Accepted still means provider acceptance, not confirmed delivery. A storage error never causes automatic resending.
Profile backups encrypt numbers, API keys and the default profile using AES-GCM and a password-derived key (scrypt). Choose at least 12 characters and keep the password separately; it is not stored. Restoration requires it, explicit confirmation and valid authenticated content. Wrong passwords, damaged files or backups from the other CallMeBot app leave profiles untouched. Pending sends block restoration. MQTT credentials and history are excluded; use a full HA app backup for those.
Automatic HA broker selection remains the existing default. Disable it to configure an external host, port, username and password. TLS always checks certificates and hostname; custom PEM CA and client certificate/key uploads are supported. Choose the broker TLS port, often 8883. Empty secret fields preserve saved values. HA/Blocks must use this broker or forward send/result/profile/discovery topics between brokers; this is not an automatic broker bridge.
Existing profiles.json, recipient keys, MQTT topics and entity IDs remain unchanged. History uses /data/history.json; explicitly saved MQTT settings use /data/mqtt.json. No automatic configuration rewrite. All new UI labels support DE/EN/FR.
Beta is displayed in the UI and description. HA has no native beta stage, so the valid experimental configuration stage remains. HA configuration.
