Seite 1 von 1

Sonoff iFAN03 in OH3

Verfasst: 1. Feb 2021 12:19
von mic905
Hallo,
ich stehe vor folgendem Probem.
Ich möchte gerne meinen iFAN03 über OpenHab steuern. Der iFan03 ist mit Tasmota geflasht.
Generell schalten lassen sich die Stufen aus Openhab3 schon. Allerdings eben nur Stufe wie folgt.
Stufe 1 an - Stufe 0 aus
Stufe 2 an - Stufe 0 aus
Stufe 3 an - Stufe 0 aus
Die zuletzt geschaltete Einstellung ist dann aktiv. Es kann aber sein das alle Schalter in OH an sind und ich nicht erkenne welche stufe hier läuft.

Ich habe eine Thing iFan01sz angelegt.
Darunter 3 Channels: Fanspeed1, Fanspeed,2 und Fanspeed3

Fanspeed1
MQTT Command Topic
cmnd/ifan03sz/Fanspeed
MQTT State Topic
stat/ifan03sz/Fanspeed
Custom On/Open Value
1
Custom Off/Closed Value
0

Wenn ich die Stufen am Sonoff iFAN03 selbst schalte bekommt das OH nicht mit das etwa geschalten wurde.

Als welchen Typ müsste man denn sowas anlegen ? Wo habe ich hier einen Fehler ?

Vielen Dank

Re: Sonoff iFAN03 in OH3

Verfasst: 1. Feb 2021 21:13
von udo1toni
Zeig doch mal bitte exakt die Topics. Ich denke, Du machst da einen Fehler...

Re: Sonoff iFAN03 in OH3

Verfasst: 3. Feb 2021 08:24
von mic905
Ich verstehe zwar gerade nicht ganz was du meinst aber ich kann dir folgenden zeigen.
Ich hoffe damit kann man was anfangen. Ansonsten bitte genauere Erklärung.
Vielen Dank

Re: Sonoff iFAN03 in OH3

Verfasst: 3. Feb 2021 12:29
von udo1toni
Ohne das Gerät selbst zu haben, gehe ich stark davon aus, dass Du keinen Switch Channel verwenden darfst, sondern einen Number Channel verwenden musst.

Vermutlich sieht der passende Code so aus:

Code: Alles auswählen

UID: mqtt:topic:ifan03
label: iFAN03
thingTypeUID: mqtt:topic
configuration: {}
channels:
  - id: fanspeed
    channelTypeUID: mqtt:number
    label: Fanspeed
    description: ""
    configuration:
      commandTopic: cmnd/ifan03sz/FanSpeed
      min: 0
      stateTopic: stat/ifan03sz/RESULT
      transformationPattern: REGEX:(.*FanSpeed.*)∩JSONPATH:$.FanSpeed
      max: 3
Das bedeutet: Du hast einen Number Channel, Minimum ist 0 und Maximum ist 3 (DeltaValue ist 1, das ist aber default, entsprechend taucht der Parameter nicht auf)
Das CommandTopic ist cmnd/ifan03sz/FanSpeed, der Wert wird direkt als Zahl gesendet. Die Antwort kommt über stat/ifan03sz/RESULT zurück, allerdings als JSON. Deshalb muss ein transformationPattern gesetzt werden. Weil RESULT alles mögliche enthalten kann, muss das Ergebnis zunächst mittels REGEX gefiltert werden. Nur wenn das Wort "FanSpeed" im Status vorkommt, wird das JSONPATH Statement ausgeführt.

Ich nutze selbst diese Verkettung nicht, kann also sein, dass die Schreibweise noch nicht stimmt. Der erste Schritt wäre aber mal, dass der Ventilator mit dem korrekten Befehl gesteuert wird, dann sehen wir weiter...

Re: Sonoff iFAN03 in OH3

Verfasst: 3. Feb 2021 13:19
von mic905
Udo du bist der Beste. Es funktioniert.
Ich habe jetzt einen Slider angelegt und kann den Ventilator damit stufenweise steuern.
Perfekt. Genau so wie ich es haben wollte.
Vielen herzlichen Dank