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é