Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
garfield2412
Beiträge: 31
Registriert: 17.11.2017, 00:43

Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Beitrag von garfield2412 » 26.06.2021, 13:18

Hi zusammen,

hab folgende Konstellation eingerichtet:
Tasmota als Shutter - angebunden über CuxD - Type "Blind" --> geht astrein, hoch, runter, stopp (überBLIND|CMD_SHORT einen HTTP Aufruf)

Code: Alles auswählen

/usr/bin/curl -s http://shelly-markise/cm~3fcmnd~3dShutterClose
Jetzt möchte ich noch, dass mir der Shelly mit Tasmota den aktuellen Level zurückmeldet und in die HM schreibt.
Das geht auch weinfandfrei mit folgender Rule auf dem Tasmota Device:

Code: Alles auswählen

Rule1 on SHUTTER1#Position do WebSend [192.168.4.24:8181] /cuxd.exe?ret=dom.GetObject('CUxD.CUX4000003:2.LEVEL').State(%value%) endon
ABER: leider liefert Tasmota einen ganzzahligen Wert (bspw, 60) zurück und nicht wie von der HM im State erwartet 0.60.
Das führt dazu, dass die Rollo-Anzeige in der Web Oberfläche plötzlich Kilometerlang wird ;-)

Jemand eine idee wie man eine Division durch 100 under Multiplikation mit 0.01 hinbekommt?

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Beitrag von MichaelN » 26.06.2021, 14:44

Wie wäre es mit dieser Änderung :

Code: Alles auswählen

... .State(%value%*0.01)
Keine Ahnung ob das * übertragen wird
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
uwe111
Beiträge: 4805
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Beitrag von uwe111 » 26.06.2021, 16:44

garfield2412 hat geschrieben:
26.06.2021, 13:18
ABER: leider liefert Tasmota einen ganzzahligen Wert (bspw, 60) zurück und nicht wie von der HM im State erwartet 0.60.
Mit dem richtigen CUxD Gerät und dem richtigen Gerätedatenpunkt sollte das kein Problem sein.

Da die Kommunikation zu Tasmota-Aktoren über OS-Befehle und nicht über die serielle Schnittstelle erfolgt, solltest Du dafür das CUxD (28) System.Exec Gerät nutzen.
In der Gerätekonfiguration trägst Du bei MAX_VAL dann 100 ein.

Für die Rückmeldung solltest Du (das war auch bei Deinem Befehl falsch), den SET_STATE Datenpunkt verwenden. Wenn Du den LEVEL Datenpunkt beschreibst, wird der eingetragene OS-Befehl nämlich erneut ausgeführt. Bei SET_STATE passiert das nicht!
Um den LEVEL auf einen Wert zwischen 0 und 100 zu setzen, musst Du ihn in der Tasmota-Rule mit einem vorgestellten Minus übergeben.

Also dann z.B. so (mit CUxD (28) System.Exec Gerät):

Code: Alles auswählen

Rule1 on SHUTTER1#Position do WebSend [192.168.4.24:8181] /cuxd.exe?ret=dom.GetObject('CUxD.CUX2800003:2.SET_STATE').State(-%value%) endon
Mit Deinem CUxD (40) Gerät sollte es mit Multiplikation so funktionieren (die Reihenfolge ist wichtig!):

Code: Alles auswählen

Rule1 on SHUTTER1#Position do WebSend [192.168.4.24:8181] /cuxd.exe?ret=dom.GetObject('CUxD.CUX4000003:2.SET_STATE').State(0.01*%value%) endon
Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

garfield2412
Beiträge: 31
Registriert: 17.11.2017, 00:43

Re: Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Beitrag von garfield2412 » 27.06.2021, 10:08

MichaelN hat geschrieben:
26.06.2021, 14:44
Wie wäre es mit dieser Änderung :

Code: Alles auswählen

... .State(%value%*0.01)
Keine Ahnung ob das * übertragen wird
dt geht nicht ;-) das *0,01 wird abgeschnitten

garfield2412
Beiträge: 31
Registriert: 17.11.2017, 00:43

Re: Hilfestellung Status % Rolladenaktor (Blind) mit Tasmota

Beitrag von garfield2412 » 27.06.2021, 10:15

Hallo Uwe!
Top!
Vielen Dank das klappt!

Code: Alles auswählen

<datapoint name="CUxD.CUX4000003:2.LEVEL" type="LEVEL" ise_id="33679" value="0.710000" valuetype="4" valueunit="100%" timestamp="1624781616" operations="7"/>
das "problem mit dm erneuten verfahren nach dem Set befehl hatte ich auch schon identifiziert, wollte mich aber später drum kümmern - SUPER! jetzt ist es 2 in 1 gelößt!

Danke nochmal an alle!

Antworten

Zurück zu „CUxD“