IKEA Inspelning Steckdose

IKEA hat eine tolle Steckdose mit Leistungsmessung auf den Markt gebracht. Die Steckdose hat ein schönes Design, verträgt laut Datenblatt 3680W / 16 A und kann über ZIGBEE eingebunden werden.
Ich hab das mit ZHA probiert - die Integration lief schnell und problemlos.

  1. Problem: die Steckdose wurde mit einer älteren Version der Firmware ausgeliefert - in dieser Version wird die Spannung mit einem Wert Faktor 10 zu niedrig angezeigt. Der Update OTA war auch nicht verfügbar.
    Lösung: Die configuration.yml um folgenden Code erweitern:
zha:
  zigpy_config:
    ota:
      ikea_provider: true

Danach wurde ein Update auf die neuste Release angeboten: 0x02040045
Damit ist das Problem mit der falschen Spannung behoben.

  1. Problem: Ab einer Leistung von 1000 W wird ein um den Faktor 10 zu niedriger Wert angezeigt.
    Selbstredend, dass der Support von IKEA bestenfalls helfen kann, wenn eine Schraube fehlt :stuck_out_tongue_winking_eye:

Zum Glück hat schon jemand in der Community das Problem erkannt und zur Korrektur ein Template erstellt:

{% set pwr = states('sensor.inspelning_1_spannung')|float * states('sensor.inspelning_1_stromstarke')|float|round(2) %} 
{% set ver = states('sensor.inspelning_1_leistung')|float %} 
{{ ver if ver>pwr else ver if pwr<1000 else min(ver*10, pwr) }}

Vorab - damit funktioniert jetzt alles einwandfrei und die Steckdose liefert mit plausible Messwerte.
Aber ich will natürlich wissen wie und warum das funktioniert.
Die Letzte Zeile Code mit 2 if und 2 else Statements unstrukturiert in einer Zeile überfordert mich etwas . :roll_eyes:
Kann mir jemand zeigen, wie der Code vernünftig strukturiert aussieht - dann kann ich den besser nachvollziehen?

Geht es um diese Zeile?

{{ ver if ver>pwr else ver if pwr<1000 else min(ver*10, pwr) }}

Wenn ver > pwr dann ver
Sonst

Wenn pwr < 1000, dann ver
sonst den kleineren Wert von beiden (ver*10, pwr)

Ich würde es aber nicht so kompliziert machen.
Es soll ja bei Werten unter 1000 den organal wert ausgeben und wenn Wert größer 1000, dann den Wert mit 1000 multiplizieren, richtig?

{% set ver = states('sensor.inspelning_1_leistung')|float(0) %} 
{{ iif(ver < 1000, ver, ver*1000) }}

Oder keine Geräte mit Leistung größer 1000 Watt anschließen. :wink:

Gruß
Osorkon

Ja, so soll das funktionieren. Im Moment hängen Waschmaschine bzw. Trockner an den Inspelning Dosen… da gehen schon mal locker mehr als 1000W durch.
Wie gesagt - mit dem Template gehts ja - nur die Struktur des Codes irritiert mich.

Mal kurz weg von der Smartmacherei …
Habt ihr neben den 16A die restlichen technischen Daten gelesen? Es gibt verschiedene elektrische Lasten und lediglich ohmsche Last hält die Ikea Büchse bis 16A/3600W aus. Bei Motorlasten sieht es schon wieder ganz anders aus - Hintergrund: Der Einschalt- bzw. Anlaufströme sind gern 10 mal so hoch wie der Nennstrom. Ikea gibt in der Anleitung max. 300W Nennleistung (=1,3A) für die Motorlast an. Ich weiß es nicht genau, bin mir aber recht sicher, dass ein WaMa Motor die Grenze erreicht, wenn nicht sogar überschreitet. Hinzu kommen die Wasserpumpe (ebenfalls Motorlast) und der Wassererhitzer. In der Summe überschreitet die Lasten bestimmt das, wofür die Elektronik darin ausgelegt ist. Bemerkbar macht sich das nicht direkt, erst dann wenn es zu spät ist …

Ich kann nur eindringlich empfehlen für WaMa und Heizgeräte Smart Plugs zu verwenden, die auf diese Lasten ausgelegt sind! Die wird idR vom Hersteller angegeben oder kann, entsprechende fachliche Kenntnisse vorausgesetzt, den technischen Daten entnommen werden.
Andernfalls muss damit gerechnet werden, dass Smart Plug und Stecker eins werden oder gar noch viel Schlimmeres