No SMTP or DNS setup. No Login. No Tracking. Anonymous push notifications to multiple devices with a single HTTP POST or MQTT request.
import requests
url = "https://alertify.while0x1.com/send-alert"
payload = {
"projectId": "your_project_id",
"title": "SCADA Warning",
"message": "Pump station 4 pressure drop detected.",
"severity": "critical" #info, warning or critical
}
headers = { "X-User-Id": "your_device_id" }
response = requests.post(url, json=payload, headers=headers)
print(response.json())
curl.exe -X POST "https://alertify.while0x1.com/send-alert" `
-H "Content-Type: application/json" `
-H "X-User-Id: your_device_id" `
-d '{"projectId": "your_project_id", "title": "Terminal Alert", "message": "Manual trigger from PowerShell", "severity": "critical"}'
import paho.mqtt.client as mqtt
import json
# Connect to the Industrial Broker
client = mqtt.Client(client_id="industrial_gateway_01")
client.username_pw_set("your_project_id", "your_app_id_key")
client.connect("alertify.while0x1.com", 1883)
# Send Structured JSON or Raw Strings
topic = "alertify/project/your_project_id"
payload = json.dumps({"title": "Tank 1", "message": "High Level","severity": "warning"})
client.publish(topic, payload)
client.disconnect()
import uuid
import json
import datetime
import paho.mqtt.client as mqtt
# use port 1883 for TCP MQTT messages
# 1883 is UNENCRYPTED so your ID/Password is vulnerable
# Remove client.tls_set() for 1883 comms
# Remove transport="websockets" from the mqtt.Client for 1883 comms
# use PORT 443 for TLS encrypted MQTT connections
# NGINX reverse proxy will intercept all 443 traffic for TLS
PROJECT_ID = "YOUR_PROJECT_ID"
USER_ID = "YOUR_USER_ID"
MQTT_BROKER = "mqtt.while0x1.com"
MQTT_PORT = 443
UID = str(uuid.uuid4())
VALUE = 42 # Example sensor value
payload = {
"uid": UID,
"name": "Main Water Pump",
"value": VALUE,
"timestamp": datetime.datetime.now().strftime("%H:%M:%S %y-%m-%d"),
"status": "Running smoothly"
}
TOPIC = f"alertify/project/{PROJECT_ID}/live"
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Connected to Alertify Broker")
# Test 1: JSON Payload
json_payload = json.dumps(payload)
client.publish(TOPIC, json_payload)
print(f"🚀 JSON Alert Sent to {TOPIC}")
else:
print(f"❌ Connection failed with code {rc}")
client = mqtt.Client(transport="websockets", client_id="python_test_runner")
client.username_pw_set(PROJECT_ID, USER_ID)
client.on_connect = on_connect
client.tls_set()
print(f"Connecting to {MQTT_BROKER}...")
client.connect(MQTT_BROKER, MQTT_PORT, 60)
try:
client.loop_forever()
except KeyboardInterrupt:
print('Disconnecting from MQTT broker')
client.disconnect()
import paho.mqtt.client as mqtt
import json
# Configuration
USER_ID = "YOUR_USER_ID"
PROJECT_ID = "YOUR_PROJECT_ID"
HOST = "mqtt.while0x1.com"
def on_connect(client, userdata, flags, rc):
print(f"Connected with result code {rc}")
# Subscribe to the live topic
client.subscribe(f"alertify/project/{PROJECT_ID}/cmd")
def on_message(client, userdata, message):
payload = message.payload.decode("utf-8")
print(f"\n[⬇️ INCOMING MQTT] Topic: {message.topic}")
try:
data = json.loads(payload)
uid = data.get("uid")
if uid == "manual_trigger":
value = data.get("value")
print("=" * 60)
print(" 🚨 AUTHORIZED OVERRIDE COMMAND RECEIVED FROM MOBILE APP 🚨")
print("=" * 60)
print(f" Target Element : {uid}")
print(f" Command Value : {value}")
if value == 1:
print(" Action : ENGAGING RELAYS... SUCCESS.")
else:
print(" Action : DISENGAGING RELAYS... SUCCESS.")
print("=" * 60)
else:
print(f" [System] Ignored payload for uid: {uid}")
except json.JSONDecodeError:
print(f" [Warning] Received non-JSON payload: {payload}")
# --- MAIN EXECUTION ---
print("🚀 Starting Edge Device Listener...")
client = mqtt.Client(transport="websockets")
client.username_pw_set(PROJECT_ID, USER_ID)
client.on_connect = on_connect
client.on_message = on_message
client.tls_set()
client.connect(HOST, 443, 60)
try:
client.loop_forever()
except KeyboardInterrupt:
print("\n🛑 Disconnecting...")
client.disconnect()
curl -X POST "https://alertify.while0x1.com/send-alert" \
-H "Content-Type: application/json" \
-H "X-User-Id: your_device_id" \
-d '{
"projectId": "your_project_id",
"title": "Terminal Alert",
"message": "Manual trigger from cURL",
"severity": "critical"
}'
import (
"bytes"
"net/http"
)
func main() {
url := "https://alertify.while0x1.com/send-alert"
jsonStr := []byte(`{"projectId":"your_project_id", "title":"SCADA Warning", "message":"Pump station 4..."}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
req.Header.Set("X-User-Id", "your_device_id")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
client.Do(req)
}
const response = await fetch('https://alertify.while0x1.com/send-alert', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-User-Id': 'your_device_id'
},
body: JSON.stringify({
projectId: 'your_project_id',
title: 'SCADA Warning',
message: 'Pump station 4 pressure drop detected.'
})
});
Traditional alert services require complex setup, logins, and configurations. n+1 Alerts is built for engineers who want reliable notifications with zero friction.
curl, it can send an alert.
Perfect for local testing and personal IoT projects.
Download the app to begin.
For heavy data logging and high-frequency alerts.