Der Buderus EMS-Bus wird (hier) bisher in vier Threads: Beitrag "Logamatic 2107 Schnittstelle" Beitrag "Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung" Beitrag "Faktensammlung Buderus EMS" Beitrag "EMS > Adapter > NetIO > Raspi" sowie in Ingo.F's Wiki: http://ems-gateway.myds.me/dokuwiki/doku.php detailliert beschrieben. Dieser neue Thread beschäftigt sich mit dem Ersatz des NETIO durch den SoC ESP8266, eine MCU mit integriertem WLAN-Modul und einigen freien GPIOs. Auf dem Markt sind derzeit verschiedene ESP-Module erhältlich, welche sich (je nach Quelle) in der Preislage von 3,00€ - 10,00€ bewegen. Momentan bin ich dabei, eine neue Platine mit dem ESP8266, ESP-12 zu entwickeln. Das eigentliche EMS-Interface basiert auf dem bereits beim ESP-GW bewährten Design. Die doppelseitige Platine wird wieder bei "DirtyPCBs" gefertigt. Wesentliche Merkmale: - Größe: ca 5x10 cm² - EMS-Interface basiert auf Niffkos Design - "konventionelle" Bauteile - (SMD bekomme ich nicht hingetattert) - Spannungsversorgung direkt vom EMS-Bus - Alle relevanten GPIOs und Signale auf 14-pol. Stiftleiste -> Erweiterung via Huckepack-Platine möglich - Software-Update über serielle Schnittstelle, Arduino-komp. Header Die Software selbst ist momentan noch im frühen Experimental-Stadium. Primäre Funktionen: - EMS-GW kompatibel zum "collectord" - Basiskonfiguration über "telnet" Schätzkosten: - Leerplatine: 2,00 € (DirtyPCBs) - ESP8266-ESP12: 5,00 € - Buckkonverter: 6,00 € - Bauteile: <10,00 €
:
Bearbeitet durch User
Nabend, gibt schon Bilder von dem PCB im groben oder eine Schaltung mal zu stöbern. Wäre schön.
Ja - die gibt es schon... Verbesserungsvorschläge werden noch angenommen...
Juergen O. schrieb: > - "konventionelle" Bauteile - (SMD bekomme ich nicht hingetattert) Wenn du dir zutraust, die SMD-Cs vernünftig zu verlöten, sollten doch SMD-Rs erst recht kein Problem sein. Es muss ja nicht 0402 sein.
p.s. Die Antenne würde ich mal aus ihrem (fast) Faraday'schen Käfig befreien und an den Rand legen.
Hallo Juergen, Die Leiterplatte ist genau das, was ich versuchte zu entwerfen, aber war mein design noch nicht fertig Wenn es eine zusätzliche gibt, möchte Ich es gerne von Ihnen zu kaufen. Software that I was designing was build upon https://github.com/tuanpmt/esp_mqtt and updating the https://github.com/tuanpmt/esp_mqtt/blob/master/driver/uart.c uart0_rx_intr_handler to change the frame error handling to identify the messages. Still very early stage.
Hier ist das Redesign der Platine, mit massefreiem Antennenbereich. Btw, es kann auch das pinkompatible Modul ESP-07 eingesetzt werden, welches einen u.fl Antennenanschluß besitzt. Nach Abschluß einiger Kleinigkeiten (GPIO4/5 vertauscht, Header-Bezeichnung) wird das Layout an DirtyPCBs gehen, d.h. die Platinen werden in 4-8 Wochen zur Verfügung stehen. Der Code wird, incl PCB-Schema, als GIT-Repo zur Verfügung gestellt, sobald er ein wenig restrukturiert ist.
Ich weiß ja nicht ob das so muss aber, es sieht so als ob Du da noch eine ungeroutete Gnd Verbindung von dem 10N C zum Rest hast
:
Bearbeitet durch User
was für ein Sinn steckt hinter den vier parallel geschalteten 910 Ohm Widerständen?
... schrieb: > was für ein Sinn steckt hinter den vier parallel geschalteten 910 Ohm > Widerständen? evtl statt einem hochlast wiederstand
1W ist schon auf der sehr sehr sicheren Seite. Da der EMS-Bus ca 100Ohm Innenwiderstand hat und der Sendeteil nur minimale Pulsbelastung, würden m.A. ¼W Metallfilm durchaus reichen.
Noch eine kleine Verbesserung for the PCB würde Beschreibungen für die jumpers sein. Juergen O. schrieb: > Ja - die gibt es schon... > Verbesserungsvorschläge werden noch angenommen...
Hallo Juergen ich hätte Interesse an 2 Leerplatinen. Falls die Möglichkeit einer Sammelbestellung bestehet, würde ich mich gerne beteiligen.
Habe das Board nochmal komplett neu designed, da ich mit Eagles Toprouter nicht zufrieden war. - Debug Tx Anschluß entfällt, da bereits auf Ext. Port (GPIO2) - CH_PD auf Ext. Port geführt - Längsregler mit LED anstelle 3er Dioden. Als Seiteneffekt gibts eine Betriebsanzeige - Farbe ganz nach Gusto... - EMS-Tx Ausgang (LM334) auf 100R reduziert - 4x 910R in 2x 470R optimiert - Bestückung kompakter - Boardgröße 77x50 mm² - RC-Kombination CH_PD und REST lt. Espressif HW-SDK @Linkcore Sch.: sobald die Boards fertig sind, gebe ich hier nochmal Bescheid. Dauert bis zu 8 Wochen...
:
Bearbeitet durch User
Hi Jürgen Super Idee! Frage, bekommst du noch einen MCP23S17 mit Extra 2x 9 Pinheader für 7 6 5 4 3 2 1 0 INT I I I I I I I I I I I I I I I I I I also PORTA IIIIIIII PORTB IIIIIIII INT A I INT B I ------ Adressierung: A0 als offener löt jumper I / 0 bzw einfach auf GND A1 als offener löt jumper I / 0 bzw einfach auf GND A2 als offener löt jumper I / 0 bzw einfach auf GND ------ offene lötjumper SPI GPIO Pins MISO - > GPIO 13 MOSI - > GPIO 12 CLK - > echter GPIO 5 also falsch printed GPIO 4 CS - > echter GPIO 4 also falsch printed GPIO 5 lg rudi ;-)
..bevor er untergeht: MCP23S17: RST mit offenen löt jumper / Mini Taster als Öffner gen Vcc+ ( 4.7kOhm / 10kOhm ) .. lg rudi ;-
Hallo Jürgen, nach dem Boardlayout ist der GND NUR mit GPIO15 verbunden und hat keine Verbindung zum GND-Fläche. Ist das nur ein Fehler im Bild, oder ist das in Wirklichkeit auch so. Wäre es nicht noch besser unterhalb der Antenne die GND-FLäche etwas auszuschneiden? gehört die Gerade linie neben der geschlängelten Linie vom WLAN-Chip auch zur Antenne? Der wäre ja direkt über der GND-Fläche. Gruß IngoF
Danke, Ingo. Soll natürlich nicht so sein. Massefläche ist bereits verkleinert, sodaß die Antenne frei liegt. @Rudi: Auf dem Extension-Port sind alle notwendigen Signale für Erweiterungen herausgeführt - GPIO15 kommt da auch mit drauf, sodaß für den Betrieb ohne Extension-Board ein einfacher Jumper ausreicht. GPIO4/GPIO5 werde ich nicht tauschen, da a) ESP-07 diesen Fehler nicht hat b) nicht ausgeschlossen ist, das neuere ESP-12 ein korrektes Layout haben c) das Basis-Interface GPIO4/GPIO5 nicht benötigt.
Und hier das zugehörige Layout.. - Ext. Port auf 16pin erweitert - GPIO15 auf Ext. Port gelegt - erfordert im Normalbetrieb einen Jumper zw. Ext.Port, Pin 3-4 - Dummy Solder Jumper für Buck-Konverter /SHDN
Hi Jürgen ok, Extension Port reicht mir so. Bin dabei - PM geht heute abend raus. lg rudi ;-)
Hi Jürgen Did you find a way to avoid crap output from the ESP8266 going into the EMS bus? When I start I did no find a way to directly avoid any message. Hence I was thinking that it maybe better to add a tri-state buffer and connect it to one of the GPIO pins. Then we can boot the ESP without any worry that the bootmessages and crap is send on the EMS bus, and when properly initialised we can connect the bus by steering the GPIO ping e.g. something like 74LS244 Octal Tri-state Buffer / CD4503 Hex Tri-state Buffer. secondly, when serial FTDI is connected we could also use the DTR / RTS line to trigger the mode (programming/non program mode) and when we have the buffer in place we could drop the pins to control it. [entschuldigen Sie mich für mein Englisch, mein Deutsch ist nicht so gut)
The ESP bootmsg doesn't disturb the EMS, 'cause it's send with 74880baud - only a few, fast glitches on the EMS bus. I dislike the DTR/RTS, cause it adds additional HW overhead w/o any real benefit. Ideally, the serial prog is required only once - for initial load. Later on, update will be handled OtA - either by TFTP (like esp8266-frankenstein) or via cloud update. Btw - PCBs are at the board house...
Da die Boards nun auf dem Wege nach Europa sind, habe ich eine Stückliste erstellt und bei Reichelt als Warenkorb angelegt: https://secure.reichelt.de/index.html?&ACTION=20&LA=5010&AWKID=1025427&PROVID=2084 Den 10µF MKS-2 gibt es leider nicht bei R. Ich bezog ihn bei C* unter der Bestellnummer 450662-62. Gibt bestimmt günstigere Quellen oder eine bipolare Alternative. Ob auch ein 6,8uF (den gäbe es nämlich) für den gleitenden Mittelwert ausreicht kann ich leider nicht sagen. Vielleicht auch nen SMD 10uF Keramik reinfrickeln (diese Alternative habe ich beim Design übsersehen) - Platz ist ja ausreichend. Als Buck-Converter wird der D24V3F3 von POLOLU verwendet, der passende Sockel (1x4) ist im Warenkorb. Das ESP-12 Modul habe ich aus Rudis ;) Beitrag "Sammelbestellung WLAN2Serial ESP8266". Alternativ kann auch ein ESP-07 verwendet werden. Der Unterschied besteht in der Möglichkeit, eine externe Antenne anzuschließen. Basierend auf den aktuellen Preisen komme ich auf folgende Materialkosten (ohne Versand): Warenkorb: 4,72 € 10µF MKS: 4,46 € D24V3F3: 3,95 € ESP-12: ~3,50 €
:
Bearbeitet durch User
P.S. Den ESP-12 habe ich zum direkten Auflöten geplant. Wer sockeln will, muß sich zusätzlich zum Warenkorb noch RM2 Stecker/Buchsenleisten besorgen..
Hi, ist es möglich anstatt des WLAN Moduls ein LAN (RJ45) Modul zu nutzen? Gruß Sven
Der ESP-12 ist ein SoC mit integriertem WLAN-Modul und besitzt kein Ethernet-Interface. Wenn Du das Board nur teilweise bestückst kannst Du es wie den Konverter für den NetIO (bis auf die LEDs) verwenden. Spannungsversorgung extern (NetIO) bzw über EMS-Bus. In letzterem Falle den 3V3 Buckkonverter gegen den 5V-Typen tauschen.
:
Bearbeitet durch User
Warenkorb aktualisiert: a) Drosselspulen 4,7uH hinzugefügt b) SMD Keramikkondensater (C8) 10uF anstatt MKS 10uF c) Stift/Buchsenleisten RM 2,0mm für ESP-12 https://secure.reichelt.de/index.html?&ACTION=20&LA=5010&AWKID=1028877&PROVID=2084
Die Platinen sind eingetroffen! Wer Interesse hat, bitte via eMail melden. Verschicke als Standard-Brief: 1x Leerplatine + Porto: 2,50€ 2x Leerplatine + Porto: 4,85€
Optimal wäre es, wenn ihr eure Anschrift gleich mit angebt. Also so etwa: ===== 2x EMS/ESP8266-12 Leerplatine Axel Schweiß At Home 17 12345 Irgendwo ===== Konto kommt dann mit der/den Platine(n) ;)
:
Bearbeitet durch User
Hallo Jürgen, gibt es eigentlich schon eine Software für den ESP8266 ? Ich habe jetzt deine Platinen bestückt.Ich habe ein Terminalprogramm drangehängt und es kommen anscheinend vernünftige Daten. Da ich im Moment kein Net-IO habe überlege ich den ESP-8266 zu verwenden. mfg Andreas
Momentan verwende ich eine modifizierte "ESP8266-transparent-bridge" und logge die Daten auf meiner Synlology als ASCII-Hexdump:
1 | DiskStation> tail ems-1424363043.log |
2 | [ 1454.327692 280.255 16.384 080 16] 08 00 18 1b 00 00 00 00 00 00 00 2f 08 00 ? 7f:7f |
3 | [ 1456.944667 101.985 33.792 080 33] 08 00 18 00 35 01 ab 64 00 01 01 30 00 83 00 7d 00 80 00 00 00 ff 30 43 00 00 ff 00 10 83 00 ? c1:c1 |
4 | [ 1457.225545 280.878 16.384 080 16] 08 00 18 1b 00 00 00 00 00 00 00 2f 08 00 ? 7f:7f |
5 | [ 1457.642332 121.446 31.744 080 31] 08 00 19 00 00 46 01 aa 01 87 ff ff ff 64 01 21 a6 04 2f 64 00 00 00 04 2d 5c 01 21 50 ? 78:78 |
6 | [ 1457.917175 274.843 9.216 080 9] 08 00 14 00 19 94 27 ? 19:19 |
7 | [ 1459.042660 89.913 33.792 080 33] 08 00 18 00 35 01 aa 64 00 01 01 30 00 83 00 7d 00 80 00 00 00 ff 30 43 00 00 ff 00 10 83 00 ? 96:96 |
8 | [ 1459.322914 280.254 16.384 080 16] 08 00 18 1b 00 00 00 00 00 00 00 2f 08 00 ? 7f:7f |
9 | [ 1460.041704 92.931 33.792 080 33] 08 00 18 00 35 01 a9 64 00 01 01 30 00 83 00 7d 00 80 00 00 00 ff 30 43 00 00 ff 00 10 83 00 ? 6f:6f |
10 | [ 1460.321958 280.254 16.384 080 16] 08 00 18 1b 00 00 00 00 00 00 00 2f 08 00 ? 7f:7f |
11 | [ 1464.037883 57.028 33.792 080 33] 08 00 18 00 35 01 a8 64 00 01 01 30 00 83 00 7d 00 80 00 00 00 ff 30 43 00 00 ff 00 10 83 00 ? 38:38 |
Data logger:
1 | netcat -w 3 192.168.254.134 23 >>ems-$(date +%s).log |
Läuft ziemlich stabil - nur alle 4-5 Tage mal ein Aussetzer im WLAN... Grüble noch immer, ob ich auf FreeRTOS oder Espressif-SDK basierend bauen werde. Minimaler Funktionsumfang wie das EMSGW, um direkt mit dem collectord zu kommunizieren. Ziel: - EMS Controll Port (zum Loggen, um Commands direkt abzusetzen und verschiedene Betriebsparameter [SSID, IP etc] einzustellen) - EMS Data Port - wie beim NetIO - TFTP basierender Software-Update - einfacher SQL-Client, um direkt in die DB zu schreiben Eric wollte sich etwas mit MQTT bauen - ich weiß jedoch nicht, ober er schon mit Coding begonnen hat. Werde diese Tage die modifizierte Bridge auf Github (zusammen mit den kompletten Layouts) zur Verfügung stellen.
Hier ist der Github-Link: https://github.com/susisstrolch/EMS-ESP12 Schematics: eagle-Layout app: einfache Test-App für den ESP8266 Ein kleiner Fehler ist mir bei der Platine unterlaufen: Die Pads für den ESP8266-12 sind leider alle mit Lötstopplack überzogen... Die Anschlüsse für die 2mm Steckerleiste sind jedoch ok.
Der Reichelt-Warenkorb hat sich geändert: https://secure.reichelt.de/index.html?&ACTION=20&AWKID=1034698&PROVID=2084
Ich habe das Projekt jetzt mal auf ESP-LINK von Thorsten von Eicken umgestellt. Vorteil: - Konfiguration über Web-Browser - integrierter HTTPD - einfacher Update (OTA) Bin noch heftigst am ausdünnen, da einige Funktionen definitiv nicht benötigt werden und das Flash auf einem ESP07 knapp wird. Aktuell werden lediglich folgende Funktionen unterstützt: - WLAN Konfiguration über Browser - Zeitabfrage über NTP-Server - Anzeige WLAN-Einstellungen - einfache Logausgabe (Hexdump) in Browser-Fenster - Log-Ausgabe (binär) über Telnet Das Log hat folgendes Format: NTP-Timestamp (s, uint32) ESP-Timestamp (µS, uint32) Länge EMS-Paket (uint16) EMS-Datenpaket Trailer (0xe51a, uint16) Was fehlt: - nahezu alles, was mit dem Collectord zu tun hat - einfache Webmaske mit rudimentären EMS-Daten (Laufzeit, Temp) - Unterstützung beim Webinterface Die Projektfiles sowie die Beschreibung sind auf github: https://github.com/susisstrolch/ems-esp-link
Hier mal ein paar Screenshots: 1. Eingangsseite, mit WLAN Status Hier soll später die Kurzübersicht über den Heizungsstatus kommen (Systemzeit, Betriebsdauer, Aussentemperatur, Rücklauftemperatur...) 2. Konfigurationsseite Ist für die initiale Konfiguration (oder bei AP-Wechsel) wichtig Todo: NTP-Timeserver (momentan 0.europe.pool.ntp.org) Collector-Daemon Adresse:Port 3. Aktueller EMS-Dump (mit Hilfsinfos) 4 Byte NTP-Timestamp (1s) 4 Byte System Timestamp (1uS) 2 Byte EMS Paketlänge <EMS-Paket> 2 Byte Trailer (0xe5 0x1a) 4. System-Debug Screen
Bin nun Dank der PCBs von Jürgen auch im Boot. Lötarbeiten sind fertig, jetzt folgt der Test. (Zuerst über Seriell, dann erst ESP/WIFI). Merci an Jürgen und alle Beteiligte für Eure Arbeiten! Gruss Markus
Hi Jürgen, sehr cooles Projekt. Schade, dass ich keine eigene Heizung habe. ;) Ich habe mir gerade Dein Projekt von github gezogen und mir gleich mal das Userinterface im html-Verzeichnis angeschaut. Das kommt vom Äußeren her deutlich nüchterner rüber, als Deinem obenstehenden Post. Was muss man denn noch dazugeben, um so ein schickes buntes HTML-User-Interface zu bekommen? Danke Dir, Marcus P.S.: Ah, ok: Du sparst Platz und hast die Köpfe welche die Stylesheets laden von den Körpern getrennt. So bekommt man natürlich viel mehr in die Gefriertruhe, will sagen: ins Dataflash.
:
Bearbeitet durch User
Hi Marcus, den Web-Server habe nicht ich gebastelt, der kommt aus dem ESP-HTTPD Projekt (http://www.esp8266.com/viewforum.php?f=34), genau wie ein Großteil der Software aus dem ESP-Link von Torsten von Eicken (https://github.com/jeelabs/esp-link) stammt.
Hi Jürgen, danke für die Links. Das ESP-Entwicklungssystem habe ich natürlich auch hier. Ich suche allerdings seit einer Weile nach einer schicke Benutzeroberfläche, die datenmäßig nicht so dick aufträgt. Ich werde mir Torstens Projekt mal anschauen. Grüße, marcus
Momentan baue ich gerade das GitHUB-Repo um, damit ich Änderungen von Thorsten einfacher mergen kann. master: Der aktuelle Entwicklungszweig - momentan Parent(stable) stable: aktueller, lauffähiger Build (basiert noch weitgehendst auf der Version 1.04 von TvE) mit m.E. sinnvollen Merges aus der 2.x Version (Makefile, HTTPD). Dieser Zweig wird immer dann aktualisiert, wenn Updates vorliegen. TvEmaster: Das upstream Repository von TvE - mit minimalen (non-EMS) Anpassungen EMS-Link: die zukünftige Softwareversion, basierend auf Rev 2.x von TvE. Kann ab und an mal ein wenig strubbelig sein ;) Enthält dann aber (zukünftig!) Goddies wie mqtt, mysql Alle anderen Repos sind Basteleien - und demzufolge mit extremer Vorsicht zu geniessen!
:
Bearbeitet durch User
Um die Langzeitstabilität zu testen, habe ich ein Java-Programm angehängt, welches das Raw-Protokoll zu einem Syslog-Server weiterleitet. Aufruf: java -jar EmsSyslog.jar EMS-Link Syslog-Server Entweder in einer "screen" Session starten oder via nohup ... & im Hintergrund laufen lassen. @gmann, danke für die JAVA-Vorlage. Für die Selbstkompilierer: Ich verwende syslog4j...
Beim Testen mit 2 gleichzeitig angeschlossenen EMS-Links sind mir einige Kleinigkeiten (Hard & Soft) aufgefallen. Hier mal meine Vorschläge: 1. R6 (10k) gegen 5,6k wechseln - verbessert die Störanfälligkeit 2. Lötbrücke S1 (am Buckconverter) schliessen
Und hier nochmal zwei Korrekturen für die Hardware. 1. Der Bestückungsaufdruck für T1 und T2 ist verdreht! Bitte darauf achten, dass der Emitter zum unteren Platinenrand - sprich Richtung Klemmleiste - zeigt! 2. T1 wird ziemlich brutal geschaltet, da ich im Design den Basis- widerstand vergessen habe. Dies kann zu Störungen führen, wenn der Bus bereits stärker belastet ist, da beim Wechsel Break/Idle ein heftiger Peak entsteht. Ein Widerstand 10k - 20k zwischen LED-Kathode und der Basis von T1 hilft hier ungemein. Auf der Platinen-Oberseite die Verbindung zwischen Kathode und Basis auftrennen. Auf der Unterseite passt dann der Widerstand schön zwischen Basis und den Anschluss des 10k Vorwiderstandes der LED. Mit den angegebenen Modifikationen nimmt der Adapter ca 40mA im Dauer- Sendebetrieb auf.
:
Bearbeitet durch User
Hi Juergen, I was wondering if your eagle PCB layouts have been updated so that they reflect the fixes as stated in the "update" posts. If not, am I correct that * R6 10k should be replaced by a 5.6k * connect the VIN from the Buckconveter to the SHDN pin * only the silkscreen for the two transistors is swapped, pinning is correct * the connection between the LED cathode and transistor base has to be cut and a 10~20k resistor should replace the orignal trace /Bjorn Entschuldigung, ich spreche kein Deutsch.
Hi Bjorn, no, I didn't change the eagle layout until now. * exchanging R6 isn't really necessary. A longtime test with two boards didn't show any differences in raw data. ° Buckconverter: yep, suggested change otherwise you can get random brown outs (very rare, happened only on my desktop) ° T1/T2 - yep - silk screen is swapped ° LED - additional resistor is necessary (I really vapored a LED because of the missing resistor) Even for existing layouts, it's no big deal to do those changes. - buckconverter: I simply used a jumper to connect the two pins - LED resistor: can be easily patched on the solder side cheers, Jürgen
Moin Leute, es ist soweit ich habe Zeit mich endlich mit dem Projekt zu beschäftigen. Hatte vorher schon Ethersex am laufen. Lief ein Jahr problemlos. Mit der neuen Heizperiode ist die Hardware irgendwie ausgestiegen. Wenn ich den Adapter an die Heizung (Buderus GB152T) stecke geht diese in Störung. Aber das ist ein anderes Thema. Ich will ja den ESP8266 (Suuuuper Teil!!!!) Zuerst möchte ich die Software auf den ESP8266 bringen, um schon mal das GUI zu testen, aber leider bekomme ich es nicht hin. Bin auch nicht der unbedingte Profi. Zur Sache: Im Git hängt ja ein File mit der kompilierten Firmware -> ems-link.tgz. Richtig??? An welche Adressen sind die einzelnen Dateien zu flashen wenn unter Win8 der ESP8266Flasher.exe benutzt wird??? Ich habe auch versucht unter lubuntu VM (.ova von Espressiv) selbst zu kompilieren -> kein Erfolg. Ich erspare euch die Fehlermeldungen. Dieser Sonntag ist futsch. Meine Frage: gibt es ein ToDo mit - - welche Pakete müssen installiert werden - wie muss die Verzeichnisstruktur aussehen - wie muss das Makefile angepasst werden Ich habe bisher mit der Arduino IDE für ESP8266 gearbeitet und maximale Erfolge zu verzeichnen (DS18B2 mit mysql Client, Zeitschaltuhr, SPIFF, sntp, FHEM Anbindung etc.). Danke für jeden Hinweis!! @NorbertD
Nun, da habe ich wohl stillschweigend zu viel Erfahrung mit der ESP8266 Buildumgebung vorausgesetzt... Flashen über die serielle Schnittstelle ======================================= Die Datei ems-link.tgz enthält alle benötigten Blobs:
1 | boot_v1.4(b1).bin => 0x00000 |
2 | user1.bin => 0x01000 |
3 | blank.bin => 0x3FE000 |
4 | blank.bin => 0x7FE000 (zusätzlich bei >512KB Flash) |
Ab diesem Zeitpunkt kannst du via WLAN flashen (sofern die Basiskonfiguration - Umschaltung von AP -> STA) durchgeführt wurde. Da ich nichts zum ESPFlasher.exe sagen kann (ich arbeite nur mit Linux) empfehle ich hierfür das Espressif Flashtool zu verwenden. Hier der Link zur aktuellen Version (FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar): http://bbs.espressif.com/viewtopic.php?f=57&t=433#p1658 OTA - Over The Air Update ========================= Du benötigst "curl" (Command-Line Tool) umd das Binary zu flashen. Des Weiteren MUSS das ESP8266-Modul min 1MByte Flash-Memory haben (bspw. ESP-12E). curl -m 10 -s http://$hostname/flash/next - zeigt das NÄCHSTE zu verwendende Binary an curl -m 10 -XPOST --data-binary "@user1.bin" http://$hostname/flash/upload - schreibt user1.bin in das Flash-Memory. curl -m 10 -s "http://$hostname/flash/reboot" - Reboot EMS-Link curl -m 10 $v -s "http://$hostname/flash/next" - zeigt das NÄCHSTE zu verwendende Binary an (im Beispiel: user2.bin) (Wenn ich in die Verlegenheit komme, mit Windows arbeiten zu müssen, verwende ich MobaXterm, da dies eine vernünftige Umgebung - cygwin- mit bringt. Zusätzliche Pakete kannst du - wie in einem Debian-System - via apt-get nachinstallieren - wie beispielsweise curl...) Selbst bauen - Linux ========================== Notwendige Repositories: - esp-open-sdk (lädt das passende SDK automatisch herunter) - ems-esp-link git, make, autoconf und gcc sollten installiert sein. Details: -> esp-open-sdk: README.md -> ems-esp-link: README.md
1 | mkdir dev |
2 | cd dev |
3 | git clone https://github.com/pfalcon/esp-open-sdk.git |
4 | git clone https://github.com/susisstrolch/ems-esp-link.git |
5 | cd esp-open-sdk |
6 | # baue Toolchain, download SDK |
7 | make STANDALONE=y |
8 | cd .. |
9 | unzip esp-open-sdk/esp_iot_sdk_v1.4.0_15_09_18.zip |
10 | cd ems-esp-link |
11 | make |
Flashen via Seriellschnittstelle: make flash Flash Over the Air: make wiflash Selbst bauen - Windows ====================== Hierfür musst du leider eine der Suchmaschinen deiner Wahl bemühen...
:
Bearbeitet durch User
Hallo Jürgen, bin noch auf Arbeit, aber schon mal vielen Dank für Deine schnelle und umfangreiche Hilfe. DANKE!!!! Hab wie gesagt bislang mit Arduino IDE gearbeitet (hat bisher gereicht). Kann auch OTA SPIFF etc.. Werd mal Linux testen. 1MB Flash - kein Problem. Hab alle Flash-Chips ausgetauscht gegen Winbond 25Q64FWSIG (8MB). War ne ziemliche Frickelei beim löten. Geht aber und funzt super. Melde mich dann. @NorbertD
:
Bearbeitet durch User
Hallo Jürgen, hab mich zu Hause natürlich gleich dran gesetzt. Flashen über die serielle Schnittstelle hat schon mal geklappt :-) Kann jetzt mit dem Browser auf den ESP-12E zugreifen. Versuch dann bald mal selber zu bauen. Nochmals. DANKE. @NorbertD
Moin Moin, Linux selber bauen geht nicht -> siehe protokoll.txt Makefile hab ich mal mit angehängt. Kannst ja vielleicht mal draufschauen. @NorbertD
Moin, mach mal Deine Änderung im Makefile rückgängig (git checkout Makefile). Ich meine, das alte Build-System hatte da ein paar Probleme mit Abhängigkeiten. Du brauchst das Makefile nicht ändern. Es ist so ausgelegt, das ENV-Variablen Priorität haben (deshalb die ?= Zuweisungen).
1 | ESPPORT=/dev/buspirate make flash |
2 | MODULES= make wiflash |
Du kannst Dir auch eine "local.conf" erstellen, in der Deine Änderungen stehen.
1 | # helper for parent Makefile |
2 | LOCALCONF = yes |
3 | |
4 | # --------------- build environment --------------- |
5 | #ESPTOOL ?= $(abspath ../esp-open-sdk/esptool/esptool.py) |
6 | ESPPORT ?= /dev/esp8266 |
7 | ESPBAUD ?= 115200 |
8 | SDK_BASE ?= $(abspath ../esp_iot_sdk_v1.5.1) |
9 | |
10 | # --------------- chipset configuration --------------- |
11 | # Pick your flash size: "512KB", "1MB", or "4MB" |
12 | FLASH_SIZE ?= 4MB |
13 | |
14 | # --------------- esp-link config options --------------- |
15 | STA_SSID ?= AccessPoint |
16 | STA_PASS ?= topsecret |
17 | CHANGE_TO_STA ?= yes |
18 | |
19 | # Optional Modules: ems, syslog, mysql, sntp |
20 | MODULES = mqtt rest ems syslog |
21 | |
22 | # --------------- EMS-link config options --------------- |
23 | # hostname or IP address for wifi flashing |
24 | ESP_HOSTNAME ?= ems-link02 |
25 | |
26 | ifneq (,$(findstring ems,$(MODULES))) |
27 | CFLAGS += -DEMSBUS |
28 | endif |
29 | |
30 | ifneq (,$(findstring syslog,$(MODULES))) |
31 | CFLAGS += -DSYSLOG |
32 | endif |
33 | |
34 | ifneq (,$(findstring mysql,$(MODULES))) |
35 | CFLAGS += -DMYSQL |
36 | endif |
Hallo Jürgen, wiedermal Danke. Bin hier auf Arbeit im Käfig (FireWall). Berichte heute Abend von zu Hause.
Moin, komme nicht weiter :-( der Kopf brummt. Mach für heute Schluss. Ist Jürgen eigentlich der Einzige der das Build geschafft hat ??? Vielleicht noch jemand anderes der's mal versuchen kann. Oder ich lass einfach die Finger davon und arbeite mit den fertigen Blobs. Läuft ja auch schon. Wichtig ist ja eigentlich das Frontend mit mySQL. Also dann für heute: guts nächtle
Um dein Problem einzugrenzen:
1 | make clean |
2 | VERBOSE=1 make 2>&1 >build.log |
3 | ls -ltrR build >lsltrR.log |
und schieb' die beiden Logfiles hoch... Wichtig: lass mal die MODULES so wie sie waren... Nun - für den Anschluss an einen CollectorD fehlt noch ein wenig... (hauptsächlich Zeit...). Und der SQL-Treiber muß "lediglich" von C++ (Arduino) auf plain C umgestrickt werden. Zumindest kann man via Telnet-Port die Daten mitlesen (so wie die kleine Syslog-JAVA APP) und ggf aufbereitet in einen SQL-Server schieben, um dann mit den WebFrontend drauf zu zu greifen. Die Schnittstelle zum CollectorD kommt, sobald ich mal wieder etwas mehr Zeit finde und die Funktionen aus Rev 1.x in die 2.x übernommen habe.
:
Bearbeitet durch User
Moin Moin Jürgen, da hab ich wohl schon zu viel erwartet. Ist ja auch ne Menge Arbeit!!! Ich meinte den Ethersex NetIo und den Adapter einfach gegen die ESP8266-Platine austauschen zu können und wieder das Browserinterface von moosy nutzen zu können. Als "Middleware" hatte ich einen BananaPi im Einsatz. Nun gut dann gilt es halt abzuwarten. Leider kann ich nichts zum Projekt beitragen. Ich bin kein Spezialist. Kann nur "nachbauen und anpassen" ;-). Apropo nachbauen. Ich hab die Logfiles wie empfohlen mit rangehängt. Das make läuft offensichtlich nicht komplett ins Logfile. Deswegen mal in buildscreen.log schauen. Da ist der Terminalscreen vom kompletten Vorgang. Have a nice day.
:
Bearbeitet durch User
Das Build-Verzeichnis ist ja leer! Hast du den ls nach dem Make ausgeführt? Wie viel Platz ist auf dem Share? (df -h)
Ja. Build ist leer. Ist mir auch schon aufgefallen. Aber woran liegt's??? ls wie in buildscreen.log.txt (vorletzte Zeile) zu sehen ausgeführt. Share ist ein Gemeinsamer Folder der VirtualBox VM auf LW C vom Host. Platz ist genug: esp8266@esp8266-VirtualBox:/mnt/Share$ df -h Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf udev 492M 4.0K 492M 1% /dev tmpfs 101M 868K 100M 1% /run /dev/sda1 6.8G 3.5G 2.9G 55% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 501M 0 501M 0% /run/shm none 100M 20K 100M 1% /run/user none 210G 116G 94G 56% /media/sf_share none 210G 116G 94G 56% /mnt/Share esp8266@esp8266-VirtualBox:/mnt/Share$
Das hängt m.E. definitiv an deiner Build-Umgebung. Was verwendest du denn? Hast du "esp-open-sdk" gebaut und installiert? Was gibt dir der Befehl "id" in deiner Build-Umgebung aus? Wie viel Speicher (Befehl: free) hat deine Umgebung? Mach mal "make clean; make; dmesg|tail 64" und "tail -64 /var/log/messages" und "tail -64 /var/log/syslog"
:
Bearbeitet durch User
Hallo Jürgen, kurzer Zwischenstand. Hab gestern (bzw. Rechner lief über Nacht) noch mal versucht direkt im Filesystem der VM (also nicht im Shared Folder) das esp-open-sdk neu zu bauen. Lief gegenüber dem ersten mal verdammt lange, so das ich schon mal zu Bett gegangen bin. Heute morgen dann: "No space left on device" . Die VM von Espressif ist ja auch nur 8,6 GB groß. Hab das log mal drangehängt. Werd am Wochenende weitermachen. Melde mich dann.
Soooooooooooooooo. Das war vielleicht ne schwere Geburt!! Diverse Probleme mühsam behoben. Diese Wochenende ist für'n Ars.... Neue VM mit Ubuntu 15.10 erstellt. esp-open-sdk gebaut -> dauert ca. 3h (auf meinem Rechner!?) ems-esp-link gebaut -> massive Probleme c_types.h java Pfade etc. aber Alles irgendwie!!?? hinbekommen Bauen -> geht Flashen seriell -> geht (muss als root gemacht werden. sonst kein Zugriff auf ttyUSB0) Flashen OTA -> geht nicht wg. Wechsel zu STA-Mode nicht möglich. Im Browser (am Handy mit AP verbunden) wird das lokale WLAN nicht gefunden. Und somit ist unter "Wifi Association" kein Wechsel möglich. Hab local.conf eingebunden und dort STA_SSID ?= meineSSID STA_PASS ?= meinPassword CHANGE_TO_STA ?= yes eingefügt. Geht aber nich. Irgendwelche Tips???? Bin weiter am Testen. Melde mich wieder. Für heute reichts erstmal. Gibt ja auch gleich nen Tatort zum Abschalten (Ach ne sehe grade heute gibts nen Polizeiruf. Na egal Hauptsache Feierabend)
Ich habe den Build noch einmal auf einem frisch installierten Linux-Mint in einer VMware (2GB Mem, 2CPU) ausprobiert.
1 | sudo apt-get install make unrar autoconf automake libtool gcc g++ gperf \ |
2 | flex bison texinfo gawk ncurses-dev libexpat-dev python python-serial \ |
3 | sed git libz-dev |
4 | |
5 | mkdir develop |
6 | cd develop |
7 | git clone --recursive https://github.com/pfalcon/esp-open-sdk.git |
8 | git clone https://github.com/susisstrolch/ems-esp-link.git |
9 | |
10 | cd esp-open-sdk |
11 | make |
12 | cd .. |
13 | unzip esp-open-sdk/esp_iot_sdk_v1.4.0_15_09_18.zip |
14 | cd ems-esp-link |
15 | make |
Wird ohne jegliche Warnings sauber kompiliert. Bzgl Flash via Seriell-Schnittstelle: Einfach den User in die Gruppe "dialout" aufnehmen - bspw. mittels "sudo vim /etc/group" die Zeile "dialout:x:20:" um den Benutzernamen ergänzen.
:
Bearbeitet durch User
Hallo Jürgen, hat alles so funktioniert wie du es beschrieben hast! Ohne Mucken und Murren und ohne einen Error !!?? Und auch deutlich schneller als bei Ubuntu. Soll es wirklich nur an Ubuntu gelegen haben?? Hab dort eigentlich genau das gleiche gemacht wie bei Mint. Nun ja, "Stromes Wege sind unergründlich". Es funktioniert ja jetzt, und ich muss nicht wissen "Was die Welt im Innersten zusammenhält". Aus dem Alter bin ich raus. Allerdings gibt es, wenn alles geflasht ist, bei der "Wifi Configuration" des ESP noch Probleme. Kann aber auch an meiner Infrastruktur liegen. Hat heute schon mal funktioniert. Der ESP findet keine WLAN-Netze bei denen er sich anmelden könnte. Hab mal ne Thoshiba FlashAir-SD zusätzlich i.B. genommen (ist ja ein AP). Da waren auf einmal die WLANs beim ESP da. Meine Fritz!Box u. flashair. Aber ich werde die Sache jetzt aber nicht weiter forcieren, aber demnächst mal die Platine bestücken u. i.B. nehmen. Die Mint-VM wird für spätere Aktionen erstmal gesichert. Wie ist denn der Stand des Projektes sonst so? Gibt es Fortschritte bei mySQL u. GUI? Vielen Dank noch mal für deine "aufopferungsvolle" Hilfe ;-) und eine schönes WE. Ich bleib dran. Zeit ist im Monent bischen knapp. Wird noch schlimmer wenn der Frühling "demnächst" kommt. Wohne auf dem Dorf mit Haus u. Garten. @Norbert
:
Bearbeitet durch User
Hallo, Schöne Arbeit, Hut ab! Existiert dazu noch irgendwo eine Pltine, die man käuflich erwerben könnte? -- Boxi --
Jep... habe noch einige in der Schublade. 1x Leerplatine + Porto: 2,50€ 2x Leerplatine + Porto: 4,85€ Komme momentan aus Zeitgründen nur nicht weiter mit der Software...
Hi Juergen, sorry about posting this in English, because my German is not good. I am interested in the PCBs if you can ship to Belgium. Before I make the decision I still have some questions: - is this the correct BOM * https://secure.reichelt.de/index.html?&ACTION=20&AWKID=1034698&PROVID=2084 * esp8266-12 * which voltage converter? - what I can do with this? * is it compatible with buderus GB162-30T40S + rc35 * can I view/change settings? * can I turn on/off the boiler ignoring the RC35's settnigs?
Hi mws, sure, I can ship the PCBs to Belgium. Simply send me a private Msg with your complete address. 1 PCB: 2,90€ 2 PCBs: 5,50€ I bought the step-down converter from http://www.exp-tech.de/pololu-3-3v-300ma-step-down-spannungsregler-d24v3f3. The BOM is nearly complete - found that I missed the clamp connecter. Should be a RM 5.04 one... ES8266-12E are available on eBay (or via AliExpress). Currently, you can only log the EMS events via a JAVA application to a syslog server. Software is still in development, but I'm pretty short in time, so it will still need a bit. Plan is, to make the function compatible to NetIO, with buildin WebInterface and MQTT.
Hallo Juergen_o, bei meiner Suche nach einer Möglichkeit meine Heizung smarter zu machen bin ich auf diesen Thread gekommen. Das klingt wirklich nach einer Menge Hirnschmalz, die hier bereits reingesteckt wurde. Respekt! Ich suche nach einer Möglichkeit die Heizung mit MQTT zu verbinden. Damit möchte ich vor allem Daten loggen (Brennerlaufzeit für die Verbrauchsmessung, Außentemperatur etc). Und ggf. Urlaubsmodus zu aktivieren oder andere Parameter zu ändern). Wie weit ist die die Integration schon gediehen und welche Möglichkeiten bietet diese? Für die Sicherheit wäre es bestimmt auch sinnvoll bei der Kommunikation mit MQTT eine zertifikatsbasierte Authentifizierung zu verwenden. Die bösen Buben sind ja heute überall :-) Für ESP-12F und den Mosquitto Server hab ich das schon gemacht. Das ist nicht sonderlich kompliziert. Hast zu zufällig auch noch ein PCB übrig das ich käuflich erwerben könnte? Gruß, Sven
Hi Jürgen, das Projekt hört sich super an. Wollte mir eigentlich die nächsten Tage die Variante mit dem NetIO basteln und bin auf deine Version aufmerksam geworden. Ist das Projekt inzwischen so weit lauffähig, das ich die Werte mit dem ColletorD auslesen kann? Gibt es noch Leerplatinen? Viele Grüße: Andreas
Leerplatinen sind noch vorhanden. Leider finde ich nicht die Zeit, um mich wieder mit dem Thema zu beschäftigen. D.h. die Software ist weiterhin auf dem Stand "Protokoll-Umsetzung". Ich polle den ESP-Link mit einer JAVA-App um die Daten aufzubereiten.
Hello, sorry in english (ist besser). i made the attached pcb for connecting EMS bus, but it is designed at 5V. Because i need 3V3 for ESP8266 which resistor do i need to replace at the upper right part 4k7/4k7??? Is it a 100ohm resistor so i get 4k7/100ohm???? If i change all my voltages to 3V3 instead including PSU (Pin #8) of the LM393 of 5V it would work???
What do you die doe R13 then. Is see 100ohm. Bit in my circuit it uses also 4k7. Do I need to switch that one also?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.