WeMos D1 mini als WLAN-Sensor/-Aktor
Moderator: Co-Administratoren
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
@klassisch: Vielen Dank für die Links, hört sich interessant an
@Brati: Dann ist mir jetzt auch klar, wieso ich mir nen Wolf gesucht habe und zu "eriwan.exe" nichts finden konnte
Gruß
Roland
@Brati: Dann ist mir jetzt auch klar, wieso ich mir nen Wolf gesucht habe und zu "eriwan.exe" nichts finden konnte
Gruß
Roland
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Hallo zusammen!
Ich habe nun endlich auch meine 18605-Akkus aus China bekommen und an meiner "Wemos-XMas-Beleuchtungs-Schaltung" weiterbasteln können. Grundsätzlich klappt es gut. Ich habe einen Wemos mit Battery-Shield verwendet, welches mit dem 18605-LiIon-Akku mit Strom versorgt wird. Daran hängt eine kleine Schaltung mit MOSFET, der vom Wemos geschaltet wird und damit die Lichterkette (die eine eigene Batterie-Stromversorgung besitzt) schaltet. Die Schaltung habe ich hier aus dem Thread von klassisch mit seinem "Pneumatischer Füllstandssensor" übernommen (Danke! - klappt gut!).
Der Wemos liegt im Tiefschlaf und wird nur alle 15 Minuten geweckt, um auf der CCU eine Variable abzufragen. Wenn die auf EIN steht, wird eben eingeschaltet, andernfalls aus. Anschließend schicke ich ihn wieder ins Bett. Wie gesagt: Aktuell klappt alles.
Jetzt stellt sich nur die Frage nach der praktischen Verwendbarkeit... Wenn ich mir den Stromverbrauch so ansehe, frage ich mich, ob das kleine Häufchen wirklich Sinn macht: Vorgestern Abend habe ich den Akku mit dem Battery-Shield voll geladen und dann die Stromversorgung abgezogen. Zunächst bot der Akku 4.2V, mittlerweile (nach etwa 1,5 Tagen) sind wir auf 3.62V runter. Im Grunde ist das ganz o.k., aber wenn das Ding jetzt noch 2 Tage durchhält bevor dann bei ca. 2,7V Schluss ist, kann ich den Wemos mit einer Akku-Ladung ca. 4 Tage laufen lassen.
In der Praxis sieht das natürlich ziemlich doof aus, wenn maximal nur 4x am Tag ein Schaltvorgang stattfinden soll aber schon nach 4 Tagen Schluss ist. Und alle vier Tage ein "Schatz, ich muss da mal ran - der Akku ist alle" kommt gar nicht gut.
Gibt es tatsächlich keinerlei Möglichkeit, den Wemos mit einem Akku (keine Autobatterie bitte! ) länger zu befeuern? Ich konnnte im Netz bisher nichts hilfreiches finden.
Solar ist hier in Hamburg im Winter auch nicht wirklich zielführend, da müssten die Panels schon recht groß werden...
Hat einer von Euch noch eine Idee?
Grüße,
Martin
Ich habe nun endlich auch meine 18605-Akkus aus China bekommen und an meiner "Wemos-XMas-Beleuchtungs-Schaltung" weiterbasteln können. Grundsätzlich klappt es gut. Ich habe einen Wemos mit Battery-Shield verwendet, welches mit dem 18605-LiIon-Akku mit Strom versorgt wird. Daran hängt eine kleine Schaltung mit MOSFET, der vom Wemos geschaltet wird und damit die Lichterkette (die eine eigene Batterie-Stromversorgung besitzt) schaltet. Die Schaltung habe ich hier aus dem Thread von klassisch mit seinem "Pneumatischer Füllstandssensor" übernommen (Danke! - klappt gut!).
Der Wemos liegt im Tiefschlaf und wird nur alle 15 Minuten geweckt, um auf der CCU eine Variable abzufragen. Wenn die auf EIN steht, wird eben eingeschaltet, andernfalls aus. Anschließend schicke ich ihn wieder ins Bett. Wie gesagt: Aktuell klappt alles.
Jetzt stellt sich nur die Frage nach der praktischen Verwendbarkeit... Wenn ich mir den Stromverbrauch so ansehe, frage ich mich, ob das kleine Häufchen wirklich Sinn macht: Vorgestern Abend habe ich den Akku mit dem Battery-Shield voll geladen und dann die Stromversorgung abgezogen. Zunächst bot der Akku 4.2V, mittlerweile (nach etwa 1,5 Tagen) sind wir auf 3.62V runter. Im Grunde ist das ganz o.k., aber wenn das Ding jetzt noch 2 Tage durchhält bevor dann bei ca. 2,7V Schluss ist, kann ich den Wemos mit einer Akku-Ladung ca. 4 Tage laufen lassen.
In der Praxis sieht das natürlich ziemlich doof aus, wenn maximal nur 4x am Tag ein Schaltvorgang stattfinden soll aber schon nach 4 Tagen Schluss ist. Und alle vier Tage ein "Schatz, ich muss da mal ran - der Akku ist alle" kommt gar nicht gut.
Gibt es tatsächlich keinerlei Möglichkeit, den Wemos mit einem Akku (keine Autobatterie bitte! ) länger zu befeuern? Ich konnnte im Netz bisher nichts hilfreiches finden.
Solar ist hier in Hamburg im Winter auch nicht wirklich zielführend, da müssten die Panels schon recht groß werden...
Hat einer von Euch noch eine Idee?
Grüße,
Martin
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Moin klassisch!klassisch hat geschrieben:Ich befestige die Teile immer unter einem Dach, Vordach etc. Jedenfalls Regengeschützt.
Der WeMos kommt in eine billige AP-Verteilerdose für <1EUR. der BME an ein Kabel, ca. 20 bis 30 cm lang. So daß er die Aufheizung vom WeMos nicht sieht. Als mechanischen Schutz mache ich ein metallisches Teeei aus China drum und gegen die Sonne noch eine Konservendose drüber. Boden der Konservendose nach oben und einige Löscher rein, damit die Luft etwas durchströmen kann.
Ich habe da als "Technisches Teeei" noch was bei Ali gefunden:
https://de.aliexpress.com/item/szomk-pl ... 0.0.JF1WAT
Ich habe davon mal zwei bestellt - mal sehen, ob man die verwenden kann. Müsste passen. Nur die Farbe ist brutal
Grüße,
Martin
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Hi,
Vielleicht noch einmal für alle die die CCU Variablen in "WeMos Temperatur-/Luftfeuchtesensor (Prototyp)" anpassen möchten.
Die CCU Variablen heißen hier "wemos01temp" und "wemos01feucht"
1 Neue Variablen anlegen alte ausdokumentieren
2 Variable in die Meldung einsetzen
so läufst bei mir
Falls das besser geht her damit
LG
Olli
Vielleicht noch einmal für alle die die CCU Variablen in "WeMos Temperatur-/Luftfeuchtesensor (Prototyp)" anpassen möchten.
Die CCU Variablen heißen hier "wemos01temp" und "wemos01feucht"
1 Neue Variablen anlegen alte ausdokumentieren
Code: Alles auswählen
// ******* Einstellungen fuer Meldungen an die CCU, bitte anpassen! *******
//String tempCCUname = "temp"; // Bezeichnung der CCU-Systemvariable für die gemessene Temperatur
//String feuchtCCUname = "feucht"; // Bezeichnung der CCU-Systemvariable für die gemessene Luftfeuchtigkeit
String wemos01temp = "wemos01temp"; // Bezeichnung der CCU-Systemvariable für die gemessene Temperatur
String wemos01feucht = "wemos01feucht"; // Bezeichnung der CCU-Systemvariable für die gemessene Luftfeuchtigkeit
Code: Alles auswählen
meldung = "GET /eriwan.exe?antwort1=dom.GetObject('" + wemos01feucht + "').State('" + feucht + "')";
meldung = meldung + "&antwort2=dom.GetObject('" + wemos01temp + "').State('" + temp + "')";
client.println(meldung); // Daten an CCU melden
Falls das besser geht her damit
LG
Olli
-
- Beiträge: 3974
- Registriert: 24.03.2011, 04:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 110 Mal
- Danksagung erhalten: 71 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Bin da kein Experte, weil ich Batteriebetrieb über Homematic einordne. WLAN und Batteriebetrieb paßt für mich nicht zusammen.mfahs hat geschrieben:Gibt es tatsächlich keinerlei Möglichkeit, den Wemos mit einem Akku (keine Autobatterie bitte! ) länger zu befeuern? Ich konnnte im Netz bisher nichts hilfreiches finden.
Solar ist hier in Hamburg im Winter auch nicht wirklich zielführend, da müssten die Panels schon recht groß werden...
Es gibt hier aber einige Kolleen, die das dennoch tun. Z.B fsommer1968, aber auch andere.
Dabei wird der Spannungsregler, der recht viel Ruhestrom verbraucht, ausgebaut, spezielle LiIon Akkus mit anderer Spannungslage dann direkt angeschlossen. WLAN möglichst nur bei Bedarf eingeschaltet.
Schau mal:
viewtopic.php?f=31&t=29321&p=330650&hil ... eb#p330650
viewtopic.php?f=31&t=29321&p=284627&hil ... eb#p284627
Das Sensorgehäuse gefällt mir sehr gut. Alles dran was man braucht, Zugentlastung, Aufhängeloch. Farbe sollte enteder weiß sein oder metallisch glänzend. Und es ist doppelt so teuer wie so ein Teeei. Muß mal schauen, wie meine Teeier im Freien den Winter überstanden haben. So ein Kunststoffgehäuse wäre dann eine schöne Alternative.
-
- Beiträge: 3974
- Registriert: 24.03.2011, 04:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 110 Mal
- Danksagung erhalten: 71 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Wenn Du mit der Verwendung von Systemvariablen als Temperatur- und Feuchte-Repräsentanten zufrieden bist, nicht weiter lesen.owill hat geschrieben:Falls das besser geht her damit
Mich hat gestört, daß man Systemvariablen weder einem Gewerk noch einem Raum zuordnen kann. Deshalb verwende ich CUxD Geräte und habe dann auch gleich noch absolute Feuchte und Taupunkt.
Wiees geht steht im renmet-wiki und auch mehrfach hier im Thread.
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Hat schon ein mal jemand zwei BME280 Sensoren am Wemos betrieben?
Wetterdaten von meinem OC3 Kombisensor finden sich unter http://gleichen-wetter.de/
---------------------------------------------------------------------------------------------------------------
63 Kanäle in 37 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
---------------------------------------------------------------------------------------------------------------
63 Kanäle in 37 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
-
- Beiträge: 12929
- Registriert: 16.01.2009, 18:48
- Wohnort: Steingaden
- Hat sich bedankt: 1604 Mal
- Danksagung erhalten: 222 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
nö,... dann muss auf einem die adresse geändert werden und dieses dann beim "definieren" des sensors beachtet werden..
da der bme aber immer recht nah am wemos ist macht das , für mich, keinen sinn.
wenn verschiedene temperaturen gebraucht werden dann ds20x18 .. ( zb. als sonnensensor" )
und bei rund 4 euro für den wemos lohnt nachdenken nicht wirklich
da der bme aber immer recht nah am wemos ist macht das , für mich, keinen sinn.
wenn verschiedene temperaturen gebraucht werden dann ds20x18 .. ( zb. als sonnensensor" )
und bei rund 4 euro für den wemos lohnt nachdenken nicht wirklich
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
-
- Beiträge: 3974
- Registriert: 24.03.2011, 04:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 110 Mal
- Danksagung erhalten: 71 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Fast. Ich war mal nahe dran und habe das mal aufgearbeitet. Und sogar die lib modifiziert und eine
BME280_MOD-1022_2sens.h
gebaut.
In dem Link
https://forum.arduino.cc/index.php?topic=380644.0
steht wie man es macht.
Habe mir noch dazu notiert:
Wollte das mal für meine pneumatische Füllstandsanzeige nutzen. Da hätte ich 2 BME280 nebeneinander verwenden können. Habe dann aber eine Lösung mit einem BME280 gewählt. Ist unterm Strich genauer und weniger Aufwand.
Mit der Adafruit lib, die die BME280 auch zu heiß betreibt, kann man wohl nur Korrekturfaktoren für einen Sensor handeln. Empfehle die Lib eh nicht, siehe meine Messungen oben im Thread.
Wenn Du mehrere I2C Temperatursensoren betreiben möchtest, wäre der SHT31 wahrscheinlich der einfachere und schneller Weg. Die Ansteuerung des SHT31 ist einfacher und man muß keine Korrekturwerte handeln.
Laut Spec soll der SHT31 sogar noch etwas genauer sein, zumindest bei der Temp. Aber das ganze Datenblatt lesen. Da ist etwas Euphemismus drin; die wirkliche Genauigkeit muß man den Diagrammen entnehmen.
Und er hat keinen Drucksensor. In meinen o.g. Messungen ist er auch enthalten.
Edit / Nachtrag
- seit CCU2 FW 1.27.8 führen z.B. im emailText Zeilenumbrüche als "\n" kodiert zum Nichtversenden der email. Workaround: Zeilenumbruch als "%0D%0A% kodieren oder auf Zeilenumbruch ganz verzichten.
BME280_MOD-1022_2sens.h
gebaut.
Code: Alles auswählen
/************************* Mod for 2 sensors ***********
* according to https://forum.arduino.cc/index.php?topic=380644.0
* In BME280_MOD-1022.h
* Comment:
* // #define addrBME280 0x76
* and add:
* extern int addrBME280;
*
* In your sketch use
* int addrBME280=0x76; // or 0x77;
* you can change it during execution
*
* I guess, that differences in the calibration parameters are not significant.
* If not, you could make recalibration at each addressing to particular sensor.
*
* Also you can powerup each couple of BME280(one 0x76, another 0x77) via separate ESP8266 pin.
* So, you'll have several branches which can be switched alternatively.
*
*/
// address of BME280 on the MOD-1022 board
/// #define addrBME280 0x76 // mod for 2 sensors
// integer types for BME code
extern int addrBME280;
/****** end Mod for 2 sensors *************/
https://forum.arduino.cc/index.php?topic=380644.0
steht wie man es macht.
Habe mir noch dazu notiert:
Code: Alles auswählen
For 2 sensors the MOD_1022 Lib has to be changed according https://forum.arduino.cc/index.php?topic=380644.0 Before measuring the BME280.readCompensationParams() has to be executed.
Mit der Adafruit lib, die die BME280 auch zu heiß betreibt, kann man wohl nur Korrekturfaktoren für einen Sensor handeln. Empfehle die Lib eh nicht, siehe meine Messungen oben im Thread.
Wenn Du mehrere I2C Temperatursensoren betreiben möchtest, wäre der SHT31 wahrscheinlich der einfachere und schneller Weg. Die Ansteuerung des SHT31 ist einfacher und man muß keine Korrekturwerte handeln.
Laut Spec soll der SHT31 sogar noch etwas genauer sein, zumindest bei der Temp. Aber das ganze Datenblatt lesen. Da ist etwas Euphemismus drin; die wirkliche Genauigkeit muß man den Diagrammen entnehmen.
Und er hat keinen Drucksensor. In meinen o.g. Messungen ist er auch enthalten.
Edit / Nachtrag
- seit CCU2 FW 1.27.8 führen z.B. im emailText Zeilenumbrüche als "\n" kodiert zum Nichtversenden der email. Workaround: Zeilenumbruch als "%0D%0A% kodieren oder auf Zeilenumbruch ganz verzichten.
Zuletzt geändert von klassisch am 31.03.2017, 16:14, insgesamt 1-mal geändert.
-
- Beiträge: 3974
- Registriert: 24.03.2011, 04:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 110 Mal
- Danksagung erhalten: 71 Mal
Email via CCU, CUxd und email-Addon
in jenem Post habe ich beschrieben, wie man mit dem WeMos über die CCU emails versenden kann.
Diese Funktion ist sehr hilfreich und arbeitet bei mir sehr zuverlässig. Ich möchte sie nicht mehr missen.
Leider war die Installation Weg etwas umständlich. Es gibt aber einen etwas einfacheren Weg, weil das email-Addon mit dem CUxD zusammen arbeitet.
Man braucht dazu auf der CCU:
- CUxD - den hat wahrscheinlich jeder der hier gelandet ist auf der CCU. Dann dessen Anleitung.
- Das email-Addon und dessen Anleitung
Mit dem CUxD legt man ein Device (91)an und schreibt den Pfad zum email Client um. Defaultwert ist ein cloudmatic Programm, eingetragen werden muß der Pfad zum email client. Das steht in der Anleitung zum email addon in Kapitel "6.2 Mails mittels CUxD Gerätetyp 91 versenden ". Entscheidend ist
Eine weitere, sehr schöne Anleitung hat Christian Luetgens bereit gestellt. Dort ist auch schön beschrieben, wie die Mails in den CUxD eingespeist werden.
Die Einrichtung des email-Addons selbst ist in dessen Anleitung oder auch sehr schön bebildert auf christian-luetgens.de beschrieben.
Für den Weg über CUxD reicht das Anlegen des Accounts. Die Templates oder gar TCL wie bei meiner bisherigen Lösung werden zum Versendenen kurzer einfacher Textmails nicht gebraucht.
Im WeMos/arduino werden die email Nachrichten etwa so aufgebaut:
Definitionen
Die eigentliche Sendefunktion nach m.yoda / renmet-Wiki modifiziert:
Wie schon bei der direkten Methode war das Ersetzen von Blanks durch %20 erforderlich:
Ich reichere den Text noch gerne mit Informationen wie Sesnorname, IP-Adresse und Zeitstempel an.
das CUxD Device 91 trägt den Namen "(91) CloudMatic" mit den Unterkapiteln
- email,
- sms,
- push,
- cloud.
Wahrscheinlich kann man auf diese Weise auch die anderen genannten Dienste vom WeMos aus nutzen.
Viel Erfolg!
Diese Funktion ist sehr hilfreich und arbeitet bei mir sehr zuverlässig. Ich möchte sie nicht mehr missen.
Leider war die Installation Weg etwas umständlich. Es gibt aber einen etwas einfacheren Weg, weil das email-Addon mit dem CUxD zusammen arbeitet.
Man braucht dazu auf der CCU:
- CUxD - den hat wahrscheinlich jeder der hier gelandet ist auf der CCU. Dann dessen Anleitung.
- Das email-Addon und dessen Anleitung
Mit dem CUxD legt man ein Device (91)an und schreibt den Pfad zum email Client um. Defaultwert ist ein cloudmatic Programm, eingetragen werden muß der Pfad zum email client. Das steht in der Anleitung zum email addon in Kapitel "6.2 Mails mittels CUxD Gerätetyp 91 versenden ". Entscheidend ist
Es wird ein Neustart der CCU empfohlen, der bei mir allerdings nicht erforderlich war.Die Zeile aus dem unteren Eingabefeld (SYSTEM|CMD_EXEC) durch folgende Zeile ersetzen: /etc/config/addons/email/email_cuxd
Eine weitere, sehr schöne Anleitung hat Christian Luetgens bereit gestellt. Dort ist auch schön beschrieben, wie die Mails in den CUxD eingespeist werden.
Die Einrichtung des email-Addons selbst ist in dessen Anleitung oder auch sehr schön bebildert auf christian-luetgens.de beschrieben.
Für den Weg über CUxD reicht das Anlegen des Accounts. Die Templates oder gar TCL wie bei meiner bisherigen Lösung werden zum Versendenen kurzer einfacher Textmails nicht gebraucht.
Im WeMos/arduino werden die email Nachrichten etwa so aufgebaut:
Definitionen
Code: Alles auswählen
/* ********* const variables for emailing via CCU + CUxD ************/
String emailTo = "My.Email@provider.com"; // my own email address
String emailSubject = "WeMos Message"; // the email subject
String emailText = "keep it short and simple"; // the text of the email.
boolean emailEnable = 1;
Code: Alles auswählen
void mailViaCcuCuxd() { // Werte an die CCU melden here: transfer email parameters and start email program
if (! emailEnable) ; // skip all
else { // precondition email is enabled
WiFiClient client; // Webclient initialisieren
String tempstring = ""; // temporaerer string
if (!client.connect(cfg.hostCCU, cfg.hostportCCU))
{ // mit dem CCU-Port 8181 verbinden
#ifdef FSDEBUG
DBG_OUTPUT_PORT.println(zeitstempel() + " Fehler: Verbindung zur CCU konnte nicht aufgebaut werden");
#endif
delay(100);
}
meldung = "";
meldung = meldung + "";
meldung = meldung + "/eriwan.exe?&antwort1=dom.GetObject('CUxD.CUX9100001:1.MAILTO').State('" + emailTo + "')";
meldung = meldung + "&antwort2=dom.GetObject('CUxD.CUX9100001:1.SUBJECT').State('" + emailSubject + "')";
meldung = meldung + "&antwort3=dom.GetObject('CUxD.CUX9100001:1.TEXT').State('" + emailText + "')";
meldung = meldung + "&antwort4=dom.GetObject('CUxD.CUX9100001:1.TYPE').State(0)"; //plain text, no HTML
meldung = meldung + "&antwort5=dom.GetObject('CUxD.CUX9100001:1.TEMPLATEID').State(0)"; // use no template
meldung = meldung + "&antwort6=dom.GetObject('CUxD.CUX9100001:1.SEND').State(1)"; // send command, press virtual button
meldung.replace(" ", F("%20")); // replaces whitespaces by %20. necessary otherwise CCU drops string. CCU cannot handle whitesspaces
meldung = "GET " + meldung;
client.println(meldung); // Daten an CCU melden
#ifdef FSDEBUG
DBG_OUTPUT_PORT.println("command -String to CCU:");
DBG_OUTPUT_PORT.println(meldung);
#endif
delay(100);
int i = 0;
String zeile = "";
while (client.available()) { // Antwort der CCU zeilenweise auslesen
i ++;
zeile = client.readStringUntil('\n'); // Zeitstempel der CCU ausfiltern und merken
if (i == 7) {
letzteMailCCUzeit = zeile;
}
}
#ifdef FSDEBUG
DBG_OUTPUT_PORT.println("email an CCU uebergeben, " + letzteMailCCUzeit);
#endif
letzteMailMillis = jetztMillis; // gemeldete Daten merken
} // end else => emailEnable == true
} // end mail via CCU CUxD
Code: Alles auswählen
meldung.replace(" ", F("%20")); // replaces whitespaces by %20. necessary otherwise CCU drops string. CCU cannot handle whitesspaces
Ich reichere den Text noch gerne mit Informationen wie Sesnorname, IP-Adresse und Zeitstempel an.
das CUxD Device 91 trägt den Namen "(91) CloudMatic" mit den Unterkapiteln
- email,
- sms,
- push,
- cloud.
Wahrscheinlich kann man auf diese Weise auch die anderen genannten Dienste vom WeMos aus nutzen.
Viel Erfolg!