SOLVED: Sonoff 10A, MQTT and openHAB

really looking forward to the solution of this problem of yours as i am facing the same problem. let me know

Well congrats :tada:

Now define a very simple testing item:

Switch MQTT_Test "Testing..." { mqtt="<[broker:testing/mqtt/topic:state:default]" }

With this one in place you should be able to do a first tst. Use your mqtt.fx to publish the Message “ON” to Topic “testing/mqtt/topic”. Check the log once again!

How did we do this just now? See: http://docs.openhab.org/addons/bindings/mqtt1/readme.html#item-configuration-for-inbound-messages

If everything works as expected you can now start to define specific items for your Sonoff. Once again, don’t bother with Espeasy. Go Tasmota:

1 Like

MQTT-Test works!

2017-09-05 21:44:11.170 [ItemStateChangedEvent     ] - MQTT_Test changed from OFF to ON

There you go :wink: That should be it. Let me know when further issues arise. Good luck!

i still cant control my sonoff :smiley: thats my big issue :wink:

thats my MQTT Setting on the SONOFF
58

Thats the CONTROLLER-PUBLISH Field:

/%sysname%/%tskname%/%valname%

EDIT

I published on MQTT.fx
PUBLISH: “/Sonoff_1/GPIO/12”
MESSAGE: “0”
20

i can see the change on the ESPEasy
06

thats a little success, am i right ?

how do i make a working home.item out of it ?
thanks THOM!! <3

Hey @RiotMode,

you were honestly not the first one to have starting trouble with the MQTT Binding in the beginning of their openHAB adventure. I’ve taken what I’ve written above over into a Tutorial. Could you please check if anything is missing or not clear to a newcomer?

1 Like

for sure - i will do now :wink:

I just would add (e.g MQTT.fx or something similiar )

1. Connect with the standalone client to the broker. (e.g MQTT.fx or something similiar )
6. Use the standalone MQTT client from before (e.g MQTT.fx )
Hit Send/>Publish<

That’s something you should be able to find out easily by yourself, with the links I’ve posted above… :-/

Probably something like

Switch LivingRoom_Light "Living Room Light" <light> (LR,gLight)
    { mqtt=">[broker:/Sonoff_1/GPIO/12:command:*:default],
            <[broker:/Sonoff_1/GPIO/12:state:default]" }

The first line defines the Item with all it’s details, the second defined the outbound MQTT topic, the third the inbound. Because you didn’t show all needed details I’m not sure if the topic for the latter is correct.

Honest, I can’t stretch it enough :smiley:

1 Like

Man, i love you <3 - thanks for your help! really appreciate it.

i changed it that way:

Switch Sonoff6 "MQTT-Test" <light> (LR,gLight)
    { mqtt=">[broker:/Sonoff_1/GPIO/12:command:ON:1],
            >[broker:/Sonoff_1/GPIO/12:command:OFF:0],
            <[broker:/Sonoff_1/GPIO/12:state:ON:1],
            <[broker:/Sonoff_1/GPIO/12:state:OFF:0]" }

03

seems to work <3

ITS WORKING :blush: :blush: :blush:

2 Likes

Wonderful! :wink:

2 Likes

got stuck here!! site says refuse to connect

Then your mqtt.cfg is wrong… Compare with the settings used in the standalone client.

# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with an ID you choose.
#

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
broker.url=tcp://192.160.0.14:1883

# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a random default is generated.
#broker.clientId=openhabian

# Optional. True or false. If set to true, allows the use of clientId values
# up to 65535 characters long. Defaults to false.
# NOTE: clientId values longer than 23 characters may not be supported by all
# MQTT servers. Check the server documentation.
#<broker>.allowLongerClientIds=false

# Optional. User id to authenticate with the broker.
broker.user=openhabian

# Optional. Password to authenticate with the broker.
broker.pwd=password

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.
#<broker>.qos=<qos>

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.
#<broker>.retain=<retain>

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.
#<broker>.async=<async>

# Optional. Defines the last will and testament that is sent when this client goes offline
# Format: topic:message:qos:retained <br/>

what should i compare it with?

for me, the mqtt.cfg looks fine, but i am the noob in here :wink:
now:

can you send me a screenshot of the web page that you are looking at for this log. also tell me if i can see this log using ssh

for you i think its: http://192.160.0.14:9001
for me it was the ip of the raspberry ( 192.168.1.100:9001 )

okay!!
i found some problems with my cfg file. like my if is 192.168.0.14 and not 192.160.0.14. i fixed it
now it looks something like this

#
# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with an ID you choose.
#

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
broker.url=tcp://192.168.0.14:1883

# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a random default is generated.
#broker.clientId=openhabian

# Optional. True or false. If set to true, allows the use of clientId values
# up to 65535 characters long. Defaults to false.
# NOTE: clientId values longer than 23 characters may not be supported by all
# MQTT servers. Check the server documentation.
#<broker>.allowLongerClientIds=false

# Optional. User id to authenticate with the broker.
broker.user=openhabian

# Optional. Password to authenticate with the broker.
broker.pwd=password

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.
#<broker>.qos=<qos>

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.
#<broker>.retain=<retain>

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.
#<broker>.async=<async>

# Optional. Defines the last will and testament that is sent when this client goes offline

also please send a screenshot of your current working mqtt.cfg file

check your LOG! and REBOOT the device!

i tried to write i little tutorial for myself, so its partly in german, but maybe you can use it too :wink:
OpenHAB - Sonoff10A - Installation.pdf (847.3 KB)

Did you read my posting about the Tutorial? You’ll find all details, including how to view the log via SSH there:

Btw. viewing the log is a very fundamental thing when using openHAB. If you do not know how to do so, you should spend a few minutes in the documentation to learn about the basics of openHAB! http://docs.openhab.org

Good luck!

Heyho,

one little thing is not like it should - the SWITCH is sometimes on OFF - but the lamp is ON
The STATE is always correct ( Switch is on OFF, but STATE is on “1” )
Thats how i know about the Status of the Lamp.

How to make this work correctly ? - Any Ideas ?

THANKS