NEWS
[Projekt] Scrolling OLED-display und Sonoff-Relais für iobroker via MQTT
-
Super, das habe ich soweit, VCC kommt dann auf 5 V, richtig ? Das Display hat eine Betriebsspannung von 3.3 bis 7 V
…Ich habe das aber schon richtig verstanden, dass nicht erst das expeasy installiert wird und dann der Rest nachinstalliert, sondern die Firmware angepasst und dann draufgebügelt wird , oder ? `
Hallo alexmosel
Respekt, dass du dich da einarbeitest. Man lernt dazu, wenn man das selbst zusammenbaut. Für das nächste Projekt kannst du auch einfach so was hier nehmen: http://www.ebay.de/itm/D-Duino-v3-esp82 … Swg7VZoxrW. Nur noch ein USB-Kabel dran, an den PC anschließen und die Firmware hochladen. Ganz ohne löten
Ok, du bist ja schon so weit, dass du die Firmware auf das Modul laden willst. Zu deiner Frage. Du brauchst NUR das ESP-Easy in der Verison 148, falls du MQTT nutzen möchtest. Starfish hat für die 148er einen Download. Schicke ihm doch einfach eine PM. In dem Download ist ein kleines Tool enthalten, mit dem du die Firmware über den USB-Anschluss hochlädst. Beim Anstecken des Moduls sollte auf deinem Rechner eine neue "COM" Schnittstelle erscheinen. Diese COM muss bei dem Tool mit angegeben werden. Hier genau beschrieben: https://www.letscontrolit.com/wiki/inde … are_Upload. Anschließend die Einstellungen über die Web-Oberfläche wie hier im Forum beschrieben, vornehmen.
Hoffe das hilft dir. Eisbaeeer
-
Hallo, habe ihn angetextet, ist sein Image dann komplett?
Man muss doch oled Treiber usw einbinden , oder?
5v ist korrekt oder? Weil am Anfang des Themas was von 3.3 v Wandler geschrieben wurde…?
Gesendet von meinem SM-G900F mit Tapatalk
-
ist sein Image dann komplett? `
jaMan muss doch oled Treiber usw einbinden , oder? `
nein5v ist korrekt oder? Weil am Anfang des Themas was von 3.3 v Wandler geschrieben wurde…? `
3.3V - 6V. Schon mal auf die Idee gekommen einfach mal das Datenblatt vom Display durchzulesen?
-
@knospers,
du schriebst dass du das Display nicht über MQTT ansteuerst sondern eine einfachere Lösung hast.
Mein Vorhaben ist eigentlich recht simpel. Ich habe Werte die über Modbus in IObroker landen und die wiederum sollen auf dem Display möglichst groß angezeigt werden.
Hast du da ne Anleitung ?
Danke schonmal
-
meine Lösung ist nicht unbedingt einfacher. Ich habe es deshalb über den Weg gemacht, weil ich das Display nach der Beschreibung aus der ersten Seite nicht zum Laufen gebracht habe… Bei den anderen, scheint es aber zu laufen... keine Ahnung....
In meinem Fall greife ich die Daten direkt aus der CCU heraus! Das Addon XML.api muß installiert sein.
Mit einem passenden Sketch für Wemo, wodran ein Display angeschlossen ist, greife ich die Daten von der CCU ab und gebe sie auf das Display weiter...
kurz und knapp. Du braucht dafür eine CCU mit Addon XML.api . Hast Du eine CCU? Tauchen die Werte irgendwo auf der CCU auf, die Du auf das Display ausgeben willst? Wenn nicht, dann brauchen wir garnicht weiter zu machen...
-
Habe ccu eben mal gegoogelt, verstehe nur Bahnhof
Habe ne Windows PC mit iobroker was später mal auf ne n raspberry soll. Das d1mini mit dem Display .
Sonst hab ich nix
Fragliche grüße
Gesendet von meinem SM-G900F mit Tapatalk
-
ah ja… CCU ist die Zentrale von der Homematic.
dann hat sich das schon mal erledigt. Dann bleibt Dir nichts anderes über als die Lösung über den MQTT Adapter in Verbindung mit ESPEasy.
1526_103584_w01_ccu.jpg -
Ah ok, habe ein knx System und kein homematic. …Dann werde ich mal versuchen.
Display geht , jetzt muss es nur noch werte anzeigen
Gesendet von meinem SM-G900F mit Tapatalk
-
Ah ok, habe ein knx System und kein homematic. …Dann werde ich mal versuchen.
Display geht , jetzt muss es nur noch werte anzeigen
Gesendet von meinem SM-G900F mit Tapatalk ` Wenn es nur um die Anzeige der Werte auf dem Display Geht, kannst du die auch per Http GET an das Display schicken. Weiter oben hab ich dir ein fix und fertiges Script als Beispiel genannt. JavaScript Adapter installieren und fertig.
Eisbaeeer
-
Hallo nochmal,
sorry für die vielen blöden Fragen…
schedule("*/30 * * * *", function () { // alle 30 Minuten - für Tests ggf auskommentieren setState("mqtt.0.easy_wemo.cmd","wemo,1,T_aussen"); // Beschriftungszeilen setzen via MQTT setState("mqtt.0.easy_wemo.cmd","wemo,3,Wohnzimmer"); setState("mqtt.0.easy_wemo.cmd","wemo,5,Keller"); var temp=getState("hm-rpc.2.IEQ0020678.1.TEMPERATURE").val; // HM-Datenpunkte auslesen und in Variablen schreiben var wz_t=getState("hm-rpc.2.MEQ0476362.1.TEMPERATURE").val; var wz_h=getState("hm-rpc.2.MEQ0476362.1.HUMIDITY").val; var k_t=getState("hm-rpc.2.MEQ0477427.1.TEMPERATURE").val; var k_h=getState("hm-rpc.2.MEQ0477427.1.HUMIDITY").val; setState("mqtt.0.easy_wemo.cmd","wemo,2,"+temp+" °C"); // Variablen nach ESP8266 schreiben via MQTT setState("mqtt.0.easy_wemo.cmd","wemo,4,"+wz_t+" °C / "+wz_h+" %rH"); setState("mqtt.0.easy_wemo.cmd","wemo,6,"+k_t+" °C / "+k_h+" %rH"); }); // für Tests ggf auskommentieren
meinst du das Script ? Das basiert doch auch auf mqtt ?
Habe eben ein bisschen damit rum probiert, passiert aber leider auf dem Display nüscht
-
Hallo nochmal,
ich gehe davon aus, das ist der Quellcode:
var befehl = "http://192.168.1.108/control?cmd=Display,"; //hier deine url eingeben var request_oled = require('request'); var einheit1 = " Grad"; var einheit2 = " km/h"; var zeile1 = "1,"; var zeile2 = "2,"; var zeile3 = "3,"; var zeile4 = "4,"; var zeile5 = "5,"; var zeile6 = "6,"; var zeile7 = "7,"; var zeile8 = "8,"; var zeile9 = "9,"; var zeile10 = "10,"; var zeile11 = "11,"; var zeile12 = "12,"; function sendData () { var data1 = getState("hm-rpc.0.HEQ0237810.1.TEMPERATURE").val; var data2 = getState("yr.0.forecast.day0.text").val; var data3 = getState("yr.0.forecast.day0.temperature_max").val; var data4 = getState("yr.0.forecast.day0.wind_direction").val; var data5 = getState("yr.0.forecast.day0.wind_speed").val; request_oled(befehl+zeile2+data2,function (error, response, body) { log('error: ' +error); // Print the error if one occurred }); request_oled(befehl+zeile4+data1+einheit1,function (error, response, body) { log('error: ' +error); // Print the error if one occurred }); request_oled(befehl+zeile6+data3+einheit1,function (error, response, body) { log('error: ' +error); // Print the error if one occurred }); request_oled(befehl+zeile8+data4+"-"+data5+einheit2,function (error, response, body) { log('error: ' +error); // Print the error if one occurred }); } schedule("*/30 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 30 Minuten log("===>Will be triggered every 30 minutes!"); sendData(); }); sendData();
Habe den Javascript adapter installiert und Script 1 den Text reinkompiert….
Wenn ich den Befehl 192.168.1.53/control?cmd=Anzeige,1,Hallo
in die Adresszeile meines Browers schreibe, dann gibt das Display das in Zeile 1 wieder, das klappt...
Ich denke um auf den Modbus-Wert zuzugreifen müsste dann modbus.0.inputRegisters.30775_PV-Erzeugung in dem Script stehen.
Ich schaffe es aber nicht, dass das Script überhaupt irgendwas tut.
In Zeile 1 soll z.b. stehen PV Aktuell
und in zeile 2 eben der Modbus-Wert
Wie oft kann man das denn aktualisieren, ohne dass der Flash-Speicher abraucht....die PV Werte ändern sich ja regelmäßig, also würde ein Intervall von sagen wir mal 5-10 min schon Sinn machen...geht das überhaupt ?
-
schonwieder ich :mrgreen:
Habe den Fehler gefunden, hatte zwar das Script gestartet, den Java-Adapter allerdings nicht….
Es zeigt jetzt einen Wert an....
Soweit so gut..
Fragen gibts, immernoch...
Wie kann man oben den Empfangsbalken, Uhrzeit (0:00 -- ich finde nirgends eine NTP einstellung für die Zeit) und D1-mini Name abschalten und dafür die 2 Zeilen groß auf dem Display darstellen ?
Vielen Dank bis hier hin....MFG
-
Hallo,
NTP habe ich gefunden, sehr versteckt…
Habe ein wenig mit anderer Firmware rumprobiert, komisch ist, dass wenn ich die ursprüngliche wieder einspiele alle meine Einstellungen auch wieder da sind.
Habe für NodeMCDU ein Flashtool gefunden mit dem man wohl den Speicher komplett löschen kann, nach Durchlauf des Tools irritiert das Modul meinen Windows PC...Mauszeiger springt wie blöde hin und her.
Nach flashen der anderen Firmware (schwierig wegen Mauszeiger) sind dann wieder alle Einstellungen da...also wie bekommt man das Ding komplett resettet ?
Was ich immernoch suche ist ne Lösung wie knospers, dass das ganze 2 Zeilig über die gesamte Displaygröße angezeigt wird.
Was ich mich auch noch frage ist, wie oft das Script die Werte ans Display sendet...kann man das einstellen dass er nur in 100er Schritten überträgt z.b. ?
Schönes WE
-
Hallo, das Thema ist zwar schon etwas älter aber für mich gerade aktuell.
Die Daten über MQTT an ein 20x4 Zeichen LCD zu senden habe ich inzwischen hinbekommen, aber ich komme mit dem OLED nicht weiter.
Liegt wohl doch an der ESPEasy Version
Könnte mir jemand die R148 Version von Starfish zur Verfügung stellen ? Das wäre prima.
Kann leider (noch) keine PN verschicken sonst hätte ich Starfish direkt angeschrieben.
Vielen Dank schon mal.
Beste Grüße
-
@wilddog - du hast PN
-
besten Dank, werde es heute Abend mal testen. Kann leider auch auf Deine PN nicht per PN antworten …
-
So, Projekt "Kontrollbox mit OLED" erst mal soweit abgeschlossen. Evtl. noch bissel was für die Optik tun.
-
altes Speedportgehäuse
-
Drucktaster
-
1x GPIO Expander PCF8574
-
1x OLED
-
1x NodeMCU 12F
Mit den 8 Tasten steuere ich verschiedene Scripte auf dem IoBroker.
nochmal 1000 Dank für die Bereitstellung der Firmware.
-
-
[halb-OT -ESPeasy Frage]
Hallo,
meine bisherigen ESP8266 bzw. ES32 Sensoren/Aktoren liefern Daten direkt an HM bzw. ioBroker - ohne MQTT
Jetzt möchte ich mal ESPeasy testen, evtl als Basis für künftige Entwicklungen, dann künftig eher auf ESP32.
Derzeitger Stand: ESPeasy ist mal auf einem D1 mini.
Bei der Konfiguration kann man "Generic HTTP" wählen. Das klingt interessant, so könnte man vielleicht direkt an den simpleAPI einliefern.
Als Beispiel wird angegeben:
demo.php?name=%sysname%&task=%tskname%&valuename=%valname%&value=%value%
ioBroker simpleApi erwartet eines der folgenden Anweisungen
{ "getPlainValue": "http://ipaddress:8087/getPlainValue/stateID", "get": "http://ipaddress:8087/get/stateID/?prettyPrint", "getBulk": "http://ipaddress:8087/getBulk/stateID1,stateID2/?prettyPrint", "set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint", "toggle": "http://ipaddress:8087/toggle/stateID&prettyPrint", "setBulk": "http://ipaddress:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint", "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&prettyPrint", "objects": "http://ipaddress:8087/objects?pattern=system.adapter.admin.0*&type=adapter&prettyPrint", "states": "http://ipaddress:8087/states?pattern=system.adapter.admin.0*&prettyPrint" }
Also wenn ich Daten einliefern möchte eines der beiden:
{
"set": "http://ipaddress:8087/set/stateID?value=1&prettyPrint",
"setBulk": "http://ipaddress:8087/setBulk?stateID1= … rettyPrint",
}
gesendet wird dann bei mir z.B. folgendes
IPdesioBrokers:8087/GET /setBulk?&data.0.weather.garden.Temp-SHT31=16.59&data.0.weather.garden.Humid-SHT31=41.80&data.0.weather.garden.Humid-abs-SHT31=5.90&prettyPrint
Wobei man auf das &prettyPrint auch verzichten kan.
Ist es durch geschickte Wahl des Templates und der Namen/Identifier in ESPeasy möglich, einen solchen String ohne umprogrammieren zu erzeugen?
P.S: Was mir bei ESPeasy gar nicht schmeckt: In security.dat stehen die wifi credentials in Klartext
-
So, Projekt "Kontrollbox mit OLED" erst mal soweit abgeschlossen. Evtl. noch bissel was für die Optik tun. `
Kontrollzentrale
-
besten Dank, werde es heute Abend mal testen. Kann leider auch auf Deine PN nicht per PN antworten … `
Könnte ich auch diese R148 Version bekommen? Wäre echt klasse!