Hallo,
ich möchte vom MQTT2-Modul, über das ich bisher meinen MQTT-Server betreibe auf mosquitto umziehen und dabei meine bestehende devices mitnehmen.
Ich habe hauptsächlich ein paar Tasmotas und folgendes gemacht:
attr myBroker disable 1
um meinen den FHEM-MQTT-Server zu beenden- Starten von mosquitto
- Für alle devices, die in FHEM MQTT nutzen
attr <devicename> IODev myBrokerClient
Damit war ich in der Lage Tasmota-Geräte zu schalten, allerdings kamen pushs der physischen Geräte nicht mehr beim zugehörigen FHEM-Device an.
Weiß jemand, was ich hierbei falsch gemacht oder vergessen habe? (Bitte mich gerne RTFMen, wenn ich Doku übersehen habe, nur fand ich beim Suchen nichts passendes.)
Hallo,
ein List von einem der Fhem-Device würden bei der Analyse helfen.
Grüße
ergerd
Zitat von: Solero am 26 Dezember 2023, 02:04:53Damit war ich in der Lage Tasmota-Geräte zu schalten, allerdings kamen pushs der physischen Geräte nicht mehr bei ...
Siehst Du denn Traffic im MQTT2_Client? (Ganz oben links in der Detailansicht: Show MQTT Traffic
Wenn nicht dann hat Dein mosquitto keinen Anlass deinem Client etwas zu übergeben bzw. Dein Client kann keine Nachrichten lesen.
Kommen denn Nachrichten beim mosquitto an? Du kannst Dich auch mit mosquitto_sub verbinden und schauen ob es entsprechende Nachrichten gibt.
mosquitto_sub -h DeinHost -v -t '#'
Zitatattr myBroker disable 1
Das bewirkt nur, dass keine Daten an die MQTT-Clients gesendet werden.
Der Port (1883) ist weiterhin offen, und wird (je nach Startreihenfolge) entweder von MQTT2_SERVER oder mosquitto belegt.
Vielen Dank für die schnelle Rückmeldung.
Zitat von: ergerd am 26 Dezember 2023, 09:02:40[...] ein List von einem der Fhem-Device würden bei der Analyse helfen. [...]
Hier ein list eines Tasmota Zwischensteckers:
Internals:
CID DVES_A12602
DEF DVES_A12602
FUUID 34v84fe2-f43f-b684-a6fc-6406efa6fb2dd41b
IODev myBroker
LASTInputDev myBroker
MSGCNT 5487
NAME powerSpueMa
NR 348
STATE on
TYPE MQTT2_DEVICE
eventCount 5891
myBroker_CONN myBroker_192.168.13.8_62165
myBroker_MSGCNT 5487
myBroker_TIME 2023-12-26 20:42:22
JSONMAP:
Channel_0 0
Channel_1 0
Channel_2 0
Channel_3 0
Channel_4 0
Channel_5 0
Color 0
Dimmer 0
HSBColor 0
POWER1 0
POWER2 0
POWER3 0
POWER4 0
READINGS:
2023-08-29 14:04:05 BootCount 9
2023-12-26 20:42:22 ENERGY_ApparentPower 7
2023-12-26 20:42:22 ENERGY_Current 0.031
2023-12-26 20:42:22 ENERGY_Factor 0.04
2023-12-26 20:42:22 ENERGY_Period 0
2023-12-26 20:42:22 ENERGY_Power 0
2023-12-26 20:42:22 ENERGY_ReactivePower 7
2023-12-26 20:42:22 ENERGY_Today 0.008
2023-12-26 20:42:22 ENERGY_Total 67.759
2023-12-26 20:42:22 ENERGY_TotalStartTime 2023-07-07T19:33:56
2023-12-26 20:42:22 ENERGY_Voltage 230
2023-12-26 20:42:22 ENERGY_Yesterday 0.840
2023-08-29 14:04:05 FallbackTopic cmnd/DVES_A12602_fb/
2023-08-29 14:04:05 GroupTopic cmnd/tasmotas/
2023-12-26 20:42:22 Heap 25
2023-08-29 14:04:05 Hostname powerSpueMa
2023-12-26 01:46:42 IODev myBroker
2023-08-29 14:04:05 IPAddress 192.168.13.8
2023-12-26 01:47:21 LWT Online
2023-12-26 20:42:22 LoadAvg 19
2023-12-26 20:41:22 MaschineLaeuft 0
2023-08-29 14:04:05 Module NOUS A1T
2023-12-26 20:42:22 MqttCount 50
2023-08-29 14:04:05 RestartReason Power On
2023-07-07 19:59:01 SaveData on
2023-07-07 19:59:00 SetOption26 on
2023-12-26 20:42:22 Sleep 50
2023-12-26 20:42:22 SleepMode Dynamic
2023-07-07 19:59:00 StateText1 off
2023-07-07 19:59:00 StateText2 on
2023-07-07 19:59:00 StateText3 toggle
2023-07-07 19:59:00 StateText4 hold
2023-12-26 20:42:22 Time 2023-12-26T20:42:21
2023-12-26 20:42:22 Uptime 119T07:38:24
2023-12-26 20:42:22 UptimeSec 10309104
2023-08-29 14:04:05 Version 13.0.0(tasmota)
2023-08-29 14:04:05 WebServerMode Admin
2023-12-26 20:42:22 Wifi_AP 1
2023-12-26 20:42:22 Wifi_BSSId D2:BC:17:4D:94:AC
2023-12-26 20:42:22 Wifi_Channel 1
2023-12-26 20:42:22 Wifi_Downtime 0T01:13:25
2023-12-26 20:42:22 Wifi_LinkCount 27
2023-12-26 20:42:22 Wifi_Mode 11n
2023-12-26 20:42:22 Wifi_RSSI 72
2023-12-26 20:42:22 Wifi_SSId ******
2023-12-26 20:42:22 Wifi_Signal -64
2023-07-07 19:58:59 attrTemplateVersion 20210523
2023-12-25 14:09:49 json2nameValueErrorText json2nameValue: no closing } found
2023-12-25 14:09:49 json2nameValueInput {"Time":"2023-12-25T14:00�␂␛stat/tasmota_A12602/LOGGING14:09:42.630 RSL: STATE = {"Time":"2023-12-25T14:09:42","Uptime":"118T01:05:45","UptimeSec":10199145,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":45,"POWER1":"on","Wifi":{"AP":1,"SSId":"******","BSSId":"C6:AD:34:9E:84:DD","Chann
2023-12-26 01:47:50 state on
2023-12-24 14:01:03 subscriptions cmnd/DVES_A12602_fb/# cmnd/tasmota_A12602/# cmnd/tasmotas/#
Attributes:
IODev myBroker
alias Spülmaschine
autocreate 0
comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/tasmota_A12602/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
icon hue_filled_outlet
jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 Channel_5:0 HSBColor:0 Color:0
model tasmota_basic_state_power1
readingList tele/tasmota_A12602/LWT:.* LWT
tele/tasmota_A12602/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_A12602/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_A12602/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ? json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_A12602/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
stat/tasmota_A12602/POWER1:.* state
stat/tasmota_A12602/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
room Wohnzimmer
setList off:noArg cmnd/tasmota_A12602/POWER1 0
on:noArg cmnd/tasmota_A12602/POWER1 1
toggle:noArg cmnd/tasmota_A12602/POWER1 2
setOtaUrl:textField cmnd/tasmota_A12602/OtaUrl $EVTPART1
upgrade:noArg cmnd/tasmota_A12602/upgrade 1
setStateList on off toggle
Allerdings kommt der Inhalt des 'list' nach Rückgang auf den FHEM-internen MQTT2_SERVER.
Zitat von: Otto123 am 26 Dezember 2023, 09:28:13Zitat von: Solero am 26 Dezember 2023, 02:04:53Damit war ich in der Lage Tasmota-Geräte zu schalten, allerdings kamen pushs der physischen Geräte nicht mehr bei ...
Siehst Du denn Traffic im MQTT2_Client? (Ganz oben links in der Detailansicht: Show MQTT Traffic [...]
Ja, ich konnte im - per MQTT-Client angebundenen - mosquitto die durchlaufenden Events im FHEM-Device sehen, weswegen ich davon ausgehen, dass FHEM sie technisch hätte verarbeiten können. Oder stehe ich hier auf dem Schlauch?
Zitat von: rudolfkoenig am 26 Dezember 2023, 10:01:58Zitatattr myBroker disable 1
Das bewirkt nur, dass keine Daten an die MQTT-Clients gesendet werden. [...]
Sowohl FHEM als auch mosquitto laufen bei mir in separaten Containern. Ich hatte deshalb neben dem
attr myBroker disable 1
das listen des FHEM-Containers auf Port 1883 im docker-compose.yml deaktiviert und im mosquitto-Container aktiviert.
Gibt es noch irgendwelche
offensichtlichen Dinge, die ich übersehen habe?
Ich hab das letztens auch ohne größere Probleme durchgeführt.
Blöde Frage (weil ich es nicht gelesen habe und auch kein Reading 'MqttHost' zu sehen ist):
Hast du den Mosquitto auch deinen Tasmotas bekannt gemacht?
Zitat von: binford6000 am 26 Dezember 2023, 22:12:33Hast du den Mosquitto auch deinen Tasmotas bekannt gemacht?
muss er mMn nicht:
Zitat von: Solero am 26 Dezember 2023, 22:03:16das listen des FHEM-Containers auf Port 1883 im docker-compose.yml deaktiviert und im mosquitto-Container aktiviert.
ZitatZitatdas listen des FHEM-Containers auf Port 1883 im docker-compose.yml deaktiviert und im mosquitto-Container aktiviert.
Heißt doch nur, dass er den Port 1883 vom FHEM Container auf den Mosquitto umgezogen hat.
Wenn an den Tasmotas nix geändert wurde versuchen die sich weiterhin mit dem (nicht mehr existierenden)
FHEM MQTT2 zu verbinden...
Zitat von: binford6000 am 27 Dezember 2023, 00:28:01ZitatZitatdas listen des FHEM-Containers auf Port 1883 im docker-compose.yml deaktiviert und im mosquitto-Container aktiviert.
Heißt doch nur, dass er den Port 1883 vom FHEM Container auf den Mosquitto umgezogen hat.
Wenn an den Tasmotas nix geändert wurde versuchen die sich weiterhin mit dem (nicht mehr existierenden)
FHEM MQTT2 zu verbinden...
Das ergibt für mich keinen Sinn. In den Tasmotas ist ausschließlich IP und Port definiert und die bleiben ja gerade eben identisch. Welcher MQTT-Server dahinter steht ist egal, solange er protokollkonform ist. Was sollte ich dort noch konfigurieren?
Außerdem
sehe ich ja anschließend im FHEM-MQTT-
Client die Events der Tasmotas.
Der Fehler liegt bei mir im FHEM, nur weiß ich leider noch nicht wo. Weiß jemand, ob neben den IODevs der einzelnen devices in FHEM noch etwas getan werden muss?
Zitatund die bleiben ja gerade eben identisch
Das steht aber nirgends
Zitat von: Solero am 27 Dezember 2023, 00:51:39In den Tasmotas ist ausschließlich IP und Port definiert und die bleiben ja gerade eben identisch. Welcher MQTT-Server dahinter steht ist egal, solange er protokollkonform ist.
So sehe ich das auch.
Zitat von: Solero am 27 Dezember 2023, 00:51:39Außerdem sehe ich ja anschließend im FHEM-MQTT-Client die Events der Tasmotas.
Vielleicht davon mal eine Kostprobe für uns?
Du kannst ja auch mal die Rawdef vom MQTT2_Server sichern und den danach löschen. Dann ist er mal weg :)
Zitat von: binford6000 am 27 Dezember 2023, 00:58:40Das steht aber nirgends
für mich steht es hier ;)
Zitat von: Solero am 26 Dezember 2023, 22:03:16das listen des FHEM-Containers auf Port 1883 im docker-compose.yml deaktiviert und im mosquitto-Container aktiviert.
Zitat von: Otto123 am 27 Dezember 2023, 09:15:40Zitat von: Solero am 27 Dezember 2023, 00:51:39Außerdem sehe ich ja anschließend im FHEM-MQTT-Client die Events der Tasmotas.
Vielleicht davon mal eine Kostprobe für uns?
Aber sicher doch :)
RCVD
tele/tasmota_A02006/STATE
{"Time":"2023-12-27T22:37:24","Uptime":"120T09:33:27","UptimeSec":10402407,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":51,"POWER1":"on","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":68,"Signal":-66,"LinkCount":27,"Downtime":"0T01:13:25"}}
RCVD
tele/tasmota_A02006/SENSOR
{"Time":"2023-12-27T22:37:24","ENERGY":{"TotalStartTime":"2023-07-07T19:33:56","Total":68.584,"Yesterday":0.009,"Today":0.825,"Period":0,"Power":0,"ApparentPower":6,"ReactivePower":6,"Factor":0.06,"Voltage":230,"Current":0.028}}
RCVD
stat/tasmota_A02006/LOGGING
22:37:24.843 MQT: tele/tasmota_A02006/STATE = {"Time":"2023-12-27T22:37:24","Uptime":"120T09:33:27","UptimeSec":10402407,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":51,"POWER1":"on","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":68,"Signal":-66,"LinkCount":27,"Downtime":"0T01:13:25"}}
RCVD
stat/tasmota_A02006/LOGGING
22:37:24.855 MQT: tele/tasmota_A02006/SENSOR = {"Time":"2023-12-27T22:37:24","ENERGY":{"TotalStartTime":"2023-07-07T19:33:56","Total":68.584,"Yesterday":0.009,"Today":0.825,"Period":0,"Power":0,"ApparentPower":6,"ReactivePower":6,"Factor":0.06,"Voltage":230,"Current":0.028}}
RCVD
DVES_30A2B7/tele/STATE
{"Time":"2023-12-27T22:37:41","Uptime":"7T05:53:20","UptimeSec":626000,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":13,"POWER":"ON","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"RSSI":26,"Signal":-87,"LinkCount":2,"Downtime":"0T00:00:11"}}
RCVD
DVES_30A2B7/tele/SENSOR
{"Time":"2023-12-27T22:37:41","ENERGY":{"TotalStartTime":"2020-02-08T02:38:19","Total":271.400,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":230,"Current":0.000}}
RCVD
tele/tasmota_B03050/STATE
{"Time":"2023-12-27T22:37:44","Uptime":"204T04:00:19","UptimeSec":17640019,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":773,"POWER":"OFF","Wifi":{"AP":2,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":56,"Signal":-72,"LinkCount":1,"Downtime":"0T00:00:16"}}
RCVD
tele/tasmota_B03050/SENSOR
{"Time":"2023-12-27T22:37:44","SML":{"Total_Tarif1":0.000,"Total_Tarif2":0.000,"Total_Summe":4638.506,"Power_curr":696.000,"Curr_p1":0.100,"Curr_p2":0.100,"Curr_p3":3.050,"Volt_p1":230.700,"Volt_p2":229.600,"Volt_p3":229.800}}
RCVD
tele/tasmota_274FA2/STATE
{"Time":"2023-12-27T22:37:50","Uptime":"200T13:22:01","UptimeSec":17328121,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":375,"POWER1":"off","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":80,"Signal":-60,"LinkCount":197,"Downtime":"0T13:26:02"}}
RCVD
tele/tasmota_274FA2/SENSOR
{"Time":"2023-12-27T22:37:50","ENERGY":{"TotalStartTime":"2022-12-24T23:04:21","Total":2864.131,"Yesterday":13.983,"Today":4.030,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}}
RCVD
stat/tasmota_274FA2/LOGGING
22:37:50.815 MQT: tele/tasmota_274FA2/STATE = {"Time":"2023-12-27T22:37:50","Uptime":"200T13:22:01","UptimeSec":17328121,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":375,"POWER1":"off","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":80,"Signal":-60,"LinkCount":197,"Downtime":"0T13:26:02"}}
RCVD
stat/tasmota_274FA2/LOGGING
22:37:50.825 MQT: tele/tasmota_274FA2/SENSOR = {"Time":"2023-12-27T22:37:50","ENERGY":{"TotalStartTime":"2022-12-24T23:04:21","Total":2864.131,"Yesterday":13.983,"Today":4.030,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}}
RCVD
DVES_5B4A11/tele/HASS_STATE
{"Version":"8.1.0(tasmota)","BuildDateTime":"2019-12-25T12:33:25","Core":"2_6_1","SDK":"2.2.2-dev(38a443e)","Module":"Gosund SP1 v23","RestartReason":"Software/System restart","Uptime":"7T05:47:17","WiFi LinkCount":15,"WiFi Downtime":"0T00:18:47","MqttCount":27,"BootCount":72,"SaveCount":1014,"IPAddress":"192.168.13.2","RSSI":"14","LoadAvg":19}
RCVD
tele/tasmota_A638A7/STATE
{"Time":"2023-12-27T22:37:57","Uptime":"120T08:55:22","UptimeSec":10400122,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":307,"POWER":"ON","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":296,"Downtime":"0T03:50:50"}}
RCVD
tele/tasmota_A638A7/SENSOR
{"Time":"2023-12-27T22:37:57","ENERGY":{"TotalStartTime":"2023-05-05T10:20:05","Total":532.184,"Yesterday":0.397,"Today":0.144,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":229,"Current":0.000}}
RCVD
tele/tasmota_2E36C6/STATE
{"Time":"2023-12-27T22:37:57","Uptime":"64T01:57:54","UptimeSec":5536674,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":73,"POWER":"OFF","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"Mode":"11n","RSSI":44,"Signal":-78,"LinkCount":18,"Downtime":"0T00:03:36"}}
RCVD
tele/tasmota_2E36C6/SENSOR
{"Time":"2023-12-27T22:37:57","":{"Total_in":23372.20,"Total_out":0.00,"Power_curr":444}}
RCVD
DVES_5B4A11/tele/STATE
{"Time":"2023-12-27T22:38:05","Uptime":"7T05:47:29","UptimeSec":625649,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":27,"POWER":"ON","Wifi":{"AP":1,"SSId":"******","BSSId":"******","Channel":1,"RSSI":12,"Signal":-94,"LinkCount":15,"Downtime":"0T00:18:47"}}
RCVD
DVES_5B4A11/tele/SENSOR
{"Time":"2023-12-27T22:38:05","ENERGY":{"TotalStartTime":"2020-02-06T22:45:02","Total":544.663,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":231,"Current":0.000}}
RCVD
DVES_30A2B7/tele/HASS_STATE
{"Version":"8.1.0(tasmota)","BuildDateTime":"2019-12-25T12:33:25","Core":"2_6_1","SDK":"2.2.2-dev(38a443e)","Module":"Gosund SP1 v23","RestartReason":"Software/System restart","Uptime":"7T05:53:51","WiFi LinkCount":2,"WiFi Downtime":"0T00:00:11","MqttCount":13,"BootCount":32,"SaveCount":927,"IPAddress":"192.168.13.3","RSSI":"26","LoadAvg":19}
Sobald ich FHEM gestoppt und mosquitto startete, sah ich bereits im Log von mosquitto die eingehenden pushs der physischen devices:
mosquitto | 1703712465: mosquitto version 2.0.18 running
mosquitto | 1703712466: New connection from 192.168.13.3:50499 on port 1883.
mosquitto | 1703712466: New client connected from 192.168.13.3:50499 as DVES_30A2B7 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712475: New connection from 192.168.13.7:50034 on port 1883.
mosquitto | 1703712475: New client connected from 192.168.13.7:50034 as DVES_B03050 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712475: New connection from 192.168.13.5:55199 on port 1883.
mosquitto | 1703712475: New client connected from 192.168.13.5:55199 as DVES_274FA2 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712476: New connection from 192.168.13.8:62938 on port 1883.
mosquitto | 1703712476: New client connected from 192.168.13.8:62938 as DVES_5B4A11 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712476: New connection from 192.168.13.9:60996 on port 1883.
mosquitto | 1703712476: New client connected from 192.168.13.9:60996 as DVES_A638A7 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712476: New connection from 192.168.13.2:52673 on port 1883.
mosquitto | 1703712476: New client connected from 192.168.13.2:52673 as DVES_2E36C6 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712483: New connection from 192.168.10.21:18338 on port 1883.
mosquitto | 1703712483: New client connected from 192.168.10.21:18338 as DVES_5B4A11 (p2, c1, k30, u'DVES_USER').
mosquitto | 1703712483: New connection from 192.168.10.21:27047 on port 1883.
mosquitto | 1703712484: New client connected from 192.168.10.21:27047 as DVES_D2A3C0 (p2, c1, k30, u'DVES_USER').
Die in FHEM wieder auf IODev myBrokerClient umgebogenen devices reagieren wie zuvor nicht auf die Events.
Außer das jetzt bei dem MQTT Traffic das Gerät DVES_A12602 (list oben) nicht dabei ist, sehe ich keinen Fehler. ;)