
Diese Geschichte begann vor anderthalb Jahren, als „Noolite“ -Lichtsteuergeräte in meine Hände fielen (nun, als ich sie bekam, kaufte ich sie selbst, ich habe eine Schwäche für alle Arten von interessanter Hardware). Dann standen mir zwei Blöcke der SB-Serie und der MTRF-64-Adapter zur Verfügung. Die Blöcke dieser Serie haben mich dadurch angezogen, dass sie in die Hausverkabelung eingebettet werden können, ohne sie wesentlich zu wiederholen: Ich nahm einen Schalter heraus und steckte einen Block an seine Stelle und hängte den Schalter an speziell aus dem Block entfernte Drähte. In dieser Konfiguration kann das Licht sowohl über einen Funkkanal als auch gemäß den Klassikern über einen Schalter gesteuert werden. Es gibt natürlich ein Minus: Die Blöcke dieser Serie unterstützen kein Feedback, aber ich würde es gerne tun, denn in MTRF-64 ist es das, aber na ja. Aber dann habe ich mich geweigert, ein Gateway zugunsten eines Adapters zu kaufen. Sein Potenzial ist größer als das eines Gateways.
Nachdem man viel mit dem Kronleuchter geblinzelt hatte, bestand der Wunsch, alles auf einen gemeinsamen Nenner zu bringen, aber anscheinend verdunkelten andere interessante Eisenstücke diesen Wunsch, weil die Blöcke in eine entfernte Kiste geschickt wurden. Sie wären also dort gewesen, wenn ich sie bis vor kurzem nicht
genauer auf die unanständig dicke Staubschicht auf ihnen geachtet hätte.
Leistungsblock SB-1-150 und MTRF-64Sofort tauchte in meinem Kopf ein Bild auf, auf dem ich das Licht ausschalte, bevor ich ins Bett gehe, ohne aus dem Bett zu kommen, oder das Skript „Ich gehe“ mit einem Knopfdruck verwende und alles ausschalte, was in meiner Abwesenheit ausgeschaltet werden sollte.
Schließlich wurde beschlossen, zu handeln. Warum habe ich angefangen, mein Fahrrad zu nieten und das fertige System nicht sofort gekauft? Nur weil ich etwas mit meinen eigenen Händen machen wollte. Sie kennen dieses Gefühl, wenn Sie etwas zusammenstellen, und es funktioniert. Außerdem lerne ich endlich eine objektorientierte Sprache am Beispiel eines realen Projekts (ich habe Python 3 gewählt).
Idee
Es ist ganz einfach - steuern Sie Lichter und Geräte von überall im Haus. Als Hauptsteuergerät wählte Raspberry Pi Modell B + in Verbindung mit dem MTRF-64. Aufgrund der mangelnden Erfahrung bei der Entwicklung solcher Anwendungen wurde beschlossen, mit etwas Einfachem zu beginnen. Also bin ich zur Implementierung des Telegramm-Bots gekommen.
Raspberry Pi B + und MTRF-64Für mich selbst habe ich beschlossen, dass zum ersten Mal die folgenden Bot-Funktionen für mich ausreichen würden:
- Steuerung von Licht und Haushaltsgeräten;
- Unterstützung für dimmbare Geräte (Licht, Haube usw.);
- Die Verteilung der Geräte nach Raum;
- Unterstützung für Skripte zur schnellen Verwaltung einer Gruppe von Geräten;
- Benutzer hinzufügen und in Gruppen verteilen: Eigentümer (können Geräte im Haus steuern, haben Zugriff auf die Einstellungen des Hauses), Gäste (können Geräte im Haus steuern, haben keinen Zugriff auf die Einstellungen des Hauses), Abonnenten (warten, bis der Eigentümer sie ins Haus einlädt) .
Installation
Laden Sie zunächst das Betriebssystem für unseren Himbeerkuchen herunter. Ich bevorzuge den Beamten für diesen
Raspbian-Schal . Es ist praktisch, ein Image mit dem Dienstprogramm Win32DiskImager auf eine CD hochzuladen.
Hier wartete ich auf einen kleinen FangTatsache ist, dass ich es gewohnt bin, remote mit Himbeeren zu arbeiten, aber aufgrund der Tatsache, dass in neueren Versionen des Raspbian SSH-Zugriffs standardmäßig deaktiviert ist, musste ich
mich der Verwendung dieses USB-UART-Adapters
annähern
1. Verbinden Sie das Ganze und melden Sie sich an:
login: pi password: raspberry
2. Stellen Sie zunächst sicher, dass Sie die neuesten Programmversionen verwenden. Sie könnten denken: Wir haben gerade das Distributionskit heruntergeladen. Wo ist es frisch? Aber nein ...
sudo apt-get update sudo apt-get -y dist-upgrade
3. Wir installieren den Paketmanager pip3 und git:
sudo apt-get install -y python3-pip git
4. Laden Sie die Bibliotheken herunter, die für die Arbeit des Bots erforderlich sind. Ich verwende die pyTelegramBotAPI-Bibliothek, die sich um alle Nuancen des Sendens und Empfangens von HTTP-Anforderungen kümmert und es mir ermöglicht, mich direkt auf die Logik zu konzentrieren:
sudo pip3 install pytelegrambotapi pyserial
5. Laden Sie den Bot herunter:
sudo git clone https://github.com/DZimasik/nooBot.git
Bevor Sie den Bot starten, müssen Sie ihn registrieren, d. H. Holen Sie sich seine eindeutige ID (Token). Ein weiterer spezieller Bot wird uns dabei helfen -
@BotFather . Senden Sie ihm
einfach / newbot und er bittet Sie, einen Namen für unseren neuen Bot zu finden. Dieser Name wird in der Telegramm-Kontaktliste angezeigt. Weitere BotFather-Angebote bieten einen eindeutigen Bot-Benutzernamen an. Die einzige Einschränkung ist, dass der Benutzername mit "bot" enden muss. Der Benutzername wird unter anderem auch zur Suche nach einem Bot verwendet.
Im Prinzip reicht dies aus, um zu beginnen. Einige Perfektionisten hier können den Bot nach einem Avatar fragen oder eine Willkommensnachricht schreiben. Nachdem alles eingegeben wurde, gibt BotFather das Token zurück:
6. Fügen Sie das Token zur Datei config.py hinzu
sudo nano /home/pi/nooBot/config.py
token = '_'
7. Schließlich können Sie den Bot starten:
sudo python3 /home/pi/nooBot/noobot.py
Senden Sie an unseren Bot
/ Start . Wenn der Token korrekt eingegeben wurde, wird die Tastatur angezeigt und es wird eine Meldung angezeigt:
Planen Sie für die Zukunft
Zu diesem Zeitpunkt steuere ich das Licht im Schlafzimmer und im Flur, aber in Zukunft plane ich, mehr Netzteile zu kaufen (diesmal mit Rückmeldung) und meine gesamte Beleuchtung auf Fernbedienung umzustellen. Es ist auch geplant, dem Bot Feedback-Unterstützung hinzuzufügen, damit der Status der Geräte und die Parameter der Sensoren im Haus außerhalb des Bots ermittelt werden können.
Das ist alles für jetzt. Ich würde mich freuen, Ihre Meinung zu hören. Gut zu allen!
Nützliche Links: