Loslegen

So funktioniert Samy

Die Begriffe und das Zusammenspiel: dein Tool, Packlet, Schlüssel, Aufrufe hin und Webhook zurück.

Als Markdown öffnen

Diese Seite erklärt die Begriffe, die in der ganzen Doku vorkommen, und wie die Teile zusammenspielen. Code gibt es hier keinen.

Die Begriffe

BegriffBedeutung
Dein ToolDein Code: ein Skript, ein Server, ein Cronjob, ein KI-Agent. Er läuft bei dir, nicht bei Samy.
PackletDie Verbindung zwischen einem deiner Tools und Samy. Du legst es in der App an. Es hat einen Namen, einen Avatar, eine Art und einen Schlüssel.
KanalSo erscheint ein Packlet in der App: als Eintrag im Tab Kanäle oder als Kachel im Tab Apps.
Kanal-ArtKanal („Mir Bescheid geben“) oder App („Eigene App bauen“). Du wählst sie beim Verbinden. Danach steht sie fest.
Antworten erlaubenSchalter für Kanäle: Du schreibst deinem Tool, es antwortet. Lässt sich jederzeit umlegen.
SchlüsselDas Passwort deines Packlets, beginnt mit samy_. Mit ihm meldet sich dein Tool bei Samy an.
Webhook-URLDie Adresse deines Tools, an die Samy meldet, was du in der App tust.

Faustregel: Ein Tool, ein Packlet. So hat jedes seinen eigenen Kanal, und du kannst einen Schlüssel tauschen, ohne dass die anderen Tools ausfallen.

Zwei Richtungen

Bei dirDein ToolSkript, Server, Raspberry Pi oder Cronjob
POST /v1/pushWebhook
DazwischenSamyspeichert die Nachricht und schickt den Push
PushTippen, Schalten, Schreiben
In der TascheDein HandyKanal in der App, Push auf dem Sperrbildschirm

Hin: Dein Tool ruft Samy. Dein Tool schickt einen HTTP-Aufruf mit dem Schlüssel. Samy speichert, zeigt es im Kanal und schickt einen Push. Dafür braucht dein Tool nur ausgehendes Internet. Es muss nicht erreichbar sein.

Zurück: Samy ruft dein Tool. Tippst du einen Knopf, legst einen Schalter in einer Nachricht um oder schreibst in einem Kanal mit Antworten, schickt Samy ein Ereignis an die Webhook-URL deines Packlets. Dafür muss dein Tool unter einer öffentlichen https-Adresse erreichbar sein.

Die Richtung zurück ist freiwillig. Ein Kanal, der nur meldet, braucht sie nicht. Knöpfe, Elemente und Antworten leben davon.

Eine App geht einen dritten Weg: Sie ist deine eigene Webseite. Was du dort tippst, schickt die Seite direkt an deinen Server. Samy sagt ihm über ein Session-Token, wer die Seite öffnet.

Hinweis: Ohne Webhook-URL speichert Samy deine Eingaben und zeigt sie in der App, aber dein Tool erfährt nichts davon. Es wird auch nichts nachgeliefert, wenn du die Adresse später einträgst.

Was jede Art kann

KanalKanal mit AntwortenApp
Wo in der AppTab KanäleTab KanäleTab Apps, als Kachel
Dein Tool schickt Nachrichten (POST /v1/push)jaja, als Antwortenja, sie kommen nur als Push
Du schreibst deinem Tool–ja–
Dein Tool zeigt eine eigene Webseite (PUT /v1/ui)––ja
Knöpfe und Elemente in Nachrichtenjaja–
Braucht einen Webhooknur für Knöpfe und Elementejanein, die Seite spricht mit deinem Server

Eine App zeigt keine Nachrichten, nur ihre Seite. Schickt sie trotzdem eine Nachricht, kommt die als Push, und die Kachel zeigt einen Zähler.

Knopf oder Button

Beides lässt dich dein Tool vom Handy aus bedienen. Der Unterschied:

KnopfButton
Wounter einer Nachricht, Feld buttonsElement in einer Nachricht, Feld elements
Wie ofteinmal. Danach zeigt die Nachricht, was du gewählt hast.beliebig oft
Gut füreine Antwort auf eine Frage: „Freigeben“, „Ablehnen“eine Aktion, die du wiederholst: „Neu starten“, „Cache leeren“
Ereignis am Webhookbuttonui

Der Button ist eines von sechs Elementen. Die anderen sind Text, Schalter, Eingabefeld, Diagramm und Tabelle. Du hängst sie an eine Nachricht.

Was Samy speichert

  • Nachrichten bleiben im Kanal, bis du sie löschst. Langes Drücken auf eine Nachricht löscht sie. Dein Tool erfährt davon nichts.
  • Werte von Schaltern und Eingabefeldern in Nachrichten speichert Samy selbst. Dein Tool muss sie nicht zurückschicken.
  • Der Schlüssel wird nie im Klartext gespeichert. Mehr dazu unter Schlüssel und Sicherheit.
  • Das Protokoll in den Einstellungen jedes Packlets zeigt die letzten Aufrufe deines Tools und die Webhook-Aufrufe an dein Tool.

Wie es weitergeht