FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: onkel-tobi am 13 April 2018, 17:25:19

Titel: [Gelöst] Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 13 April 2018, 17:25:19
Hallo zusammen,

ich habe eine Sonoff Bridge mit Tasmota geflasht und diese ist nun auch per WLAN erreichbar.

Weiterhin habe ich Mosquitto installiert und in FHEM ein device angelegt:

Internals:
   CFGFN     
   DEF        127.0.01:1883
   DeviceName 127.0.01:1883
   FD         79
   NAME       Mosquitto
   NOTIFYDEV  global
   NR         19751
   NTFY_ORDER 50-Mosquitto
   PARTIAL   
   STATE      opened
   TYPE       MQTT
   buf       
   msgid      1
   ping_received 1
   timeout    60
   READINGS:
     2018-04-13 17:14:05   connection      active
     2018-04-11 18:04:27   state           opened
   messages:
Attributes:


Auf dem RPi (auf dem Mosquitto läuft) debugge ich gerade und bekomme folgende Meldungen:

Client mosqsub|12258-fhem.frit sending CONNECT
Client mosqsub|12258-fhem.frit received CONNACK
Client mosqsub|12258-fhem.frit sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0)
Client mosqsub|12258-fhem.frit received SUBACK
Subscribed (mid: 1): 0
Client mosqsub|12258-fhem.frit received PUBLISH (d0, q0, r1, m0, 'tele/sonoff/LW                                     T', ... (7 bytes))
tele/sonoff/LWT Offline
Client mosqsub|12258-fhem.frit received PUBLISH (d0, q0, r1, m0, '/Smarthome/Bue                                     ro/sonoffrf/tele/LWT', ... (6 bytes))
/Smarthome/Buero/sonoffrf/tele/LWT Online
Client mosqsub|12258-fhem.frit received PUBLISH (d0, q0, r0, m0, '/Smarthome/Buero/sonoffrf/stat/RESULT', ... (21 bytes))
/Smarthome/Buero/sonoffrf/stat/RESULT {"Command":"Unknown"}

Die letzte Zeile stammt nun von dem Versuch mittels "RfKey1 2" einen entsprechenden Befehl zu lernen.

In der Tasmota config habe ich MQTT konfiguriert, die Verbindung scheint ja auch zu stehen. Aber irgendwas scheine ich noch falsch zu machen?

Habt ihr eine Idee?

Danke & Gruß,
Tobi
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 13 April 2018, 18:35:13
Hallo Tobi,

bis hier sieht alles gut aus, aber wenn Du die Readings Deiner Sonoff-Brigde sehen willst, musst Du ein Device
fuer diese anlegen. Du kennst doch sicher den Beitrag im Wiki:
https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung#MQTT_und_Sonoff-Tasmota>Wiki

Wenn Du das Attribut "autoSubscribeReadings" setzt, brauchst Du Dich nicht einmal um die subscribeReading
zu kuemmern.

Gruss Helmut


Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 13 April 2018, 20:11:38
Hi Helmut,

vielen Dank für Deine Antwort.
Ja den kenne ich, aber müsste ich nicht auf der Bridge selber schon mal was sehen, wenn ich anlerne?

Habe nun auch mal das Device angelegt. Aber  es ändert nichts daran, dass die sonoff bridge scheinbar nichts empfängt und eben auch der Befehl zum anlernen manuellen Lernen nicht klappt...

Gruß,
Tobi
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 14 April 2018, 19:41:13
Zitat von: onkel-tobi link=topic=86952.msg793974#msg793974 date=1523643098
müsste ich nicht auf der Bridge selber schon mal was sehen, wenn ich anlerne?

Hallo Tobi,

Du meinst Deine Sonoff Bridge? Nein, denn der Verkehr geht nicht direkt zwischen fhem und dem Geraet hin
und her, sonden wird vom Broker (mosquitto) vermittelt. Das funktioniert mit "PUBLISH" und "SUBSCRIBE".

Zitat von: onkel-tobi am 13 April 2018, 20:11:38
Habe nun auch mal das Device angelegt. Aber  es ändert nichts daran, dass die sonoff bridge scheinbar nichts empfängt und eben auch der Befehl zum anlernen manuellen Lernen nicht klappt

Wie gesagt, am einfachsten geht das mit dem "autoSubscribeReadings". In Deinem Fall, vorausgesetzt Dein Topic auf
der Bridge heisst "sonoffrf", muesste das so gehen:

attr <devicename> autoSubscribeReadings /+/+/sonoffrf/+
oder
attr <devicename> autoSubscribeReadings /+/+/sonoffrf/+/+

Das "+" steht jeweils als Wildcard fuer eine Ebene. Sobald vom Geraet ein "PUBLISH" kommt der dem Ausdruck
entspricht, wird das Reading dem fhem-Device hinzugefuegt. Leider funktioniert die Wildcard fuer beliebige Ebenen
"#" nicht. Bitte versuche das auch nicht. Danach hilft entweder ein restart von fhem oder das Loeschen und Neuanlegen
des MQTT Devices und des MQTT_DEVICE Clients. Ich weiss, die Benennung ist etwas eigenwillig.

Sollte das nicht helfen, schicke bitte ein Listing Deines MQTT_DEVICE und die MQTT Konfiguration Deiner Sonoff Bridge.

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 15 April 2018, 14:42:55
Zitat von: helmut am 14 April 2018, 19:41:13
Leider funktioniert die Wildcard fuer beliebige Ebenen "#" nicht.

Update: Die Wildcard funktioniert schon, wenn man sich an die Konventionen haelt.
Ich war so blauaeugig zu glauben, das # koenne auch am Anfang stehen. Inzwischen habe ich die richtigen Stellen gefunden.
https://mosquitto.org/man/mqtt-7.html
Dort steht
# can be used as a wildcard for all remaining levels of hierarchy. This means that it must be the final character in a subscription.
Noch genauer hier
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718107

Wenn der Maintainer hier mitliest, habe ich die Bitte im Modul sicherzustellen, dass das "#" nur am Ende der SUBSCRIBE-Strings
stehen kann, denn die Folgen sind echt uebel. Der Broker antwortet auf das SUBSCRIBE unmittelbar mit
1523793862: Invalid subscription string from 127.0.0.1, disconnecting.
1523793862: Socket error on client fhem-bath45, disconnecting.

und die fhem MQTT Instanz versucht im Sekundentakt unverdrossen die Verbindung neu herzustellen
1523793863: New connection from 127.0.0.1 on port 1883.
1523793863: New client connected from 127.0.0.1 as fhem-bath45 (c1, k60, u'admin').


Es hilft auch nicht, das autoSubscribeReadings Attribut wieder gerade zu ziehen. Das bekommt das MQTT Device offensichtlich nicht mit.

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 22 April 2018, 09:15:52
Hi Helmut,

vielem Dank für deinen Input. Hätte zumindest erwartet, dass die entsprechenden commands auf der bridge funktionieren. Aber nun gut, jetzt wurde ich eines besserem belehrt. Habe also nun die subscribe config durchgeführt und  nun nochmal getestet. Ich finde allerdings nichts, wenn ich jetzt testweise mal was schalte.
Hier das list des Gerätes:
Internals:
   DEF        attr Sonoff_Switch IODev Mosquitto attr Sonoff_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON attr Sonoff_Switch icon hue_filled_br30 attr Sonoff_Switch publishSet ON OFF cmnd/TestSwitch/POWER attr Sonoff_Switch room MQTT attr Sonoff_Switch subscribeReading_Licht stat/Sonoff_Switch/POWER attr Sonoff_Switch subscribeReading_Sensor tele/Sonoff_Switch/SENSOR attr Sonoff_Switch subscribeReading_Status stat/Sonoff_Switch/STATUS attr Sonoff_Switch webCmd ON:OFF
   IODev      Mosquitto
   NAME       Sonoff_Switch
   NOTIFYDEV  attr Sonoff_Switch IODev Mosquitto attr Sonoff_Switch devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON attr Sonoff_Switch icon hue_filled_br30 attr Sonoff_Switch publishSet ON OFF cmnd/TestSwitch/POWER attr Sonoff_Switch room MQTT attr Sonoff_Switch subscribeReading_Licht stat/Sonoff_Switch/POWER attr Sonoff_Switch subscribeReading_Sensor tele/Sonoff_Switch/SENSOR attr Sonoff_Switch subscribeReading_Status stat/Sonoff_Switch/STATUS attr Sonoff_Switch webCmd ON:OFF
   NR         1214
   STATE      subscription acknowledged
   TYPE       MQTT_DEVICE
   READINGS:
     2018-04-22 09:05:20   transmission-state subscription acknowledged
   message_ids:
   sets:
   subscribe:
     /+/+/sonoffrf/+
   subscribeExpr:
     ^\/[^/]+\/[^/]+\/sonoffrf\/([^/]+)$
Attributes:
   IODev      Mosquitto
   autoSubscribeReadings /+/+/sonoffrf/+
   stateFormat transmission-state

Bei der Bridge ist MQTT folgendermaßen konfiguriert:
Topic: sonoffrf
Full Topic: /Smarthome/Buero/%topic%/%prefix%

Gruß,
Tobias
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 23 April 2018, 15:20:22
Zitat von: onkel-tobi am 22 April 2018, 09:15:52
   subscribe:
     /+/+/sonoffrf/+

Hallo Tobias,

drei Probleme:

1) das subscribe haette um ein "/+" ergaenzt werden muessen (wegen /Smarthome/Buero/sonoffrf/stat/RESULT), aber ...
Zitat von: onkel-tobi am 22 April 2018, 09:15:52
Full Topic: /Smarthome/Buero/%topic%/%prefix%
2) ... obwohl zulaessig, kommt das MQTT_DEVICE mit der Reihenfolge "%topic%/%prefix%" nicht klar.
3) Auch der fuehrende Schraegstrich ist erlaubt, ("A leading or trailing '/' creates a distinct Topic Name or Topic Filter"), aber
    mit diesem akzeptiert das MQTT_DEVICE-Modul die PUBLISH-Nachrichten nicht.

Also aendere bitte das Topic in der Sonoff Bridge auf "Smarthome/Buero/%prefix%/%topic%" und das autoSubscribeReadings auf
"+/+/+/sonoffrf/+".

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 29 April 2018, 17:24:28
Hi Helmut,

vielen Dank. Habe das nun noch mal angepasst. Bekomme nun die Log Wingräge der Bridge, aber wenn ich mit der 433 Mhz Fernbedienung was schalte, empfange ich weiterhin nichts...

Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 01 Mai 2018, 14:22:50
Zitat von: onkel-tobi am 29 April 2018, 17:24:28
vielen Dank. Habe das nun noch mal angepasst. Bekomme nun die Log Wingräge der Bridge, aber wenn ich mit der 433 Mhz Fernbedienung was schalte, empfange ich weiterhin nichts...

Hallo Tobi,

leider kann ich dazu konkret nichts sagen, weil ich selbst keine Bridge habe.
Deswegen habe ich Deine ersten Beitraege bezueglich des Anlernens auch nicht richtig verstanden.
Bekommst Du denn in der Konsole der Bridge mit "RfCode" ueberhaupt etwas zu sehen?

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 01 Mai 2018, 18:04:49
Hi Helmut,

sorry dann habe ich mich da vielleicht auch nicht eindeutig genug geäußert.
Rfcode gibt keinen gewcheiten output. Ich gehe also davon aus, dass da entweder was kaputt ist oder beim Flashen estwas nicht sauber funktioniert hat.

Bin aber die nächsten 2 Wochen nicht im Lande.

Gruß,
Tobi
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 10 Mai 2018, 14:11:45
Hallo Tobi,

in Deinem ersten Post hast Du geschrieben:

Zitat von: onkel-tobi am 13 April 2018, 17:25:19

/Smarthome/Buero/sonoffrf/stat/RESULT {"Command":"Unknown"}

Die letzte Zeile stammt nun von dem Versuch mittels "RfKey1 2" einen entsprechenden Befehl zu lernen.

Das bekomme ich auch zu sehen - es sei denn, ich konfiguriere zum Beispiel meinen Sonoff Basic als Bridge. Dann wird ein "RfKey1 2" mit
MQT: stat/sonoff_bas_01/RESULT = {"RfKey1":"Start learning"}
quittiert, obwohl da mangels Masse nicht funktionieren kann.

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 11 Mai 2018, 13:01:48
Zitat von: helmut am 10 Mai 2018, 14:11:45
Das bekomme ich auch zu sehen - es sei denn, ich konfiguriere zum Beispiel meinen Sonoff Basic als Bridge.

Hi Helmut,

aufgrund deines letzten Posts und der Tatsache, dass ich gerade meinen Sohn zum Mittagsschlaf gelegt habe und somit ein paar Minuten für mich habe, hab ich mich noch mal an das Thema gewagt.

Was soll ich schreiben? Du lagst goldrichtig, denn ich hatte bei irgendeinem verzweifelten Test dann mal das RF Modul statt die Bridge gewählt. Nun auf die Bridge umgestellt und remote getestet, es scheint zu funktionieren :)

Werde ich dann nach dem Urlaub mal genauer unter die Lupe nehmen und wenn alles läuft das dann entsprechend umstellen.

Besten Dank noch mal!

Gruß,
Tobi


Gesendet von iPad mit Tapatalk
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 13 Mai 2018, 20:44:00
Hallo Tobi,

sehr gut, dann melde Dich bitte nach dem Urlaub und einen schoenen solchen Dir und Deiner Familie.

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 02 Juni 2018, 22:02:22
Hi Helmut,

so habe nun endlich mal etwas Zeit mir das weiter anzuschauen.
Die Bridge als solches ist nun deutlich geschwätziger.

Betätige ich testweise eine Taste auf der Fernbedienung bekomme ich bspw.:

{"RfReceived":{"Sync":11030,"Low":370,"High":1050,"Data":"00155F","RfKey":"None"}}


Irgendwie sehe ich aber den Wald vor lauter Bäumen nicht. Es gibt ja nun verschiedenste Möglichkeiten, die Keys zu verschicken, aber ich schaffe es wohl noch nicht. (zumindest nicht via FHEM, via Bridge console kann ich keys senden)

Habe mal folgendes Device angelegt:
define eg_ku_led MQTT_DEVICE
attr eg_ku_led IODev Mosquitto
attr eg_ku_led alexaName LED Küche
attr eg_ku_led alias LED Küche
attr eg_ku_led devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON Offline:rc_BLUE:OFF
attr eg_ku_led event-on-change-reading state
attr eg_ku_led eventMap 00155F:on 00145F:off
attr eg_ku_led publishSet on off toggleon off toggle /Smarthome/EG/cmnd/sonoffrf/RfCode
attr eg_ku_led room Licht,MQTT,Wohnzimmer
attr eg_ku_led stateFormat {ReadingsVal($name,"presence","") eq "Offline" ? "Offline" : ReadingsVal($name,"state","")}
attr eg_ku_led webCmd on off toggle


Da tut sich aber dann nichts.

Gruß,
Tobi

Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: helmut am 03 Juni 2018, 16:57:04
Hallo Tobi,

wie gesagt, ich kann an dieser Stelle nur noch theoretisieren. Du hast Dich an dem Beitrag in "Robins Blog"
https://blog.moneybag.de/fhem-sonoff-rf-bridge-433-mhz-mit-tasmota-ein-erfahrungsbericht/
orientiert? Danach sollte es eigentlich klappen.

Was genau hast Du denn versucht und was passiert dann? Siehst Du mit dem mosquitto_sub und/oder der
Bridge-Konsole Reaktionen, beziehungsweise Fehlermeldungen oder passiert da rein gar nichts? In letzterem
Fall solltest Du den verbosity-Level Deines eg_ku_led-Devices auf 5 setzen und im fhem-Log nachsehen.

Gruss Helmut
Titel: Antw:Sonoff Bridge lernt nicht / Anfängerfehler?
Beitrag von: onkel-tobi am 10 August 2018, 11:26:53
Hallo zusammen,

also ich habe mich jetzt noch mal an das Thema rangesetzt und bin schlussendlich nach einem Update der sonoff FW (auf 6.1.1) zum Erfolg gekommen.

@Helmut: Danke noch mal für Deine Hilfe!

Gruß,
Tobi