MQTT2_DEVICE Beispiel aus der commandref funktioniert so nicht

Begonnen von abc2006, 16 Oktober 2018, 17:32:19

Vorheriges Thema - Nächstes Thema

abc2006

Hi,
ich hab gerade versucht, mit hilfe der commandref eine sonoff/tasmota/obi-Steckdose zu schalten. (Es geht jetzt).

Dabei hatte ich bis gerade das Problem, dass nur toggle funktioniert hat, on und off jeweils nicht.
Nachdem ich den mqtt.fx installiert und die Nachrichten mitgelesen habe, konnte ich den Fehler identifizieren:

In der commandref steht:


attr dev setList\
    on tasmota/sonoff/cmnd/Power1 on\
    off tasmota/sonoff/cmnd/Power1 off


Also hatte ich im Attribut "setList" angegeben:

on cmnd/sonoff/power on\
off cmnd/sonoff/power off\
toggle cmnd/sonoff/power toggle


Nun hat FHEM den Parameter "on\" an die Dose gesendet, den diese natürlich nicht versteht.
Kaum hatte ich es geändert auf

on cmnd/sonoff/power on
off cmnd/sonoff/power off
toggle cmnd/sonoff/power toggle


-> gehts.

Kann es sein, dass die Angaben in der commandref aus der fhem.cfg stammen (deren editierung ich mir seit editConfig 0 mühsam abgewöhnt habe)?

Falls dem so ist, fände ich es sinnvoll, für eine Best Practice zu entscheiden und die Beispiele in der commandref entsprechend anzupassen. (Dabei könnte ich durchaus unterstützen).

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

ZitatAlso hatte ich im Attribut "setList" angegeben:[...]
Ich gebe zu, dass das fuer Anfaenger verwirrend ist, ist aber trotzdem korrekt.Die Backslash (\) Variante funktioniert in fhem.cfg, in Raw definition, oder auf der Kommandozeile.


abc2006

Zitat von: rudolfkoenig am 16 Oktober 2018, 18:45:14
Ich gebe zu, dass das fuer Anfaenger verwirrend ist, ist aber trotzdem korrekt.Die Backslash (\) Variante funktioniert in fhem.cfg, in Raw definition, oder auf der Kommandozeile.

Die Kommandos

define dev MQTT2_DEVICE <enter>
attr dev setList\     on tasmota/sonoff/cmnd/Power1 on\     off tasmota/sonoff/cmnd/Power1 off


ergeben die Meldung

dev: unknown attribute setList\. Type 'attr dev ?' for a detailed list.

Wenn der Befehl funktioniert (was ich dir glaube), was mache ich dann falsch?

Auch wenn ich auf das Attribut setList klicke, und in das Fenster
on tasmota/sonoff/cmnd/Power1 on\     off tasmota/sonoff/cmnd/Power1 off
eintrage, wird laut mqtt.fx ein "on\" gesendet, den das Endgerät nicht versteht ...
Wo ist hier mein Denkfehler?

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

ZitatWenn der Befehl funktioniert (was ich dir glaube), was mache ich dann falsch?
Du entfernst nach belieben irgendwelche Zeichen, diesmal waren es die Newlines.
Im vorherigen Fall meinte ich mit Kommandozeile die Eingabe ueber die telnet Schnittstelle.

Das Trennzeichen fuer setList und readingList in MQTT2_DEVICE ist Newline. In der Doku steht dazu:
ZitatMultiple tuples can be specified, each of them separated by newline, the newline does not have to be entered in the FHEMWEB frontend.
Es gibt die "urspruengliche" Syntax, wo man ein Newline mit \ schuetzen muss, damit die bisherige Zeile nicht ausgefuehrt wird. Das ist die uebliche Syntax in jedem mir bekannten Shell.
Das Schuetzten der Zeilende ist in den mehrzeiligen Editoren (fuer set/attr/DEF) in FHEMWEB nicht notwendig, weil man da ja auch keine kompletten Befehle eingibt, nur einen Teil davon.