FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: fireball am 29 Mai 2024, 20:48:27

Titel: Frage zu setFn in ReadingsProxy + Alexa hombridgeMapping für einen Rollladen
Beitrag von: fireball am 29 Mai 2024, 20:48:27
Hi Gemeinde,

ich hänge grad an folgendem Problem.
Ich habe einen Hub für meine Rollläden und kenne die URLs für das Schalten dieser.
Dafür habe ich eine HTTPMOD Modul angelegt und kann mit der Übergabe von zwei Parametern den Rollladen schalten.
Sämtliche Informationen zu einem Rollladen zieh ich mir mit dem Modul JSONMOD, weil das einfacher ist, als mit HTTPMOD.

Ich führe diese Informationen nun in einem ReadingsProxy, der auf das HTTPMOD zeigt zusammen und erzeuge mir so ein RollladenDevice.

Internals:
   DEF        WiserHub
   DEVICE     WiserHub
   FUUID      65c3e4cc-f33f-0804-a8e2-9f71a565a8438a6c
   NAME       Jalousie_EG_BUERO_O
   NOTIFYDEV  global,WiserHub
   NR         701
   NTFY_ORDER 50-Jalousie_EG_BUERO_O
   READING    state
   STATE      0
   TYPE       readingsProxy
   eventCount 4
   CONTENT:
     WiserHub   1
   READINGS:
     2024-05-29 18:05:54   CurrentLift     0
     2024-05-29 18:05:54   DeviceNumber    3
     2024-05-29 18:05:54   LiftMovement    Opening
     2024-05-29 18:05:54   Name            Büro Fenster Ost
     2024-05-29 18:05:54   lastCmd         Stop
     2024-05-29 18:05:54   state           Stop 3
Attributes:
   alexaName  jalousie
   devStateIcon 100:fts_shutter_10 1\d.*:fts_shutter_90 2\d.*:fts_shutter_80 3\d.*:fts_shutter_70 4\d.*:fts_shutter_60 5\d.*:fts_shutter_50 6\d.*:fts_shutter_40 7\d.*:fts_shutter_30 8\d.*:fts_shutter_20 9\d.*:fts_shutter_10 \d.*:fts_shutter_100
   genericDeviceType blind
   homebridgeMapping clear CurrentPosition=CurrentLift, TargetPosition=position::position,minValue=0,maxValue=100,minStep=1
   room       WISER
   setFn      {my $DevNum=ReadingsVal("Jalousie_EG_BUERO_O","DeviceNumber",0); my $Percentage = 50;
    if($CMD eq "Auf") {
      $Percentage = 100;
      fhem("set WiserHub Auf $DevNum,$Percentage");
    }
    if($CMD eq "Zu") {
      $Percentage = 0;
      fhem("set WiserHub Zu $DevNum,$Percentage");
    }
    if($CMD eq "Position") {
      $Percentage = 0;
      fhem("set WiserHub Postion $DevNum,$Percentage");
    }
    if($CMD eq "Stop") {
      fhem("set WiserHub Stop $DevNum")
    }
    fhem("set WiserHub2Data reread")
}
   setList    Auf Zu Stop Position
   stateFormat CurrentLift
   userReadings DeviceNumber {(split ',',ReadingsVal("WiserHub2Data","Shutter_3_id",0))[0]}, Name {(split ',',ReadingsVal("WiserHub2Data","Shutter_3_id",0))[1]}, CurrentLift {(split ',',ReadingsVal("WiserHub2Data","Shutter_3_id",0))[2]}, LiftMovement {(split ',',ReadingsVal("WiserHub2Data","Shutter_3_id",0))[3]}
   verbose    5
   webCmd     Auf:Zu:Stop

Ich habe WebCommand und setMethoden um im ReadingsProxy einen Rollladen zu öffnen, zu schließen und zu stoppen.
Dafür habe ich eine setFn geschrieben, die diese Eigenschaften in 100 und 0 für auf auf und zu übersetzt.
Stop geht auch, dass ist dann im HTTPMOD aber eine andere URL.

Jetzt würde ich gern noch die Option "Position" einführen.

1. Frage, wie kann ich aus dem set Jalousie_EG_BUERO_O Position XXX  => XXX in meiner setFn in die Variable $Percentage übernehmen?
Ich habe es mit $EVTPART0 versucht, aber da meckert FHEM immer...

2. Frage, ich würde gern dieses Device in Alexa einbinden. Alexa findet das Gerät auch als blind, aber wenn ich Alexa anspreche, dann sagt sie immer, sie kennt die Optionen nicht.
Ich wollte gern einfach ein homebridgeMapping einsetzten und weiß auch das ich CurrentPosition=CurrentLift und TargetPosition brauch, aber bei Target gibts soviele Optionen... und ich finde grad kein richtiges Bsp um die Werte richtig zu setzen.

Ich denke ich brauch hier minValue=0,maxValue=100,minStep=1 und wo schreib ich das Target rein?! Das müsste ja jetzt wieder an das set Gerät Position Wert?!

Früher habe ich einfach bei Alexa das verbose auf 5 gesetzt, geschaut was alexa sendet und dann die Werte geschrieben, aber da kommt ja grad nix an...

Wäre also sehr erfreut, wenn ich Hilfe für diese zwei Denkanstöße bekommen könnte.
Danke
VG
René