ESP8266 MQTT

Begonnen von michael1966, 11 Februar 2020, 19:55:15

Vorheriges Thema - Nächstes Thema

michael1966

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
fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

rudolfkoenig

Sieht man was bei "attr mqtt2_server verbose 5" im FHEM-Log?
Ja: FHEM-Konfigurationsproblem (autocreate, etc).
Nein: Arduino-Konfig oder Verbindungsproblem.

michael1966

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)


fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

rudolfkoenig

autocreate braucht ein publish vom Geraet.

michael1966

#4
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
fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

rudolfkoenig

Richtig. attrTemplate kann als Inspiration dienen.

michael1966

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


fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

rudolfkoenig

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

michael1966

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
fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

Beta-User

#9
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)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

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.

michael1966

Habs im Sketch eingebaut (publish state), gut jetzt.
fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa

michael1966

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
fhem auf Raspberry PI3, CUL busware 868 für FS20, nanoCUL 433 für Intertechno, nanoCUL 868 für HomeMatic, DUOFernStick für Rademacher. Harmony Hub, Nanoleaf Aurora, Sprachsteuerung per EchoDot / Alexa