GELÖST ! : Probleme mit Sonoff S20 Tasmota Mosquitto

Begonnen von rasti, 17 November 2018, 19:24:34

Vorheriges Thema - Nächstes Thema

rasti

Hallo,

ich habe heute meine ersten Versuche mit MQTT und einer Sonoff S20 Funksteckdose gemacht.

Ich habe viel gegoogelt und einiges gelesen, aber auch wenn das Problem hier schon gefühlt 100x
behandelt wurde, komme ich einfach nicht weiter.

Folgendes geht / hat geklappt :
- Die Sonoff S20 wurde mit Tasmota geflasht, sie loggt sich ins WLAN ein, hat eine feste IP 192.168.178.24
  und lässt sich im Brower ansprechen, konfigurieren und schalten.
- Es wurde ein Mosquitto 3.1 Server auf dem FHEM-Raspi 192.168.178.6 installiert und der läuft glaube ich.
   Zumindest sehe ich ihn in FHEM, ich kann mich mit ihm über mqtt.fx (aus Windows, andere IP)
   aus verbinden und ansprechen und bekomme subcribte Messages (Schaltbefehle aus FHEM-Device) angezeigt,
   siehe Screenshot.

Was nicht geht :

- der Sonoff will sich anscheinend nicht mit dem Mosquitto-Server verbinden.
  Fehlermeldungen aus der Sonoff - Tasmota-Konsole siehe unten 

Was ich probiert habe :
- Installation verschiedener anderer mqtt-Brokerversionen auf dem Raspberry => immer gleiches Problem
- MQTT-Modul in FHEM aktualisiert (dann stürzt FHEM ab, sobald ich einen Schaltbefehl sende,
  deswegen habe ich wieder das "bei mir funktionierende Uralt-Modul" reingenommen
  (Komplettupdate möchte ich nicht machen .... da hängt zuviel dran und des Rest geht ja...)
- Versucht, den Devicenamen an verschiedenen Stellen der Tasmota-Konfiguration einzugeben,
   ohne Erfolg, es geht nicht, aktuelle Konfiguration siehe unten.

Kann mir jemand weiterhelfen ? Unten stehen glaube ich alle relevanten Infos der Devices und Konfigurationen.

Viele Grüße

Ralf




MOSQUITTO Version
pi@raspberrypi ~ $ mosquitto
1542476558: mosquitto version 0.15 (build date 2018-04-01 16:26:21+0000) starting
1542476558: Opening ipv4 listen socket on port 1883.
1542476558: Error: Address already in use
pi@raspberrypi ~ $

mosquitto -v
Error: Unknown option '-v'.
mosquitto is an MQTT v3.1 broker.




PORTABFRAGE
netstat -an | grep LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN
unix  2      [ ACC ]     SEQPACKET  LISTENING     4142     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     6450     /var/run/apache2/cgisock.2046
unix  2      [ ACC ]     STREAM     LISTENING     6491     /var/run/dbus/system_bus_socket


Sonoff-S20-Definition in FHEM

Internals:
   IODev      Mosquitto
   NAME       Sonoff_Steckdose_1
   NR         1002
   STATE      off
   TYPE       MQTT_DEVICE
   qos        0
   retain     0
   Readings:
     2018-11-17 14:22:43   cmnd/           POWER
     2018-11-17 15:32:28   off             off:noArg
     2018-11-17 18:44:22   state           off
     2018-11-17 18:44:22   transmission-state outgoing publish sent
   Message_ids:
   Publishsets:
     :
       topic      Sonoff_Steckdose_1/cmnd/POWER
       values:
         on
         off
         toggle
   Sets:
     off
     on
     toggle
   subscribe:
     1
     tele/Sonoff_Steckdose_1/LWT
     Sonoff_Steckdose_1/stat/POWER
   subscribeExpr:
     ^1$
     ^tele\/Sonoff_Steckdose_1\/LWT$
     ^Sonoff_Steckdose_1\/stat\/POWER$
   Subscribereadings:
     Sonoff_Steckdose_1/stat/POWER state
     tele/Sonoff_Steckdose_1/LWT network
Attributes:
   IODev      Mosquitto
   autoSubscribeReadings 1
   eventMap   on:on off:off
   publishSet on off toggle Sonoff_Steckdose_1/cmnd/POWER
   room       MQTT
   stateFormat state
   subscribeReading_network tele/Sonoff_Steckdose_1/LWT
   subscribeReading_state Sonoff_Steckdose_1/stat/POWER
   webCmd     on:off:toggle


Mosquitto-Definition in FHEM
Internals:
   DEF        192.168.178.6:1883
   DeviceName 192.168.178.6:1883
   FD         4
   NAME       Mosquitto
   NOTIFYDEV  global
   NR         1000
   NTFY_ORDER 50-Mosquitto
   PARTIAL
   STATE      opened
   TYPE       MQTT
   buf
   msgid      2
   ping_received 1
   timeout    60
   Readings:
     2018-11-17 18:49:26   connection      active
     2018-11-17 17:26:24   state           opened
   Messages:
Attributes:
   keep-alive 120
   room       MQTT


FHEM-Version:

Latest Revision: 11384

File                     Rev   Last Change
......
fhem.pl                  11338 2016-04-28 20:05:02Z rudolfkoenig
.....
00_MQTT.pm                6935 2014-11-09 20:35:34Z ntruchsess
10_MQTT_DEVICE.pm         6935 2014-11-09 20:35:34Z ntruchsess
.....


SONOFF-TASMOTA-INFOSEITE

Sonoff S2X Modul
Sonoff_Steckdose_1
Tasmota Version 6.3.0.5(sonoff)
Build-Datum & -Uhrzeit 2018.11.16 21:32:46
Core-/SDK-Version 2_3_0/1.5.3(aec24ac9)
Laufzeit 0T00:11:57
Anz. Flash Schreibzugriffe 72 at 0xF4000
Anzahl Startvorgänge 23
Grund für Neustart Power on
Name [friendly name] 1 Sonoff_Steckdose_1

AP1 SSID (RSSI) XXXXXXX (100%)
Hostname Sonoff_Steckdose_1-3860.local
IP-Adresse 192.168.178.24
Gateway 192.168.178.1
Subnetzmaske 255.255.255.0
DNS-Server 192.168.178.1
MAC-Adresse DC:4F:22:08:4F:14

MQTT Host 192.168.178.6
MQTT Port 1883
MQTT client &
Fallback-Topic Sonoff_Steckdose_1
MQTT-Benutzer DVES_USER
MQTT topic Sonoff_Steckdose_1
MQTT group topic sonoffs
MQTT full topic cmnd/Sonoff_Steckdose_1/cmnd/

Emulation keine
mDNS-Ermittlung aktiviert
mDNS-Bekanntmachung Web-Server

ESP Chip ID 544532
Flash Chip ID 0x14405E
Realer Flash Speicher 1024kB
Ges. Flash Speicher 1024kB
Ben. Flash Speicher 494kB
Verf. Flash Speicher 508kB
Freier Arbeitsspeicher 17kB


SONOFF-KONSOLE-FEHLERMELDUNG
00:00:00 Projekt sonoff Sonoff_Steckdose_1 (Topic Sonoff_Steckdose_1, Fallback Sonoff_Steckdose_1, GroupTopic sonoffs) Version 6.3.0.5(sonoff)-2_3_0
00:00:00 WIF: verbinden mit AP1 XXXXXX in Modus 11N wie Sonoff_Steckdose_1-3860...
00:00:06 WIF: verbunden
00:00:06 DNS: initialisiert
00:00:06 HTP: Web-Server aktiv bei Sonoff_Steckdose_1-3860.local mit IP-Adresse 192.168.178.24
18:56:30 MQT: Verbindungsversuch...
18:56:45 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.6:1883, rc -4. Wiederversuch in 10 s
18:56:56 MQT: Verbindungsversuch...
18:57:11 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.6:1883, rc -4. Wiederversuch in 10 s-
-----------
so geht's endlos weiter ....
-----------

hexenmeister

Das Problem dürfte nicht un fhem liegen, dennoch würde ich dringend ein Update anraten. Stand von 2014 ist einfach viel zu alt.
Wie ich das sehe, muss du schauen, warum tasmota keine Verbindung zum mqtt Server aufbauen kann. Ich habe bis jetzt nichts von Inkompatibelitäten diesbezüglich gehört. Ist tasmota Version aktuell?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rasti

Zitat von: hexenmeister am 17 November 2018, 20:49:52
Das Problem dürfte nicht un fhem liegen, dennoch würde ich dringend ein Update anraten. Stand von 2014 ist einfach viel zu alt.
Wie ich das sehe, muss du schauen, warum tasmota keine Verbindung zum mqtt Server aufbauen kann. Ich habe bis jetzt nichts von Inkompatibelitäten diesbezüglich gehört. Ist tasmota Version aktuell?

naja FHEM ist Mitte 2016 nur die 2 Module sind älter.....

Tasmota ist aktuell Version 6.3.0.5

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rasti

Hallo,

ich habe heute mal einen anderen Raspberry Pi (auch andere IP) genommen, Mosquitto installiert
und da hat sich die blöde Steckdose sofort klaglos mit verbunden.

Dann umgestellt, auf den Pi mit der IP wo FHEM drauf läuft und es kommt keine mqtt Verbindung zustande.

Frage war natürlich, was ist nun an den Mosquitto-Installationen unterschiedlich ?

Nichtfunktionierende Version auf dem FHEM-Pi 192.168.178.6


Dazu habe ich erstmal per sudo apt-get remove mosquitto das Programm entfernt und
mit  sudo apt-get install mosquitto mosquitto-clients neu installiert.
Auch sudo cpan install Net::MQTT:Simple und  sudo cpan install Net::MQTT:Constants wurde gemacht.

Trotzdem erscheint hier eine alte Mosquitto-Version :

pi@raspberrypi ~ $ mosquitto
1542573777: mosquitto version 0.15 (build date 2018-04-01 16:26:21+0000) starting
1542573778: Opening ipv4 listen socket on port 1883.
1542573778: Opening ipv6 listen socket on port 1883.
1542573778: Warning: Address family not supported by protocol
^C1542573789: mosquitto version 0.15 terminating
pi@raspberrypi ~ $
[code]
[/code]

Funktionierende Version auf einem dedizierten Pi 192.168.178.33

pi@raspberrypi:~ $ mosquitto
1542572607: mosquitto version 1.4.10 (build date Wed, 17 Oct 2018 19:03:03 +0200) starting
1542572607: Using default config.
1542572607: Opening ipv4 listen socket on port 1883.
1542572607: Error: Address already in use


Warum bekomme ich die neue Version mit obigen Befehlen nicht auf meinem FHEM-Pi installiert ?
Ich vermute mal, das scheitert an meinen mangelhaften Linux-Kenntnissen...aber vielleicht kann mir da jemand helfen ?

Viele Grüße

Ralf






hexenmeister

#5
Ich vermute, deine Linux Distribution ist einfach zu alt. Dort in den apt sources ist nur die alte mosquitto Version eingetragen. Möglicherweise kannst du eine neuere Version finden und installieren. Kann sein, dass das an den Abhängigkeiten scheitert. Möglicherweise klappt es den mosquitto selbst zu compilieren, oder aber auch nicht.
Ich kann mich jetzt erinnern, vor Jahren gab es eine Problemversion und ich hatte irgendwo einen Ersatz bekommen. Aber ob das noch zu finden ist...
Ich wünsche würde einfach alles neu auf einem aktuellen Linux installieren.

EDIT: Korrektur der Autokorrektur
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rasti

#6
Ja zu alt ist wohl richtig, mein fhem läuft noch auf einem alten Raspi mit grosser SD-Karte und Wheezy.

Trotzdem hilft dein Hinweis schonmal einen Schritt weiter. Mir war nicht klar, wie das mit der apt-sources Liste
geht und dass nun in meiner alten Wheezy-Version nicht die neueste Software hinterlegt wird.

Also doch ein Mosquitto-Problem. Ärgerlich, dass mqtt.fx drauf zugreifen kann und Tasmota nicht.
Hier noch jemand mit demselben Problem : https://github.com/arendst/Sonoff-Tasmota/issues/3474

Habe hier eine Anleitung gefunden, wie man die aktuelle Mosquitto-Version auf Wheezy oder Jessie installieren kann.

https://www.instructables.com/id/Installing-MQTT-BrokerMosquitto-on-Raspberry-Pi/

Problem : Die Datei http://repo.mosquitto.org/debian/mosquitto-wheezy.list fehlt im Verzeichnis  http://repo.mosquitto.org/debian/

Vorschläge (außer zu alt und neu aufsetzen) ?





Beta-User

Statt mosquitto die mqtt2-Lösung nehmen, also einen mqtt2_Server definieren.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

Zitat von: Beta-User am 19 November 2018, 06:48:27
Statt mosquitto die mqtt2-Lösung nehmen, also einen mqtt2_Server definieren.
Wenn man nur eine Handvoll MQTT-Clients hat, kann das eine gute Lösung sein.
Unabhängig davon sollte man sich dennoch bewusst sein, dass man irgendwann trotztdem von Problemen erreicht wird, die durch einen veralteten Stand verursacht sind.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

johndoe

Hallo zusammen,

ich habe genau das gleiche Problem, dass die Steckdose sich mit RC4 nicht verbinden kann, wobei FHEM auf dem neuesten Stand ist aber auch auf einer ziemlich alten Pi-Installation läuft:
https://forum.fhem.de/index.php/topic,93061.0.html

Leider konnte da keiner so wirklich weiterhelfen. Hier scheint man ja schon einen Schritt weiter zu sein mit der mosquitto-Installation.

Ich wäre auch mich mqtt2 zufrieden, habe aber noch nicht verstanden, wie genau das dann aufzusetzen ist. Bisherige mosquitto-Installation (die ja auch auf 1883 läuft) wieder deinstallieren?

Beta-User

Gebe dir recht, eigentlich sollte man eher (auch) zu einer Aktualisierung des OS raten.
Allerdings ist der Umzug eines MQTT2-fhem auch einfacher.
Für Gelegenheits-Admins mit wenigen Devices wie hier daher m.E. zu empfehlen, erst Mqtt2 einzurichten und dann die Aktualisierung des OS anzugehen.

Wenn mosquitto eh nicht richtig läuft, kann man es auch gleich deinstallieren, ansonsten geht auch beides parallel, nur eben auf unterschiedlichen ports. Ggf. erst mal tauschen oder mosquitto deaktivieren.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

Ich verstehe bis jetzt nicht, wo das einfacher sein soll, aber da alle das sagen, glaube ich das einfach ;D
(Ja, ich weiß, es gibt da 'autocreate', ich halte diese jedoch bei MQTT für ziemlich kontraproduktiv, da bei einer vorhandenen sauberen Planung des Topic-Baums (was Voraussetzung für problemlosen Betrieb des MQTT-Netzwerkes ist), die autocreate mehr stört als Hilfe bietet).
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Beta-User

Schon klar, dass eine saubere mosquitto-Installation immer noch in die Kategorie "einfach" gehört...
autocreate ist zwar auch eine Sache, die für den Gelegenheitsnutzer ohne größere Pläne hilfreich sein mag, aber darum ging es gar nicht: Zum einen benötigt man mosquitto und muß den konfigurieren, also "die sch.. Konsole" benutzen (für den typischen Redmond-GUI Nutzer schon eine Art Großgefahrenlage), dann braucht man noch diverse Perl-Module und muß das Zusammenspiel der Software-Komponenten verstehen.

Meine Erfahrung mit vielen "normalen" Usern hier ist die, dass das schon schwierig genug ist, wenn man das z.B. für MQTT2-Server und allowed braucht, (obwohl das in der commandref zu MQTT2_SERVER steht).
(OT: Dass das immer noch die Frage sein sollte, ob es nicht besser wäre, die user zu zwingen, diese ganzen Mechanismen zu verstehen, ist eine andere ;) . Aber da habe ich auch noch keine mich selbst befriedigende Anwort gefunden, daher begnüge ich mich für's erste damit zu erläutern, wie man einen Teil dieser Hürden umgehen kann...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

In Default-Variante muss mosquitto nicht konfiguriert werden. Das reicht auch für die meisten.

Was Perl-Module angeht, würde ich heute auch für die meisten Fälle mosquitto mit MQTT2_CLIENT empfehlen. Da muss man nichts mehr installieren.

ZitatDass das immer noch die Frage sein sollte, ob es nicht besser wäre, die user zu zwingen, diese ganzen Mechanismen zu verstehen, ist eine andere ;)
Die Antwort ist ja ;D
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Beta-User

Zitat von: hexenmeister am 19 November 2018, 12:58:00
Was Perl-Module angeht, würde ich heute auch für die meisten Fälle mosquitto mit MQTT2_CLIENT empfehlen. Da muss man nichts mehr installieren.
Sehe ich ähnlich und würde das für "größere" Installationen auch so empfehlen.

Eine -client-Beispiel steht seit gestern im wiki bei den Praxisbeispielen ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files