Publish aus AT-Befehl

Begonnen von Pancake, 12 Oktober 2022, 20:31:56

Vorheriges Thema - Nächstes Thema

Pancake

Abend,
folgendes Szenario:
Es soll ein Shellyplug S ein Tasmotagerät einschalten.
Der Shelly bleibt 5 min an, nach einen kurzem booten (5 Sekunden) und verbinden mit dem WLAN soll ein Kommando an das Tasmotagerät "gepublished" werden.

Das Tasmotagerät kann separat über Button gesteuert werden mit: off:noArg cmnd/stefan/shutterposition 0
                                                                                                            on:noArg cmnd/stefan/shutterposition 100
was auch funktioniert.

Der Shelly kann auch über Button gesteuert werden.

Der Shelly wird über einen AT-Befehl an sämtlichen Tagen der Woche um 19:29 eingeschaltet, dann erfolgt ein sleep von 5000ms danach soll der Befehl an das Tasmotagerät gesendet werden.
DEF
*19:29:00 { if($wday == 0 ||$wday == 1 || $wday == 2 || $wday == 3 ||  $wday == 4 || $wday == 5||$wday == 6) { fhem("set Shelly_KuecheRolloN on-for-timer 300;;sleep 5000;;set cmnd/stefan/shutterposition 0") }}

Der fett markierte Teil wird nicht gesendet.

In der Tasmota Webobfläche in der Console löst der Befehl  cmnd/stefan/shutterposition 0 die gewünschte Funktionalität aus.

Jemand eine Idee wie aus dem DEF korrekt "gepublished" wird?

MfG









Otto123

Hi,

Zitatset hierfehlteinGerät publish cmnd/stefan/shutterposition 0

Da fehlt der MQTT Server und der Befehl publish - zumindest wenn der IO ein MQTT2 Device ist.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pancake

Hallo,
der Server ( MQTT2_Server) ist in fhem implantiert.

Weitere Versuche:

set KuecheRolloN publish cmnd/stefan/shutterposition 0"
publish KuecheRolloN cmnd/stefan/shutterposition 0"
;set publish KuecheRolloN cmnd/stefan/shutterposition 0"
brachten noch keinen Erfolg.

Otto123

und brachte das Fehler  :o

Dein MQTT2_SERVER heißt KuecheRolloN  ???
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Hier riecht es schon leicht nach Popcorn...

"help MQTT2_SERVER" bringt vielleicht etwas mehr Licht in diese Sache?

Ansonsten sieht das ziemlich verbogen aus, und der oberflächliche Mitleser fragt sich, warum da nicht einfach sowas wie "set <rollo1> pct 40; set <rollo2> open" steht...
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

Pancake

Dein MQTT2_SERVER heißt KuecheRolloN  ???

Nein.

Der  MQTT Server heißt MQTT2_Server

Das Tasmotagerät soll aus fhem mit dem MQTT Kommando cmnd/stefan/shutterposition 0  (unten)  bzw. cmnd/stefan/shutterposition 100 (oben) gesteuert werden.

Aus der Tasmota console und mit MQTT.fx funktioniert es auch, bloß aus fhem kommt bei dem Tasmotagerät nichts an.

Beta-User

Schau mal ins Wiki - Stichwort "Praxisbeispiele". Da findest du hoffentlich Ansatzpunkte dafür, wie du die setList von deinem MQTT2_DEVICE für Tasmota (und für den Shelly) konfigurieren könntest, dass die sich verhalten wie "normale Rollladenaktoren"  ;) .

PS: "stefan" ist mAn. nicht wirklich optimal als Topic-Bestandteil für einen Rollladenaktor... Was machst du, wenn auch das Licht im selben Zimmer per Tasmota-MQTT geschaltet werden soll?
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

Zitat... dann erfolgt ein sleep von 5000ms ...
FHEM sleep arbeitet mit sec, und nicht ms.
Die Ausloesezeit kann man mit "fhemdebug timerList" pruefen.

Otto123

Zitat von: Pancake am 12 Oktober 2022, 22:38:39
Dein MQTT2_SERVER heißt KuecheRolloN  ???

Nein.

Der  MQTT Server heißt MQTT2_Server

Warum reden wir so aneinander vorbei? :'( um einen FHEM Befehl zu bilden
set MQTT2_Server publish cmnd/stefan/shutterposition 0

In welcher Oberfläche arbeitest Du eigentlich mit FHEM?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pancake

Mein Fehler:
sleep
[EN DE]
Die verzögerung kann

in Sekunden (Millisekunden genau, da man Nachkommastellen spezifizieren kann).


PS: "stefan" ist mAn. nicht wirklich optimal als Topic-Bestandteil für einen Rollladenaktor... Was machst du, wenn auch das Licht im selben Zimmer per Tasmota-MQTT geschaltet werden soll?
[/quote] da hast du recht, das ist Murks

Der Aufbau sieht so aus:

Schukosteckdose -> Shelly Plug S -> Steckernetzteil -> Tasmota Shutter (besteht aus Schrittmotor / Planetengetriebe / WEMOS D1 / A4988).
                                 
                                Shelly wird mit AT zeitgesteuert,  nach ca. 5 sec. ist der Tasmota shutter online, danach sollte der Befehl zum hoch- / runterfahren 
                                des  Rollos kommen -> Shelly schaltet alles aus.



Pancake

In welcher Oberfläche arbeitest Du eigentlich mit FHEM?

Über Webbrowser FF

Beta-User

a) Kannst du dich mal mit den Formatierungsmöglichkeiten für deine Beiträge befassen? Das ist in der Nähe von unlesbar...

b) Die Konstruktion bedeutet mAn. nicht, dass man aus dem "Tasmota"-Rollladenaktor nicht doch vorab einen FHEM-Rollladenaktor konfigurieren könnte/sollte.
Das würde die Befehle durchaus vereinfachen.

c) Diese "Kette" ist m.E. auch nicht optimal. Vielleicht wäre es möglich, den "hinteren Teil" (Motor+Treiber) hinter einen Transistor zu hängen und dann einfach von dem einen ESP her wegzuschalten, wenn grade keine Fahrt anliegt?
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

Otto123

Zitat von: Pancake am 12 Oktober 2022, 23:23:36
In welcher Oberfläche arbeitest Du eigentlich mit FHEM?

Über Webbrowser FF
Und funktioniert der Befehl aus Beitrag #8 wenn Du ihn so in die Befehlszeile von FHEM einwirfst?
Du kannst alternativ die Seite von deinem MQTT2_SERVER öffnen, interaktiv den Befehl publish aus der Klappliste auswählen und nur den hinteren Teil in die dort vorhandene Box stecken. Dann vorne auf set drücken. ::)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pancake

Hallo,
Zitat
b) Die Konstruktion bedeutet mAn. nicht, dass man aus dem "Tasmota"-Rollladenaktor nicht doch vorab einen FHEM-Rollladenaktor konfigurieren könnte/sollte. Das würde die Befehle durchaus vereinfachen.

Die Rolladensteuerung aus fhem wäre natürlich gut. Hier fehlt mir aber das "richtige" Template um einen Schrittmotor mit einem A4988 zu steuern.

Zitat
c) Diese "Kette" ist m.E. auch nicht optimal. Vielleicht wäre es möglich, den "hinteren Teil" (Motor+Treiber) hinter einen Transistor zu hängen und dann einfach von dem einen ESP her wegzuschalten, wenn grade keine Fahrt anliegt?

Ein Schrittmotor läßt sich nicht einfach mit einem Transistor schalten. Der Schrittmotor benötigt einen Treiber wie z.B. A4988, DRV8825, TMC2208.
Hier ist die Hardware beschrieben:
https://tasmota.github.io/docs/Blinds-and-Shutters/#using-stepper-motors

Zitat
Und funktioniert der Befehl aus Beitrag #8 wenn Du ihn so in die Befehlszeile von FHEM einwirfst?
Du kannst alternativ die Seite von deinem MQTT2_SERVER öffnen, interaktiv den Befehl publish aus der Klappliste auswählen und nur den hinteren Teil in die dort vorhandene Box stecken. Dann vorne auf set drücken.

Ja, der Befehl aus dem Beitrag # set MQTT2_Server publish cmnd/stefan/shutterposition 0 funktioniert :).

Wenn versucht wird den Teil  set MQTT2_Server publish cmnd/stefan/shutterposition 0

hier einzufügen gibt es eine Fehlermeldung.

*17:57:00 { if($wday == 0 ||$wday == 1 || $wday == 2 || $wday == 3 ||  $wday == 4 || $wday == 5||$wday == 6) { fhem("set Shelly_KuecheRolloN on-for-timer 300;;sleep 5;;set cmnd/stefan/shutterposition 0") }}

Otto123

#14
logisch, weil Du wieder nur einen Teil des Befehls einfügst!!!
set MQTT2_Server publish cmnd/stefan/shutterposition 0
versus
set cmnd/stefan/shutterposition 0
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz