Forum: Mikrocontroller und Digitale Elektronik Batteriebetriebenen ESP8266 mit Alexa Steuern


von Leon Z. (lezi98)


Lesenswert?

Hallo!
Ich würde gerne die Batteriebetriebenen Lichterketten meiner Freundin 
mit Alexa steuern, da mir das ständige ein und ausschalten der gefühlt 
100 Lichterketten auf die Nerven geht. Da ich aber auch keine 
Steckdosenanbindung möchte, möchte ich einen ESP01 verwenden, um die 
Lichterkette ein und aus zu schalten. Da dieser aber noch zu viel Strom 
verbraucht möchte ich diesen in den schlafmodus setzen. Da er in diesem 
aber keine Befehle von Alexa entgegennehmen kann wollte ich nun eine Art 
Webserver oder Datenbank verwenden, auf der ein Befehl an Alexa den 
Status der Lichtekette von Aus auf Ein umstellt. Nach ein paar Minuten 
soll der ESP dann aufwachen, die Datenbank oder den Server auf 
Veränderung prüfen und dann bei bedarf umschalten und danach wieder in 
den schlafmodus gehen. Ist dies grundlegend möglich?
Ich finde nichts wo ich mich dazu informieren kann. Ich bin neu in der 
Mikrocontroller scene und weis nicht ob man zb. Eine MySQL Datenbank 
oder eine einfache html Seite mit Alexa beschreiben und mit dem esp 
auslesen kann. Ich weis eben nicht ob ich mich mit der 
skillprogrammierung von Amazon oder MySQL Datenbanken oder mqtt oder 
diesen Sachen beschäftigen muss. Ich habe das alles mal gehört aber weis 
nicht was womit möglich ist.
Kann mir bitte jemand helfen?

von Brain 2.0 (Gast)


Lesenswert?

Leon Z. schrieb:
> Da er in diesem aber keine Befehle von Alexa entgegennehmen kann wollte ich > 
nun eine Art Webserver oder Datenbank verwenden, auf der ein Befehl an
> Alexa den Status der Lichtekette von Aus auf Ein umstellt.

Keine Ahnung wie das funktionieren könnte, aber hier widersprichst du 
deiner Aussage. Wenn er (vermutlich der ESP-01) keine Befehle annehmen 
kann, wie soll er dann den Status umstellen können ?

von Cannonball (Gast)


Lesenswert?

Leon Z. schrieb:

> aber keine Befehle von Alexa entgegennehmen kann wollte ich nun eine Art
> Webserver oder Datenbank verwenden, auf der ein Befehl an Alexa den
> Status der Lichtekette von Aus auf Ein umstellt. Nach ein paar Minuten
> soll der ESP dann aufwachen, die Datenbank oder den Server auf
> Veränderung prüfen und dann bei bedarf umschalten und danach wieder in
> den schlafmodus gehen. Ist dies grundlegend möglich?

Deine Freundin gibt also per Alexa das Kommando eine Lichterkette 
einzuschalten, und nicht in der nächsten Sekunde sondern schon nach ein 
paar Minuten wird dieser Befehl dann ausgeführt.

Tolle Idee, der WAF deiner Lösung wird tief dunkelrot sein :)

von hans (Gast)


Lesenswert?

Leon Z. schrieb:
> gefühlt 100 batteriebetriebene Lichterketten

Klingt auf den ersten Blick ziemlich ungewöhnlich.
Wie willst Du diese denn alle auf einmal mit einem ESP schalten?

von Jochen S. (jochen_s97)


Lesenswert?

So schlecht ist die Idee nicht.
Kenn ich aus anderen Anwendungen auch, wenn eine stromsparende Einheit 
die Kommunikation initiiert muss dann auf der Gegenseite ein Speicher 
liegen, der den Befehl solange aufhebt bis er abgeholt wird.

Aber: in welchem Zyklus fragt der Esp? Sprich welche Reaktionszeit darf 
das System haben? Darf es Minuten dauern bis ein Befehl umgesetzt wird? 
Irgendwann kommt der Break Even zur der eine Dauetverbindung den 
gleichen Energiebedarf hat wie der ständige reconnect.

War das nicht eine Stärke von BLE?

Technisch wäre es machbar, einen Webserver der per PHP Aufruf den 
letzten gewünschten Stand ausliefert.

von rkes (Gast)


Lesenswert?

wenn du schon auf der AWS unterwegs bist, dann nimm dafür das IoT 
Service. Deine Alexa Lambda Function schreibt in den Shadow von deinem 
ESP32 Thing am IoT Core. Das ist wie ein File. Das kann dann der ESP32 
abrufen wenn er aufwacht. Die COM läuft dann über MQTT, alles vorhanden.
https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html
https://aws.amazon.com/de/blogs/compute/building-an-aws-iot-core-device-using-aws-serverless-and-an-esp32/

von Stefan F. (Gast)


Lesenswert?

Für so etwas wurde in der Tat MQTT entwickelt. Das ist eine 
Warteschlange wo man Nachrichten ablegt die später von ihren Empfänger 
abgeholt werden.

Der ESP8266 braucht aber so viel Strom, dass man das kaum sinnvoll 
umsetzen kann. Er wird für jede Abfrage etwa 3 Sekunden brauchen. Das 
macht bei deinem Minuten-Intervall immerhin noch 1,2 Stunden Laufzeit 
pro Tag. Bei geschätzten 100mA Stromaufnahme hast du dann schon 120mA 
pro Tag verbraucht. Nach zwei Wochen sind dann wohl die (AA) Akkus leer. 
Wenn du Licht an machst, dann noch schneller.

Du kannst natürlich das Intervall auf 10 Minuten erhöhen, aber wer will 
da schon?

von rkes (Gast)


Lesenswert?

Naja die Lichterketten werden ja wohl nur innerhalb von 4h Stunden am 
Tag eingeschalten. Da läuft das Teil schon 8mal solange. Aber schon mal 
an Zeitschaltuhren gedacht?

von my2ct (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Bei geschätzten 100mA Stromaufnahme hast du dann schon 120mA
> pro Tag verbraucht.

Strom kann nicht pro Tag verbraucht werden.
Da sind dir die Stunden abhanden gekommen.
Pro Tag wären das 24h  100mA  5% = 120mAh

von Leon Z. (lezi98)


Lesenswert?

Hey!
Vielen dank für die vielen Antworten!
Könntet ihr bitte eure Abkürzungen ausformulieren, ich bin noch nicht 
lange in der scene unterwegs und weis nicht was das alles bedeutet :)

Stefan ⛄ F. schrieb:
> Für so etwas wurde in der Tat MQTT entwickelt. Das ist eine
> Warteschlange wo man Nachrichten ablegt die später von ihren Empfänger
> abgeholt werden.
>
> Der ESP8266 braucht aber so viel Strom, dass man das kaum sinnvoll
> umsetzen kann. Er wird für jede Abfrage etwa 3 Sekunden brauchen. Das
> macht bei deinem Minuten-Intervall immerhin noch 1,2 Stunden Laufzeit
> pro Tag. Bei geschätzten 100mA Stromaufnahme hast du dann schon 120mA
> pro Tag verbraucht. Nach zwei Wochen sind dann wohl die (AA) Akkus leer.
> Wenn du Licht an machst, dann noch schneller.
>
> Du kannst natürlich das Intervall auf 10 Minuten erhöhen, aber wer will
> da schon?

Also wenn mqtt für sowas entwickelt wurde sollte ich mich damit mal 
beschäftigen oder? Aber wo liegt diese Warteschlange auf die die Alexa 
die Daten schreibt und die dann vom ESP abgeholt werden? Ich habe hier 
noch einen raspberry pi der mein terrarium steuert. Könnte ich hier die 
„Datei“ ablegen und abholen lassen oder evtl sogar auf dem speicher der 
Fritzbox?
Und für mich wäre es kein problem, wenn es bis zu 10 Minuten dauert bis 
die Lichterketten wieder aus gehen. Und ich dachte, dass der esp im 
schlafmodus nur 20mikroA verbraucht.

Jochen S. schrieb:
> So schlecht ist die Idee nicht.
> Kenn ich aus anderen Anwendungen auch, wenn eine stromsparende Einheit
> die Kommunikation initiiert muss dann auf der Gegenseite ein Speicher
> liegen, der den Befehl solange aufhebt bis er abgeholt wird.
>
> Aber: in welchem Zyklus fragt der Esp? Sprich welche Reaktionszeit darf
> das System haben? Darf es Minuten dauern bis ein Befehl umgesetzt wird?
> Irgendwann kommt der Break Even zur der eine Dauetverbindung den
> gleichen Energiebedarf hat wie der ständige reconnect.
>
> War das nicht eine Stärke von BLE?
>
> Technisch wäre es machbar, einen Webserver der per PHP Aufruf den
> letzten gewünschten Stand ausliefert.

was bedeutet Break even und BLE?

hans schrieb:
> Leon Z. schrieb:
>> gefühlt 100 batteriebetriebene Lichterketten
>
> Klingt auf den ersten Blick ziemlich ungewöhnlich.
> Wie willst Du diese denn alle auf einmal mit einem ESP schalten?

Ich möchte pro lichterkette einen esp verwenden und diesen von dem an 
der lichterkette befestigten Batteriepack betreiben.

Cannonball schrieb:
> Leon Z. schrieb:
>
>> aber keine Befehle von Alexa entgegennehmen kann wollte ich nun eine Art
>> Webserver oder Datenbank verwenden, auf der ein Befehl an Alexa den
>> Status der Lichtekette von Aus auf Ein umstellt. Nach ein paar Minuten
>> soll der ESP dann aufwachen, die Datenbank oder den Server auf
>> Veränderung prüfen und dann bei bedarf umschalten und danach wieder in
>> den schlafmodus gehen. Ist dies grundlegend möglich?
>
> Deine Freundin gibt also per Alexa das Kommando eine Lichterkette
> einzuschalten, und nicht in der nächsten Sekunde sondern schon nach ein
> paar Minuten wird dieser Befehl dann ausgeführt.
>
> Tolle Idee, der WAF deiner Lösung wird tief dunkelrot sein :)

Ja genau so soll es sein :)
was bedeutet genau WAF?

rkes schrieb:
> wenn du schon auf der AWS unterwegs bist, dann nimm dafür das IoT
> Service. Deine Alexa Lambda Function schreibt in den Shadow von deinem
> ESP32 Thing am IoT Core. Das ist wie ein File. Das kann dann der ESP32
> abrufen wenn er aufwacht. Die COM läuft dann über MQTT, alles vorhanden.
> https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html
> 
https://aws.amazon.com/de/blogs/compute/building-an-aws-iot-core-device-using-aws-serverless-and-an-esp32/

Was ist eine Lambda Function und Shadow?
und ein COM?
das hört sich schonmal nach einem guten ansatz an aber wo liegt diese 
File?
gibt es zu den Invormtaionen die du mir gegeben hast noch weitere 
Lernmöglichkeiten? also beschreibungen was das alles genau ist und wie 
das funktioniert? oder evtl dir bekannte projekte wo soetwas umgesetzt 
wurde?

Vielen dank schonmal für eure Hilfe!!! :)

von Planloser (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Für so etwas wurde in der Tat MQTT entwickelt. Das ist eine
> Warteschlange wo man Nachrichten ablegt die später von ihren Empfänger
> abgeholt werden.


MQTT ist ein Protokoll, keine Warteschlange...

von Cannonball (Gast)


Lesenswert?

Leon Z. schrieb:
> Cannonball schrieb:
>> Deine Freundin gibt also per Alexa das Kommando eine Lichterkette
>> einzuschalten, und nicht in der nächsten Sekunde sondern schon nach ein
>> paar Minuten wird dieser Befehl dann ausgeführt.
>>
>> Tolle Idee, der WAF deiner Lösung wird tief dunkelrot sein :)
>
> Ja genau so soll es sein :)
> was bedeutet genau WAF?

https://de.wikipedia.org/wiki/Woman_acceptance_factor

Wenn der im 'grünen' Bereich liegt is alles ok, und was ich dann mit 
'rot' meinte kannst du dir vermutlich denken.

von Keine Idee (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Leon Z. schrieb:
>
>> Da er in diesem aber keine Befehle von Alexa entgegennehmen kann wollte
>> ich > nun eine Art Webserver oder Datenbank verwenden, auf der ein
>> Befehl an
>> Alexa den Status der Lichtekette von Aus auf Ein umstellt.
>
> Keine Ahnung wie das funktionieren könnte, aber hier widersprichst du
> deiner Aussage. Wenn er (vermutlich der ESP-01) keine Befehle annehmen
> kann, wie soll er dann den Status umstellen können ?

Aber offensichtlich hast du hier selbst keine Ahnung, sonst würdest du 
darauf eingehen.

von Armin H. (min)


Lesenswert?

Was glaubst Du wie das nervt, wenn deine Freundin mit Alexa mehr redet 
als mit dir?
Lieber eine lokale Lichtsteuerung, vielleicht mit 
Zufallsblinkprogrammen, Ambientblinkprogrammen, etc, mit toller 
Wlan-Fernbedienung. Relais klackern. Thyristoren? Einen Esp8266 oder 
Arduino und bequem über das Handy oder Fernbedienung? Das geht. Braucht 
man's?

von Stefan F. (Gast)


Lesenswert?

Leon Z. schrieb:
> Also wenn mqtt für sowas entwickelt wurde sollte ich mich damit mal
> beschäftigen oder? Aber wo liegt diese Warteschlange

Du brauchst irgendwo einen sogenannten MQTT Broker. Ich würde dazu einen 
eigenen Server einrichten (vielleicht Raspi?), es soll aber auch 
öffentliche Server geben, die man benutzen darf.
https://smarthome-blogger.de/tutorial/mqtt-raspberry-pi-einfuehrung/
https://medium.com/digitalfrontiers/heimautomatisierung-mit-alexa-und-raspberry-pi-teil-1-27c301cdbf4a

> Ich dachte, dass der esp im schlafmodus nur 20mikroA verbraucht.

Ja ist auch so. Aber wenn er jede Minute aufwacht und das dann immer 3s 
lang 100mA aufnimmt dauert, dann summiert das halt zu einem großen 
Batzen Stromverbrauch. Akkus sind keine Atomreaktoren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.