Moin zusammen,
ich habe vor ca. einen Monat meinen Olimex ESP32 POE mit einenm TTL IR Lesekopf in Betrieb. Soweit so gut.
Jetzt kommt der spaßige Teil ich möchte noch 2 weitere Leseköpfe anschließen. Ein weiterte sollte kein Problem sein. Ob ein 3er auch noch funktioniert bin ich mir schon nicht mehr so sicher.
Aktuell scheiter ich allerdings bei der Programmierung des 2. Lesekopf’s.
Vielleicht hat sich ja jemand sowas ähnliches auch schon gebastelt.
LG Phillipp
Verwendest du Tasmota oder ESP Home?
Für Tasmota kann ich vielleicht helfen:
Ich betreibe zwar nur zwei Leseköpfe an einem ESP32 D1 mini aber von der Programmierung sollte es bei dir auch funktionieren:
Ich würde vermuten, dass deine Netzwerkbuchse einen der beiden Hardware Serials des ESP32 belegt. Dann kannst du einen Lesekopf mit Hardware Serial laufen lassen, den anderen als Software Serial.
Das “-” vor dem Empfangspin gibt Tasmota das Signal für den Software Serial, die 16 statt der 0 aktiviert den Medianfilter zur Verringerung von Lesefehlern.
+1,20,s,0,9600,PV,21
+2,-4,s,16,9600,Heizung,5
Pins sind jetzt frei gewählt.
Moin Bigmirror,
wie im Titel angegeben ESPHome 
Der pinout reference konnte ich entnehmen:
Für den 1. Lesekopf
3,3v
Gnd
GPIO1 TX
GPIO3 RX
Dieser funktioniert ja auch.
Den 2. Lesekopf habe ich jetzt auf den UEXT connector gesteckt.
Wieder 3,3v und GND
Und 2 von den 8 vorhandenen GPIO
GPIO 4. TX
GPIO36 RX
Jetzt hänge ich an der Programmierung und würde natürlich noch gerne den 3. Lesekopf anschließen.
Der GPIO 16 wäre noch ein RX pin
Fehlt mir also ein TX pin da bin ich bei der Beschriftung leider auch überfragt.
In der Reference steht jetzt noch EMAC_TXD2 kann man den auch nehmen?
Ich werde heute mal weiter basteln.
Grüße 
Nachtrag: aktuell bekomme ich Daten von beiden Sensoren wenn ich in der Yaml Datei nur ein UART angebe. Wenn ich 2 hinterlege wird einer korrekt angezeigt der zweite läuft mit einer Fehlermeldung durch.
[23:06:21][W][sml:128]: Checksum error in received SML data.
[23:06:19][D][sml:078]: OBIS info:
[23:06:19][D][sml:084]: (0123456789abcdef) 1-0:96.50.1 [0x484c59]
[23:06:19][D][sml:084]: (0123456789abcdef) 1-0:96.1.0 [0123456789abcdef]
[23:06:19][D][sml:084]: (0123456789abcdef 1-0:1.8.0 [0x00d33406]
[23:06:19][D][sml:084]: (0123456789abcdef) 1-0:2.8.0 [0x00]
[23:06:19][D][sml:084]: (0123456789abcdef) 1-0:16.7.0 [0x00c7]
[23:06:19][D][sml:084]: (0123456789abcdef) 1-0:36.7.0 [0x48]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:56.7.0 [0x22]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:76.7.0 [0x5c]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:32.7.0 [0x0935]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:52.7.0 [0x0932]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:72.7.0 [0x093c]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:31.7.0 [0x41]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:51.7.0 [0x28]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:71.7.0 [0x30]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:81.7.1 [0x78]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:81.7.2 [0x00f0]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:81.7.4 [0x012a]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:81.7.15 [0x0122]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:81.7.26 [0x0143]
[23:06:20][D][sml:084]: (0123456789abcdef) 1-0:14.7.0 [0x01f3]
[23:06:21][D][sml:084]: (00123456789abcdef) 1-0:0.2.0 [0x353031303032]
[23:06:21][D][sml:084]: (0123456789abcdef) 1-0:96.90.2 [0x36313339]
[23:06:21][W][component:237]: Component sml took a long time for an operation (1945 ms).
[23:06:21][W][component:238]: Components should block for at most 30 ms.
[23:06:21][W][sml:128]: Checksum error in received SML data.
[23:06:21][W][sml:128]: Checksum error in received SML data.
[23:06:22][D][sensor:094]: 'Zaelerstand Haus 1 PK': Sending state 1384.14148 kWh with 4 decimals of accuracy
[23:06:22][D][sensor:094]: 'Aktueller Verbrauch Haus 1 PK': Sending state 198.00000 W with 0 decimals of accuracy
esphome:
name: "olimex-stromzaehler"
friendly_name: Olimex Stromzähler
esp32:
board: esp32dev
framework:
type: arduino
logger:
level: DEBUG
logs:
sml: DEBUG
text_sensor: DEBUG
api:
encryption:
key: xxxxxxxxxxxxxxx
ota:
- platform: esphome
password:xxxxxxxxxxxxxxxxxxxxxxxxxx
# wifi:
# ssid: !secret wifi_ssid
# password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
# ap:
# ssid: "Olimex-Stromzahler"
# password: "xxxxxxxxxxxx"
ethernet: #olimex-esp32-poe-iso
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
power_pin: GPIO12
uart:
- id: uart_0
baud_rate: 9600
tx_pin: GPIO1
rx_pin: GPIO3
- id: uart_1
baud_rate: 9600
tx_pin: GPIO4
rx_pin: GPIO36
- id: uart_2
baud_rate: 9600
tx_pin: GPIO32
rx_pin: GPIO33
sml:
- id: mysml_0
uart_id: uart_0
- id: mysml_1
uart_id: uart_1
text_sensor:
- platform: sml
name: "EHZ541-ZE_0"
sml_id: mysml_0
server_id: "abcdef123456789"
obis_code: "129-129:199.130.3"
format: text
- platform: sml
name: "EHZ541-ZE_1"
sml_id: mysml_1
server_id: "0123456789abcdef"
obis_code: "129-129:199.130.3"
format: text
sensor:
- platform: sml
name: "Zaehlerstand Gemeinschaftsbereich"
sml_id: mysml_0
server_id: "abcdef123456789"
obis_code: "1-0:1.8.0"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
name: "Zaelerstand Haus 1 PK"
sml_id: mysml_1
server_id: "0123456789abcdef"
obis_code: "1-0:1.8.0"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
name: "Aktueller Verbrauch Gemeinschaftsbereich"
sml_id: mysml_0
server_id: "abcdef123456789"
obis_code: "1-0:16.7.0"
unit_of_measurement: W
accuracy_decimals: 0
device_class: energy
filters:
- platform: sml
name: "Aktueller Verbrauch Haus 1 PK"
sml_id: mysml_1
server_id: "0123456789abcdef"
obis_code: "1-0:16.7.0"
unit_of_measurement: W
accuracy_decimals: 0
device_class: energy
filters:
Hallo Philipp,
Könntest du mir das Binary für Olimex zur Verfügung stellen mit der Aktivierung des Skripts?
Wenn ich von Github 14.x binaries lade, dann bekomme ich einen Fehler.
Wie werden dann der TXT und Rx Port definiert?
Vorab vielen Dank
Ardunas