Forum: Haus & Smart Home EMS > ESP8266-12 WLAN-Modul


von Juergen O. (juergen_o)


Lesenswert?

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
von Interessiert (Gast)


Lesenswert?

Nabend,

gibt schon Bilder von dem PCB im groben oder eine Schaltung mal zu 
stöbern.

Wäre schön.

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

Ja - die gibt es schon...
Verbesserungsvorschläge werden noch angenommen...

von Wolfgang A. (Gast)


Lesenswert?

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.

von Wolfgang A. (Gast)


Lesenswert?

p.s. Die Antenne würde ich mal aus ihrem (fast) Faraday'schen Käfig 
befreien und an den Rand legen.

von Sven (Gast)


Lesenswert?

1206 kann man noch ganz gut hintattern. Ansonsten nette idee.

von Erik B. (erik_bies)


Lesenswert?

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.

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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.

von Schleby N. (schleby)


Lesenswert?

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
von ... (Gast)


Lesenswert?

was für ein Sinn steckt hinter den vier parallel geschalteten 910 Ohm 
Widerständen?

von Marc S. (marc_s86)


Lesenswert?

... schrieb:
> was für ein Sinn steckt hinter den vier parallel geschalteten 910 Ohm
> Widerständen?

evtl statt einem hochlast wiederstand

von ingof (Gast)


Lesenswert?

Marc S. schrieb:
> evtl statt einem hochlast wiederstand

Ja,  ein 270 Ohm mit 1W wie auch gehen...

von Juergen O. (juergen_o)


Lesenswert?

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.

von Erik B. (erik_bies)


Lesenswert?

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...

von Linkcore S. (linkcore)


Lesenswert?

Hallo Juergen ich hätte Interesse an 2 Leerplatinen.
Falls die Möglichkeit einer Sammelbestellung bestehet, würde ich mich 
gerne beteiligen.

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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
von r_u_d_i (Gast)


Lesenswert?

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 ;-)

von r_u_d_i (Gast)


Lesenswert?

..bevor er untergeht:
MCP23S17:
RST mit offenen löt jumper / Mini Taster als Öffner gen Vcc+ ( 4.7kOhm / 
10kOhm ) ..
lg rudi ;-

von Ingo F. (ingof)


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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.

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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

von r_u_d_i (Gast)


Lesenswert?

Hi Jürgen

ok, Extension Port reicht mir so.
Bin dabei - PM geht heute abend raus.
lg rudi ;-)

von Erik B. (erik_bies)


Lesenswert?

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)

von Juergen O. (juergen_o)


Lesenswert?

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...

von Juergen O. (juergen_o)


Lesenswert?

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
von Juergen O. (juergen_o)


Lesenswert?

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..

von sven (Gast)


Lesenswert?

Hi,
ist es möglich anstatt des WLAN Moduls ein LAN (RJ45) Modul zu nutzen?

Gruß Sven

von Juergen O. (juergen_o)


Lesenswert?

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
von Juergen O. (juergen_o)


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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€

von Juergen O. (juergen_o)


Lesenswert?

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
von A. Zöller (Gast)


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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.

von Juergen O. (juergen_o)


Lesenswert?

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.

von Juergen O. (juergen_o)


Lesenswert?


von Juergen O. (juergen_o)


Lesenswert?

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

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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

von Markus M. (fotofieber)


Angehängte Dateien:

Lesenswert?

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

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

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
von Juergen O. (juergen_o)


Lesenswert?

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.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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
von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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...

von Juergen O. (juergen_o)


Lesenswert?

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

von Juergen O. (juergen_o)


Angehängte Dateien:

Lesenswert?

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
von Bjorn S. (domdomgo)


Lesenswert?

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.

von Juergen O. (juergen_o)


Lesenswert?

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

von NorbertD (Gast)


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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
von Norbert D. (norbert21059)


Lesenswert?

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
von Norbert D. (norbert21059)


Lesenswert?

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

von Norbert D. (norbert21059)


Angehängte Dateien:

Lesenswert?

Moin Moin,

Linux selber bauen geht nicht -> siehe protokoll.txt

Makefile hab ich mal mit angehängt.

Kannst ja vielleicht mal draufschauen.

@NorbertD

von Juergen O. (juergen_o)


Lesenswert?

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

von Norbert D. (norbert21059)


Lesenswert?

Hallo Jürgen,

wiedermal Danke. Bin hier auf Arbeit im Käfig (FireWall).
Berichte heute Abend von zu Hause.

von Norbert D. (norbert21059)


Lesenswert?

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

von Juergen O. (juergen_o)


Lesenswert?

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
von Norbert D. (norbert21059)


Angehängte Dateien:

Lesenswert?

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
von Strolch (Gast)


Lesenswert?

Das Build-Verzeichnis ist ja leer!
Hast du den ls nach dem Make ausgeführt?
Wie viel Platz ist auf dem Share? (df -h)

von Norbert D. (norbert21059)


Lesenswert?

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$

von Juergen O. (juergen_o)


Lesenswert?

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
von Norbert D. (norbert21059)


Angehängte Dateien:

Lesenswert?

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.

von Norbert D. (norbert21059)


Lesenswert?

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)

von Juergen O. (juergen_o)


Lesenswert?

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
von Norbert D. (norbert21059)


Lesenswert?

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
von Boxi B. (boxi)


Lesenswert?

Hallo,

Schöne Arbeit, Hut ab!
Existiert dazu noch irgendwo eine Pltine, die man käuflich erwerben 
könnte?

-- Boxi --

von Juergen O. (juergen_o)


Lesenswert?

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...

von mws (Gast)


Lesenswert?

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?

von Juergen O. (juergen_o)


Lesenswert?

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.

von Sven (Gast)


Lesenswert?

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

von Andreas S. (andreas84)


Lesenswert?

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

von Juergen O. (strolch)


Lesenswert?

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.

von delchrys (Gast)



Lesenswert?

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???

von Juergen O. (strolch)


Lesenswert?

The LM393 has an open-collector output.
So you simply attach your R4k7 against 3.3V instead of 5V.

von Delchrys (Gast)


Lesenswert?

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?

von Dieter Fauth (Gast)


Lesenswert?

Hallo,
gibt es noch Leerplatinen?

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.