Rolladensteuerung mit MQTT und Wemos D1 ESP8266 funktioniert nicht

Begonnen von Ruggy, 20 März 2019, 12:32:05

Vorheriges Thema - Nächstes Thema

Ruggy

Möchte nach folgender Anleitung von GitHub meine Rollläden steuern.
Hier der Teil zu FHEM.
https://github.com/madmartin/Jarolift_MQTT/wiki/Usage-with-FHEM-&-MQTT

Soweit ich es richtig verstanden habegebe ich mit fhem einen Befehl. dieser wird per wlan an den ESP8266 geschickt. dieser gibt über den CC1101 den Befehl mit einer Frequenzen von 433 mhz weiter an die Rollläden.
Die Einstellungen werden über ein WebUI vorgenommen. Über dieses kann man auch die Rollläden anlernen.

Ich kann diese bereits durch das WebUI steuern.

Ich bekomme es nicht hin, diese über FHEM zu steuern.
Hierzu muss man MQTT nutzen. Folgendermaßen habe ich dies installiert :

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

sudo apt-get update

sudo apt-get install mosquitto mosquitto-clients

sudo service mosquitto status

sudo service mosquitto stop

sudo service mosquitto start

perl -v

sudo cpan install Net::MQTT:Simple

sudo cpan install Net::MQTT:Constants


und so in FHEM:


define myBroker MQTT 127.0.0.1:1883

define Rollo_WOH_Balkontuer MQTT_DEVICE

attr Rollo_WOH_Balkontuer devStateIcon UP:shutter_open DOWN:shutter_closed SHADE:shutter_halfopen STOP:shutter_halfopen

attr Rollo_WOH_Balkontuer publishSet UP DOWN STOP SHADE cmd/jarolift/shutter/1

attr Rollo_WOH_Balkontuer stateFormat state

attr Rollo_WOH_Balkontuer webCmd UP:DOWN:STOP:SHADE


Leider reagieren die Rollläden über FHEM nicht.
Wo liegt der Fehler?

Vielen Dank
Viele Grüße
Ruggy

Beta-User

Ohne das jarolift-Dingens genau zu kennen:

Für Einsteiger ist meistens MQTT2_SERVER+DEVICE einfacher als die mosquitto-Installation.

Hier würde ich darauf tippen, dass der ESP nicht "jarolift" heißt und irgend was anderes im topic-tree steht, da mußt du entweder wirklich MQTT2 nutzen (da sieht man das an den mit autocreate erstellten Devices) oder mal nachsehen, wie der jetzt in der Topicstruktur heißt, um das mit den bisherigen MQTT-Modulen zum Laufen zu bringen.

Allg.: nutze ein passendes Tool, um den MQTT-Verkehr zu analysieren, z.B. mosquitto_sub (Konsolentool aus mosquitto-clients, manpage dazu ansehen...)
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

Ruggy

hier ein Screenshot von einem teil des WebUI.

Hier ist etwas mir jarolift eingetragen. Ist hier etwas "passendes" dabei?

die ip Adresse müsste ich wahrscheinlich wieder ändern (hab dies versuchsweise eingetragen) . auf 127.0.0.1?

Beta-User

Bis auf die IP des Brokers scheint das zu passen, was da auf dem ESP eingetragen ist.

Die Ip muß die sein von dem Rechner, auf dem mosquitto läuft (das scheint der FHEM-Server zu sein, da intern (mosquitto<=> FHEM) localhost genutzt wird).

Und wie gesagt: Ich würde für Einsteiger in das MQTT-Thema empfehlen, statt mosquitto FHEM selbst via MQTT2_SERVER zu nutzen...
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

Ruggy

Hier eine Beschreibung bzgl. MQTT aus dem WebUI.

Demnach wäre der Name jarolift richtig?

aber woher weiß FHEM wo sich die datei jarolift befindet?

Ruggy

Die ip vom raspberry mit FHEM und mosqitto wäre die, welch derzeit im WebUi eingetragen ist.

dollte ich dies  define myBroker MQTT 127.0.0.1:1883 so lassen oder auch die ip vom raspberry 192.168.33.41 eintragen?


Werde mir MQTT2 anschauen. jedoch kenne ich mich nicht aus.
Dachte, wenn ich nacjh Anleitung vorgehen funktioniert es.

Beta-User

Wie geschrieben: jarolift scheint zutreffend zu sein.

Zitat von: Ruggy am 20 März 2019, 13:27:26
aber woher weiß FHEM wo sich die datei jarolift befindet?
Du solltest dich etwas mit dem MQTT-Protokoll befassen: Es gibt m.E. keine "datei" namens "jarolift". Es gibt innerhalb der vom MQTT-Server (früher Broker genannt) verwalteten Datenstruktur nur "topics" und "payload", wobei unter topic immer der gesamte Pfad (hier z.B. "cmd/jarolift/shutter/1" verstanden wird, die payload wäre demnach dann "UP", "DOWN", "STOP" usw., wie in der Beschreibung halt.

Schau mal mit dem genannten Tool, was du da zu sehen bekommst, dann wird es hoffentlich klarer.

PS: Bilder sind suboptimal, lieber ist mir (und vielen anderen) Text; hier wäre ein Link auf eine commandref hilfreicher...



Die MQTT-Definition in FHEM ist mit localhost ok; extern müßte auch funktionieren, ist aber hier m.E. nicht das Thema (=> laß es auf 127...).

Das mit der Anleitung sollte schon auch funktionieren. Im August 2018 gab es eben MQTT2_SERVER (fast) noch nicht, daher konnte der Autor von deiner Anleitung das nicht berücksichtigen...
Wenn du MQTT2_SERVER nutzen willst, mußt du den mosquitto aber abschalten, beides parallel auf demselben Port geht nicht.

Das ganze riecht aber nach Problemen irgendwo im Netzwerk. Was da wirklich los ist, kannst du nur sehen, wenn du den MQTT-Verkehr mitliest und auf dem Server anfragst, was bei dem angekommen ist (=>mosquitto_sub, wie bereits erwähnt).
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

Ruggy

Vielen Dank schon mal für die ausführliche Antworten.

Werde mich mal mit mosquitto_sub beschäftigen und mich dann ggf nochmal melden.

Ruggy

Hallo, hatte es damals zu laufen bekommen und hat funktioniert. Jetzt reagieren die Rollläden auf fhem nicht mehr. das device "Jarolift" hat als status "offline"

An was kann dies liegen?
Einmal war es auch si und ich konnte es durch herunterfahren vom raspberry und den ESP8266 vom strom nehmen und wieder anstecken "behoben".

bevor ich das wieder versuche möchte ich gerne wissen, ob man jetzt sehen kann, woran es hakt?

hier das damalige "einruchte, was funktionierte:


MQTT Broker einrichten:
(z.B. mit Putty auf Raspberry anmelden)

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

sudo apt-get update

sudo apt-get install mosquitto mosquitto-clients

sudo service mosquitto status

sudo service mosquitto stop

sudo service mosquitto start

perl -v

sudo cpan install Net::MQTT:Simple

sudo cpan install Net::MQTT:Constants

FHEM einrichten:

(in FHEM in die Befehlszeile eingeben)

# Modul MQTT

# ==========

define MQTT MQTT 127.0.0.1:1883

attr MQTT icon mqtt

# Modul MQTT_DEVICE

# =================

define Jarolift MQTT_DEVICE

attr Jarolift IODev MQTT

attr Jarolift icon mqtt_device

attr Jarolift subscribeReading_count stat/jarolift/devicecounter

attr Jarolift subscribeReading_state tele/jarolift/LWT

# Rolladen WohnzimmerLinks

# ==============

define Rollo_WohnzimmerLinks MQTT_DEVICE

attr Rollo_WohnzimmerLinks IODev MQTT

attr Rollo_WohnzimmerLinks eventMap UP:up STOP:stop DOWN:down LEARN:learn

attr Rollo_WohnzimmerLinks group Jarolift

attr Rollo_WohnzimmerLinks icon fts_shutter_updown

attr Rollo_WohnzimmerLinks publishSet UP STOP DOWN LEARN cmd/jarolift/shutter/2

attr Rollo_WohnzimmerLinks room Wohnzimmer

attr Rollo_WohnzimmerLinks webCmd up:stop:down:learn


Hier das List vom device Jarolift:

Internals:
   FUUID      5c926079-f33f-194f-f45c-8274d7bd94026b57
   IODev      MQTT
   NAME       Jarolift
   NR         156
   STATE      Offline
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1560952534.40129
           VALUE      Offline
   READINGS:
     2019-06-19 15:55:34   count           600
     2019-06-19 15:55:34   state           Offline
     2019-06-19 15:55:34   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     stat/jarolift/devicecounter
     tele/jarolift/LWT
   subscribeExpr:
     ^stat\/jarolift\/devicecounter$
     ^tele\/jarolift\/LWT$
   subscribeQos:
     stat/jarolift/devicecounter 0
     tele/jarolift/LWT 0
   subscribeReadings:
     stat/jarolift/devicecounter:
       cmd       
       name       count
     tele/jarolift/LWT:
       cmd       
       name       state
Attributes:
   IODev      MQTT
   icon       mqtt_device
   room       Abstellkammer
   subscribeReading_count stat/jarolift/devicecounter
   subscribeReading_state tele/jarolift/LWT


Vielen Dank
Grüße

Beta-User

"offline" bedeutet, dass das LWT funktioniert - was in dem Fall nichts anderes bedeutet, wie dass die Verbindung zwischen mosquitto und dem ESP8266 da war, aber jetzt länger weg ist. Das Problem ist also entweder die firmware, die ESP-Hardware (Stromversorgung?) oder WLAN (ich vermute letzeres).

Was nutzt du als AP? (eine fritzbox, oder...?)
Wie viele WLAN-Clients sind vorhanden (alles, nicht nur FHEM betreffend)?
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

TomLee


Ruggy

Die Kontaktprobleme kann ich mir anschauen. Evtl. verbinde ich auch direkt mit Draht.

WLAN verbindungn ist auch vorhanden (über Unifi).


Wie kann es aber dann sein, dass ich die Rolläden direkt, mittels WebUI, ansteuern kann?
Über FHEM funktionert es aber nicht.

Also müsste doch die Hardware in Ordnung sein?