Ja samozwańczy Julian powołałem do życia Morris’a?
Morris to rdzeń (Core), który:
– przyjmuje dane z konektorów (np. WhatsApp, Smart Home),
– rozpoznaje wyzwalacze (webhook, MQTT, cron, akcje ręczne),
– odpala odpowiednie chainy,
– przetwarza dane krok po kroku przez pluginy (lokalne lub zewnętrzne),
i robi z tym, co trzeba: wysyła do Notiona, zapisuje w bazie, publikuje na Discordzie czy pinguje IoT.
Brzmi jak Node-RED? Może. Ale Morris ma centralny Core w Pythonie, z prostym UI, API i własnym pomysłem na elastyczność.
🧩 Wtyczki i Chainy
Plugin to moduł przetwarzający dane (np. UppercasePlugin, TranslatePlugin, SendToNotion)
Chain to lista kroków, które mają się wykonać (z parametrami i opcją warunków)
Chainy są triggerowane dowolnie – nawet przez zewnętrzne harmonogramy
I co ważne – każda wtyczka zewnętrzna rejestruje się ręcznie, posiada swój plugin.json z unikalnym ID i API keyem. Żadnego chaosu, pełna kontrola.
📦 Architektura w skrócie
Backend: Flask (REST API + Webhooki)
Komunikacja: MQTT / HTTP
Frontend: Panel webowy (Jinja2 + Bootstrap)
Wtyczki: Python lub Node.js, lokalne lub zdalne
Obsługa statusów, logiki, harmonogramów, w przyszłości – flow UI
📲 Przykład użycia
Wtyczka na VPS loguje się do WhatsApp Web (Puppeteer)
Nasłuchuje wiadomości z hashtagiem
Pobiera zdjęcia, zapisuje je lokalnie
Wysyła metadane + linki do plików do Morrisa
Morris odpala chain: extract_text → translate → push_to_notion
🔐 Bezpieczeństwo? Tak.
API Key dla każdej wtyczki
Autoryzacja na webhookach
Tokeny, rejestracja przez panel admina, unikalne ID instancji
I jeszcze mango do tego
Morris to framework, asystent, automat i łącznik. Taki backendowy Alfred, ale z MQTT.