Inhaltsverzeichnis:
- Schritt 1: Schritt 1: Ich brauche eine Möglichkeit, die Zeiten vom Home-Assistenten zu senden
- Schritt 2: Schritt 2: Folgender Code zu Configuration.yaml hinzugefügt
- Schritt 3: Schritt 3: Jetzt müssen wir die Informationen an die ESPHOME-API abrufen
- Schritt 4: Schritt 4: Also die ESPHome-Konfiguration des Steckers jetzt
- Schritt 5: Schritt 5: die ESPHome Home Assistant-Verbindung… Beam Me Up Scotty
- Schritt 6: Schritt 6: Lassen Sie uns etwas Zeit hinzufügen
- Schritt 7: Schritt 7: Intervall
- Schritt 8: Schritt 8: So haben wir Zeit und Geld… Wie geht es weiter?
- Schritt 9: Schritt 9: Nun zu einigen Skripten: 'Sein oder Nichtsein: Das ist die Frage'
- Schritt 10: Schritt 10: Einige Bonusskripte
- Schritt 11: Schritt 11: Einige abschließende Gedanken
Video: ESPHOME SONOF S26 Zeitgesteuertes Licht - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Guten Tag. Ich habe also eine Aquariumbeleuchtung, die ich zu einer bestimmten Tageszeit ein- und ausschalten möchte. Ich musste es mir nur kompliziert machen. Ich möchte die Ein- und Ausschaltzeit über mein Home Assistant-Dashboard ändern können. Vielleicht sogar noch mehr.
Mal sehen, wie viel mehr ich mich in ein Kaninchenbau bringen kann.
Schritt 1: Schritt 1: Ich brauche eine Möglichkeit, die Zeiten vom Home-Assistenten zu senden
Etwas googeln hilft. Einige Haare ausziehen hilft, wenn Sie tatsächlich ein:POÖffnen Sie mein Visual Studio Code Editor Add-on. Suchen Sie im Ordner Config die Datei configuration.yaml und kopieren und fügen Sie einige Dinge ein, die ich in einem Forum versteckt gefunden habe. Tut mir leid, wenn ich mich daran erinnern würde, würde ich es bestätigen. Code hinzugefügt und Heimassistent neu gestartet.
Schritt 2: Schritt 2: Folgender Code zu Configuration.yaml hinzugefügt
Eingabenummer:
ft_start_hr:
Name: FT Light Start Hours
Symbol: mdi:Uhr-Start
min: 0
max: 23
Schritt 1
# Initiale: 13
Die erste Zeile ist die Entitäts-ID der Eingabenummer.
Als nächstes brauchen wir ein paar Details für diesen kleinen Kerl:
Ein Name wird großartig sein: FT Light Start Hours für diesen P. S. FT steht für Fish Tank… Nicht das, was Sie dachten, oder?
Weiter ist ein optionales Symbol. Es gibt viel zur Auswahl, also verrückt werden … oder nicht.
Dann können wir einen Min-, Max- und Schrittwert eingeben. Da dies Stunden sind, habe ich 0 - 23 mit Einzelschritten gewählt.
Anfangs hatte ich einen Anfangswert und wenn der Heimassistent neu gestartet wurde, änderte er ihn auf diesen Anfangswert. Ich beschloss, es auszukommentieren, da ich wollte, dass Home Assistant versucht, sich an den letzten Wert zu erinnern, den ich dafür eingestellt hatte.
Sie können den Modus aktivieren, um eine Box auszuwählen. Aber standardmäßig wählt es einen schönen Schieberegler für Sie. Ich denke, ein Slider wird für jetzt tun.
Achten Sie auf die Einkerbungen, da sie sehr wichtig sind. Siehe das Bild
Diese geben Ihnen also Entitäten im Heimassistenten, die Sie anpassen können.
Hier ist ein Link zu weiteren Informationen über Eingabenummern:
www.home-assistant.io/integrations/input_n…
Schritt 3: Schritt 3: Jetzt müssen wir die Informationen an die ESPHOME-API abrufen
Sensor:
- Plattform: Vorlage
Sensoren:
ft_start_hr:
value_template: '{{ States.input_number.ft_start_hr.state | int }}'
n
Dadurch erhält die ESPHome-API die erforderliche Verbindung und ist jetzt eine Ganzzahl anstelle eines ausgefallenen Textschiebers:-P
Hier nimmt es den Eingangsnummernzustand und wandelt ihn in eine ganze Zahl um und speichert ihn in einem Sensor.
Hier noch einige Informationen zu den Vorlagen:
www.home-assistant.io/integrations/template…
Oh, ich habe die Dateierweiterung meiner Datei in Text geändert, damit ich sie hochladen kann … Instructables können mit einem Yaml zerstörbar sein …
Schritt 4: Schritt 4: Also die ESPHome-Konfiguration des Steckers jetzt
Ich habe mit einer Basiskonfiguration für den S-On-Off-Stecker angefangen und dann angefangen zu basteln.
Ich werde nicht näher darauf eingehen, wie man den S26-Stecker mit ESPHome flasht, da Google alle Antworten hat.
Meine vollständige Konfigurationsdatei steht am Ende zum Download bereit. Da Da Dah…
Beginnen wir also mit dem mit Home Assistant verknüpften Teil:
Wir müssen Sensoren erstellen, die mit den Sensoren im Home Assistant übereinstimmen, damit sie miteinander kommunizieren können.
Schritt 5: Schritt 5: die ESPHome Home Assistant-Verbindung… Beam Me Up Scotty
Sensor:
- Plattform: Haushaltshilfe
Entity_id: sensor.ft_start_hr
ID: id_ft_start_hr
Nun erstellen wir in ESPHome einen Sensor vom Typ homeassistant. Wer hätte es erraten?
Die Entitäts-ID muss mit der übereinstimmen, die Sie in Ihrer Datei configuration.yaml eingerichtet haben.
Ich habe eine ID eingerichtet, damit ESPHome diesen Sensor in seiner Fülle an Gedanken referenzieren kann.
Schritt 6: Schritt 6: Lassen Sie uns etwas Zeit hinzufügen
Da es sich also um einen zeitgesteuerten Plug handelt … Fügen wir tatsächlich etwas Zeit hinzu … Oder wird es subtrahiert? Es ist jetzt in der Vergangenheit?
Hier sind einige Grundlagen der Zeitkomponente. Wir können einige verschiedene auswählen, aber ich habe mich für eine Haushaltshilfe entschieden. Zu einfach?
esphome.io/components/time.html
Schritt 7: Schritt 7: Intervall
Nein, es ist keine Pause, oder?
Intervall:
- Intervall: 1 Sek.
dann:
- Lambda: |-
id(gl_ft_start_hr) = id(id_ft_start_hr).state;
Also habe ich ein Intervall von 1 Sekunde eingestellt, um den Sensorwert vom Heimassistenten in die globale Variable zu schreiben.
Ich möchte dies nur einmal pro Sekunde tun, während die Zeit tickt…tick tock
Schritt 8: Schritt 8: So haben wir Zeit und Geld… Wie geht es weiter?
Also entschied ich mich, eine binäre Sensorvorlage zu verwenden, um zu bestimmen, ob es Zeit ist, den Schalterschalter einzuschalten… Relais
Ich habe drei Schalter mit den IDs erstellt: start_time_valid, stop_time_valid und run_time_valid
start_time_valid ist wahr, wenn die eingestellte Zeit zum Einschalten des Relais jetzt überschritten ist.
Ich habe verschachtelte if-Anweisungen verwendet, um zu überprüfen, ob wir größer oder gleich den erforderlichen Sekunden, dann den Minuten und schließlich den Stunden waren.
stop_time_valid ist wahr, wenn es jetzt ist, bevor es Zeit ist, den Schalter auszuschalten. Dies wird umgekehrt, um zu überprüfen, ob die erforderliche Zeit zum Abschalten des Relais noch nicht abgelaufen ist
run_time_valid ist wahr, wenn sowohl start_time_valid als auch stop_time_valid wahr sind. Ich vermute, ich hätte einfach eine normale und Bedingung für dieses hier verwenden können. Ich bin gerade mit Lambdas in Schwung gekommen.
- Plattform: Vorlage
Name: "Startzeit gültig"
ID: start_time_valid
Lambda: |-
if (id(homeassistant_time).now().hour > id(gl_ft_start_hr)) {
true zurückgeben;
}
else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id(homeassistant_time).now().minute > id(gl_ft_start_mn)) {
true zurückgeben;
}
else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id(homeassistant_time).now().minute == id(gl_ft_start_mn) &&
id(homeassistant_time).now().second >= id(gl_ft_start_ss)){
true zurückgeben;
}
anders {
falsch zurückgeben;
}
Schritt 9: Schritt 9: Nun zu einigen Skripten: 'Sein oder Nichtsein: Das ist die Frage'
Hmm falsches Drehbuch, Alter!
Wenn ich also den Schalter eingesteckt habe … oder der Hausstrom gerade wieder ankam, wollte ich, dass der Schalter weiß, ob er ein- oder ausgeschaltet sein soll, und entsprechend handeln. (ja, wir gehen alle zum Schauspielunterricht)
Die erste Skript-ID: checkstatuson prüft, ob wir eingeschaltet sein sollen und handeln entsprechend. Ich habe auch ein globales Flag mit der ID: trackingon eingefügt, um sicherzustellen, dass dieses Skript nur einmal ausgeführt wird und meine anderen Skripte nicht daran gehindert werden, ihre Rolle im Spiel zu übernehmen.
Dies hat 3 Bedingungen: Das Relais ist ausgeschaltet, es soll eingeschaltet sein und ich habe meinen Teil noch nicht getan. Dies schaltet dann alle anderen laufenden Skripte aus, schaltet das Relais ein und setzt die Tracking-Flags.
Die zweite Skript-ID: checkstatusoff ist genau das Gegenteil der ersten. Wir prüfen nur, ob wir jetzt die Vorhänge schließen müssen. Das Tracking-Flag für dieses ist trackingoff
Ich führe diese beiden Skripte im 1-Sekunden-Intervall aus, um jede Sekunde zu überprüfen.
Schritt 10: Schritt 10: Einige Bonusskripte
Zwei weitere Funktionen, die ich hinzufügen wollte, waren, wenn ich das Licht am Tank ausschaltete, dass es nach 5 Sekunden wieder einschaltet, wenn das Licht zu diesem Zeitpunkt an sein soll. Auch wenn das Licht aus war und ich es einschalten wollte, um meine Fische zu sehen, und es außerhalb seiner geplanten Zeit war, würde es für 5 Minuten angehen. Ja, 5 Minuten sind lang genug… Machen Sie sich wieder an die Arbeit.
Die erste Skript-ID: Relayisoff schaltet das Licht für 5 Minuten ein, wenn es nicht pünktlich ist, und schaltet es dann aus.
Die zweite Skript-ID: Relayison ist praktisch umgekehrt als die erste und schaltet das Licht 5 Sekunden später wieder ein, wenn es an sein soll. Wer hat gesagt, dass Sie mein Licht Mister ausschalten können!
Hier sind einige weitere Informationen zu Skripten:
esphome.io/guides/automations.html
Einige Bonusinformationen zu Skripten sind, dass sie nicht blockieren. Es sei denn, Sie setzen eine Verzögerung in ein Lambda. Äh Nein Nein Nein
Schritt 11: Schritt 11: Einige abschließende Gedanken
Vom Home-Assistenten wollte ich, dass sich der Schalter genauso verhält wie der Knopf.
Ich habe keinen Namen für den lokalen Schalter des binären Sensors eingegeben, da ich nicht sehen musste, wie er in den Heimassistenten gedrückt wird.
Ich habe keinen Namen für den Relaisschalter angegeben, da ich die Skripte für das Umschalten vom Heimassistenten verwenden wollte.
Ich habe einen Vorlagenschalter mit einem Namen erstellt, damit ich damit vom Home-Assistenten wechseln kann. Es wird meine Skripte genauso ausführen wie der lokale Switch am Stecker.
Ich habe nicht getestet, ob das Ausschalten meines Heimassistenten, wenn der Stecker noch richtig funktioniert, funktioniert. Ich hoffe es. Ich habe einige Beiträge zu einigen Problemen beim Verlust der Verbindung zur Home Assistant-API gesehen.
Ich hoffe wirklich, dass dieses kleine Tutorial Ihnen helfen wird und zögern Sie nicht, mir zu helfen, es besser zu machen. Ich bin kein Experte und lerne sehr langsam. Ich dachte nur, einige Dinge, die ich gelernt habe, könnten jemandem da draußen helfen, der Schwierigkeiten hat, es herauszufinden.
Jetzt können Sie die Zeiten im Home Assistant basierend auf Sonnenauf- und -untergang ändern…+ - ein paar
Empfohlen:
Solar-wiederaufladbares Licht herstellen – wikiHow
So stellen Sie wiederaufladbares Solarlicht her:
Machen Sie ein einfaches Bewegungssensor-Licht! (PIR): 13 Schritte (mit Bildern)
Machen Sie ein einfaches Bewegungssensor-Licht! (PIR): Machen Sie eine kleine & Einfaches Bewegungssensorlicht mit weniger Aufwand und weniger Komponenten. Ein Anfänger könnte dies auch machen. Ein einfaches Verständnis der Funktionsweise von Transistoren und Kenntnisse über Anode und Kathode sind nur erforderlich, um es spannungsfrei zu machen
Wie man ein automatisches Licht macht – wikiHow
Wie man ein automatisches Licht macht: Dies ist eine einfache automatische Lichtschaltung
DER EINFACHSTE WEG, EIN KOMPAKTES LICHT ZU MACHEN!! 3 EINFACHE SCHRITTE !!: 3 Schritte
DER EINFACHSTE WEG, EIN KOMPAKTES LICHT ZU MACHEN!! 3 EINFACHE SCHRITTE !!: Was Sie brauchen - Zinnfolie 1 AA-Batterie (einige AAA-Batterien funktionieren) 1 Mini-Glühbirne (Glühbirnen werden für die meisten Taschenlampen verwendet; siehe Bild) Lineal (falls erforderlich)
Achtung, fertig, los! Licht: 7 Schritte (mit Bildern)
Achtung, fertig, los! Light: Dies ist ein Projekt, an dem ich derzeit für meinen lokalen Kampfrobotik-Club arbeite. Es ist ein LED-Lichtsystem, das den Fahrern signalisiert, wann das Spiel beginnt. Hier sind die Ziele, die ich anstrebte: - Erscheint physisch ähnlich wie ein Verkehr im älteren Stil