Starkvind Luftreiniger an DeconZ

Ausgehend von diesem Thread

habe ich heute meinen Startkvind in der Variante Beistelltisch bekommen. Zusammengebaut und dann ins ZigBee Netzwerk rein. Es sollte ja laut den Informationen die mir vorlagen funktionieren.
Sollte. Im DeconZ Netzwerk sehe ich den Reiniger
image
Wie man sieht, wird er auch richtig erkannt
image
Ich kann ihn sogar steuern.


Wenn ich hier den Fan umstelle, tut sich auch was. Das geht schon mal.
Auch die Werte aus dem Luftqualitätssensor kommen an.
image

Wo er nicht ankommt, ist in der Phoscon App und somit auch nicht in der API und in weiterer Folge nicht in IPS (Ich verwende das DeconZ Modul).
Hats von euch wer geschafft?
Wie gesagt, ich hab auf der DeconZ Seite auf GitHub gelesen, dass er seit Ende vorigem Jahr funktioniert. Bin etwas ratlos. Im Zweifel muss ich mich direkt an das DekonZ Forum wenden.

Ich bin schon etwas weiter gekommen. Interessanterweise ist der Lufit in der DeconZ GUI sichtbar. Auch alle Werte wie Luftqualität oder auch die Ventilatoreinstellungen werden korrekt empfangen und sind auch änderbar. Ich kann also in der GUI (in der Netzwerk GUI, nicht in der Phoscon App - Webversion) Einstellungen ändern. Kommt auch alles korrect an.
Was aber fehlt ist die sog. DDF. Ohne der Beschreibung gibt es nichts für die API. Das Gerät ist quasi da, aber nicht verwendbar.
Ich hab mich dann selber an der Erstellung einer DDF versucht, bin aber gescheitert. Im DeconZ Forum wurde dann eine DDF gepostet, die ich probiert hab. Die funktioniert noch weniger als meine.

Soweit ich es in einem anderen Beitrag gelesen hat, sind sie sich noch nicht einig, welches Gerät sie draus machen sollen. Sensor oder Lampe. Lampe deswegen, weil der Lufti schaltbar ist. In weiterer Folge dürfte man sich aber auf Sensor einigen. Eher nur, damit die API was bekommt.
Alles in allem eher entäuschend, aber was soll ich machen.
Der Filter selbst funktioniert einwandfrei.

@Silberstreifen
Hallo Silberstreifen. Ich hätte da was für dich. Ich finde es schaut ok aus, aber in IPS kommt bis auf die Erreichbarkeit nichts an.

{
    "config": {
        "fanmode": null,
        "ledindication": true,
        "locked": false,
        "on": true,
        "reachable": true
    },
    "etag": "55405e016638f5734c611a18567ae22c",
    "lastannounced": null,
    "lastseen": "2022-03-15T14:06Z",
    "manufacturername": "IKEA of Sweden",
    "modelid": "STARKVIND Air purifier table",
    "name": "AirQuality 151",
    "state": {
        "airquality": "unhealthy",
        "airqualityppb": 1000,
        "lastupdated": "2022-03-15T14:06:33.580",
        "speed": 5
    },
    "swversion": "1.0.033",
    "type": "ZHAAirQuality",
    "uniqueid": "50:32:5f:ff:fe:b4:db:4f-01-fc7d"
}

Kannst du damit was anfangen? Ich brauch keine Profile oder ähnliches. Ich möchte nur schauen, ob was kommt und ob ich was senden kann.
Die ID in IPS ist jene: 50:32:5f:ff:fe:b4:db:4f-01-fc7d
Aus dem Debug

15.03.2022, 15:25:12 |             Received | {"Buffer":"{\"config\":{\"fanmode\":null,\"ledindication\":true,\"locked\":false,\"on\":true,\"reachable\":true},\"etag\":\"55405e016638f5734c611a18567ae22c\",\"lastannounced\":null,\"lastseen\":\"2022-03-15T14:06Z\",\"manufacturername\":\"IKEA of Sweden\",\"modelid\":\"STARKVIND Air purifier table\",\"name\":\"AirQuality 151\",\"state\":{\"airquality\":\"unhealthy\",\"airqualityppb\":1000,\"lastupdated\":\"2022-03-15T14:06:33.580\",\"speed\":5},\"swversion\":\"1.0.033\",\"type\":\"ZHAAirQuality\",\"uniqueid\":\"50:32:5f:ff:fe:b4:db:4f-01-fc7d\",\"r\":\"sensors\"}"}

1 „Gefällt mir“

jepp, da kann ich etwas draus machen.

"airquality": "unhealthy" => welche Zustände gibt es noch?
"airqualityppb": 1000 => kein Problem
"speed": 5 => ist das aus DeCONZ schaltbar?

Wird hier auch noch etwas von gebraucht? Ist da irgendetwas aus DeCONZ schaltbar?

"config": {
        "fanmode": null,
        "ledindication": true,
        "locked": false,
        "on": true,
        "reachable": true
    },

Grüße
Jürgen

airquality: 65,excellent,220,good,660,moderate,5000,unhealthy,65535,out of scale
Hier wird in DeconZ ein numtostr gemacht. In unserem Fall würde ich ein Stringprofil mit den Texten und entsprechender Übersetzung machen

airqualityppb: nur ein numerischer Wert

speed: Könnte die aktuelle Stellung des Wählrades sein. Er hat 5 Stufen. Jedenfalls kommt vom Lufti ein Wert um den Faktor 10 größer an. Das wird in DeconZ „korrigiert“. Kann man mal so lassen und beobachten und eventuell ein Profil anlegen. Das müsste ich noch herausfinden

fanmode: DAS Killerkriterium schlechthin. Damit kannst den Lüfter ein und ausschalten. Der fanmode empfängt folgende Strings: off/auto/low/medium/high (denke das erklärt sich von selbst). Das hab ich mit z2d_setconfig auch schon geschafft und er reagiert darauf.

ledindication: ist theoretisch schaltbar, aber der Lufti reagiert nicht darauf. Hab ich auch so im Forum gefunden. Diese Information. Eventuell kommt das später mit einer anderen Firmware für den Lufti

locked: wie beim ledindication. Damit sollte man die „Kindersicherung“ aktivieren können. Ist in DeconZ auch schaltbar, tut aber nichts

on: Ja, keine Ahnung. Ich denke das ist einfach so dabei. Zu Testzwecken könnte man es mal mitnehmen und schauen was er macht. fanmode=off ist aus und alle anderen fanmodi sind on.

Ich hänge auch mal mein DDF an, vielleicht kanns ja wer brauchen

{
  "schema": "devcap1.schema.json",
  "manufacturername": "$MF_IKEA",
  "modelid": "STARKVIND Air purifier table",
  "product": "STARKVIND Air purifier table",
  "sleeper": false,
  "status": "Gold",
  "path": "/devices/starkvind_air_purifier_table_neu.json",
  "subdevices": [
    {
      "type": "$TYPE_AIR_QUALITY_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0xfc7d"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/fanmode",
          "parse": {
            "at": "0x0000",
            "cl": "0x0202",
            "ep": 255,
            "eval": "Item.val = Attr.val",
            "fn": "zcl",
            "mf": "0x117d"
          }
        },
        {
          "name": "config/ledindication",
          "parse": {
            "at": "0x0003",
            "cl": "0xfc7d",
            "ep": 255,
            "eval": "Item.val = !Attr.val",
            "fn": "zcl",
            "mf": "0x117c"
          }
        },
        {
          "name": "config/locked",
          "parse": {
            "at": "0x0005",
            "cl": "0xfc7d",
            "ep": 255,
            "eval": "Item.val = Attr.val",
            "fn": "zcl",
            "mf": "0x117c"
          }
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/airquality"
        },
        {
          "name": "state/airqualityppb",
          "parse": {
            "at": "0x0004",
            "cl": "0xfc7d",
            "ep": 255,
            "eval": "Item.val = Attr.val == 65535 ? undefined : Attr.val",
            "fn": "zcl",
            "mf": "0x117c"
          }
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/speed",
          "parse": {
            "at": "0x0007",
            "cl": "0xfc7d",
            "ep": 255,
            "eval": "Item.val = Attr.val / 10",
            "fn": "zcl",
            "mf": "0x117c"
          }
        }
      ]
    }
  ]
}

Vielen Dank
Helmut

das hört sich doch alles schon ganz gut an. Noch Fragen dazu:

  • fanmode kommt keine Rückmeldung/ist immer null?
  • speed hat nichts mit fanmode zu tun? (1->off…5->high) Das könnte ich ansonsten korrigieren. :wink:

Grüße
Jürgen

Doch, da steht der aktuelle Wert drinnen. Man könnte den Modus auch mit dem Wählrad am Gerät ändern.

Es ist so wie ich dachte. Wenn der fanmod=low ist, dann ist speed=1. Bei fanmod=medium, speed=3. fanmod=high, speed 5. Diese Werte entsprechen den 5 Stufen des Wählrades. Es sollte also noch die Werte 2 und 4 geben, die manuell angesteuert werden können.
Es gibt in der Beschreibung noch ein „Target Mode“. Das kann zwischen 0, 10-50 als Wert aufnehmen und kann in DeconZ auch geändert werden und wird vom Gerät auch richtig quitiert. Das entspricht dann der entsprechenden Einstellung des Drehrades am Gerät.

Guten Morgen

Ich hab mir das gestern noch genauer angeschaut. Die „airqualitiy“ werden wir streichen. Zumindest ich. Dieser Wert kommt nicht direkt vom Gerät, sondern wird von DeconZ ermittelt. Der echte Wert ist „airqualityppb“. Als Richtwert kann man das hernehmen

  • 65 excellent
  • 220 good
  • 660 moderate
  • 5000 unhealthy
  • 65535 out of scale (dieser Wert kommt auch, wenn der Lufti aus ist)

image
So sieht das dort aus

Edit:
Ich hab noch eine Erkenntnis gewonnen.
Alle Werte aus dem 0xFC7D Cluster (Air Purifier Control) können nicht geändert werden. Es gibt dort ein Attribut „Target Mode“. Der wäre einfach perfekt. Der kann die Werte 0 (aus), 1 (auto), 10-50 (für die manuelle Einstellung des Ventilators) annehmen. In der DeconZ GUI funktioniert das auch. Ich hab in mein DDF ein Attribut eingefügt. Kommt auch in IPS an und ich kann es auch ändern. Es wird aber nicht übergeben, es tut sich also nichts. Im Debug konnte ich folgendes finden.

"Could not set attribute","type":608"

Leider ist phoscon.de down aber ich konnte einen Eintrag auf GitHub finden. Dürfte ein Problem in der Phoscon GUI sein. Sollte das behoben werden, dann wäre das wesentlich besser. Das ist wahrscheinlich auch der Grund, warum der Ersteller meines Ausgangs DDF’s es mit dem Fanmode gemacht hat. Da funktioniert es.

so, ich habe jetzt mal

  • fanmode
  • speed
  • airqualityppb

aufgenommen. Ist das richtig und alles?
Was jetzt wie geschaltet werden soll, was genau funktioniert und was nicht, hast du mich leider abgehängt. Bitte mal ganz direkt beantworten, was wie geschaltet werden soll (ohne wünschenswert und geht nicht und…) :dizzy_face: Dann baue ich das gerne ein.
Grüße
Jürgen

Sorry für die Verwirrung :slight_smile:

Kann geschalten werden: off, auto, low, medium, high (genau diese Strings)

Sind read/only Werte

Ich bin mit einem anderen in Kontakt bezüglich der anderen Werte. Sobald ich da näheres weiß, gebe ich ganz genau bescheid :wink:

ok, baue ich ein.

damit warte ich dann noch. Stelle aber den ersten Teil schonmal als Beta online.

Auf jeden Fall. Die Kommunikation ist nicht so einfach, da dazwischen offenbar einige Zeitzonen liegen :wink: