FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: michael1966 am 11 Februar 2020, 19:55:15

Titel: ESP8266 MQTT
Beitrag von: michael1966 am 11 Februar 2020, 19:55:15
Hallo allerseits,

habe einen D1 Mini mit einer LED-Steuerungs-Software auf Basis von FastLED geflasht.
(Ursprüngliches Projekt: https://github.com/jasoncoon/esp8266-fastled-webserver)

Funktioniert gut, hat auch ein Web-Interface zur Steuerung, allerdings kein MQTT.
Den Sketch habe ich also um eine MQTT-Schnittstelle erweitert (mittels PubSubClient) zum Steuern der Lichtszenarien, Helligkeit, Speed, usw.

Mittels Mosquitto kann ich das Teil damit dann auch cool steuern, wie z.B.

mosquitto_pub -d -t /home/data -m "off"
mosquitto_pub -d -t /home/data -m "sinelon"
mosquitto_pub -d -t /home/data -m "water"
mosquitto_pub -d -t /home/data -m "brightness 016"
mosquitto_pub -d -t /home/data -m "speed 010"

Funktioniert gut.

Aber wie binde ich das jetzt in Fhem ein?
Habe natürlich den MQTT Server in der Arduino-Software (von ursprünglich dem Mosquitto, wo es funktioniert und ich den ESP steuern kann) auf meinen Fhem-Mqtt2_Server umgebogen, aber autocreate in Fhem findet nicht mal das Device.

Wie kann ich jetzt das Teil von Fhem aus einbinden/ansprechen? MQTT kann es (mosquitto_pub schaltet einwandfrei)


Gruß

Michl
Titel: Antw:ESP8266 MQTT
Beitrag von: rudolfkoenig am 11 Februar 2020, 20:34:02
Sieht man was bei "attr mqtt2_server verbose 5" im FHEM-Log?
Ja: FHEM-Konfigurationsproblem (autocreate, etc).
Nein: Arduino-Konfig oder Verbindungsproblem.
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 11 Februar 2020, 21:24:42
schreibt ins log:

2020.02.11 21:22:09 5: in:  PINGREQ: (192)(0)
2020.02.11 21:22:09 4:   myBroker_192.168.66.47_59580 ESP8266Client PINGREQ
2020.02.11 21:22:09 5: out: PINGRESP: (208)(0)
2020.02.11 21:22:24 5: in:  PINGREQ: (192)(0)
2020.02.11 21:22:24 4:   myBroker_192.168.66.47_59580 ESP8266Client PINGREQ
2020.02.11 21:22:24 5: out: PINGRESP: (208)(0)
2020.02.11 21:22:39 5: in:  PINGREQ: (192)(0)
2020.02.11 21:22:39 4:   myBroker_192.168.66.47_59580 ESP8266Client PINGREQ
2020.02.11 21:22:39 5: out: PINGRESP: (208)(0)


Titel: Antw:ESP8266 MQTT
Beitrag von: rudolfkoenig am 11 Februar 2020, 22:22:54
autocreate braucht ein publish vom Geraet.
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 12 Februar 2020, 13:10:52
Danke, damit wurde das Device gefunden und angelegt.

Zumindest kann ich jetzt mittels
set myBroker publish /D1MINI1/command speed 016
schon mal Befehle hin schicken (/home/data habe ich im Sketch umbenannt auf /D1MINI1/command)

Jetzt muss ich dann wohl mit setList, devStateIcon und webCmd weiter machen, wenn ich das Device über die Web-Oberfläche schön haben möchte, oder (attrTemplate finde ich kein passendes)?


Gruß

Michl
Titel: Antw:ESP8266 MQTT
Beitrag von: rudolfkoenig am 12 Februar 2020, 13:22:14
Richtig. attrTemplate kann als Inspiration dienen.
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 12 Februar 2020, 13:37:28
Oh Gott, ich scheitere schon am ein/ausschalter...

Hab das so gemacht:
setList on /D1MINI1/command on off /D1MINI1/command off
setStateList on off
webCmd on:off

und dachte, das müsste mir ja dann so etwas auslösen wie das hier, was ja funktioniert:
set myBroker publish /D1MINI1/command on
set myBroker publish /D1MINI1/command off


Funktioniert natürlich nicht, habe eine gelbe Glühbirne mit rotem Ausrufezeichen, wenn ich auf on klicke.
Wenn ich auf off klicke:

Unknown argument off, choose one of on attrTemplate:?,General_Info,MQTT2_CLIENT_general_bridge,tasmota_basic,tasmota_basic_state_power1,shelly1,eBus_daemon_splitter,zigbee2mqtt_bridge,wled_controller,go_eCharger,esp_milight_hub_bridge,esp_milight_hub_remote_events_only,OpenMQTTGateway_MCU,wallpanel_app


Titel: Antw:ESP8266 MQTT
Beitrag von: rudolfkoenig am 12 Februar 2020, 13:48:48
Die Befehle im setList sind per Newline zu trennen.
Im grossen FHEMWEB DetailAnsicht-setList-Textfenster gibt man Folgendes ein:
on /D1MINI1/command on
off /D1MINI1/command off
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 12 Februar 2020, 14:00:31
Nochmal danke! Schalten geht jetzt tatsächlich, aber in der Glühbirne ist immer noch das rote Ausrufezeichen.
Bei den Internals steht bei STATE set_on, kann es daran liegen? Und wenn ja, wie kann ich das beheben?


Gruß

Michl
Titel: Antw:ESP8266 MQTT
Beitrag von: Beta-User am 12 Februar 2020, 14:02:35
Indem du deiner Hardware sagst, sie soll bitte rückmelden, dass geschaltet wurde => Sketch anpassen...

(Oder auf den Komfort verzichten und so tun, als würde das immer ankommen => setStateList löschen)
Titel: Antw:ESP8266 MQTT
Beitrag von: rudolfkoenig am 12 Februar 2020, 14:05:04
Du hast das explizit bestellt mit "setStateList on off"

Das ist dann sinnvoll, wenn die Geraete nach Schalten on oder off so zurueckmelden, so dass diese Werte im STATE landen.
Dann kann man mit dem Zustand set_on sehen, wenn die Rueckmeldung ausgeblieben ist.
Also entweder setStateList entfernen, oder per stateFormat/jsonMap/userReadings die Rueckmeldung als on/off nach STATE befoerdern.
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 12 Februar 2020, 14:32:34
Habs im Sketch eingebaut (publish state), gut jetzt.
Titel: Antw:ESP8266 MQTT
Beitrag von: michael1966 am 12 Februar 2020, 16:34:49
Jetzt noch Slider für Helligkeit und Dropdown für die verschiedenen Effekte angelegt.
Funktioniert super, danke Fhem und danke Euch für die Unterstützung!


Gruß

Michl