Liebes Forum,
ich benötige Unterstützung beim Anlegen eines passenden Mappings für Homebridge. Ich nutze zuhause noch ein paar ältere X10 Rolladensteuerungen, die zwar keinen Status senden aber noch funktionieren.
In Homebridge würde ich diese nun gerne als Rollo (blind) anzeigen und lediglich die beiden Positionen offen und geschlossen steuern (Zwischenstufen benötige ich dort nicht). Ich bekomme die Schalter zwar in Homebridge angezeigt und kann sie auch betätigen, aber der fhem-Status wird nicht ausgelesen/aktualisiert (siehe auch die Fehlermeldung unten). Beim Anlegen von homebridgeMapping und userReadings habe ich mich an diesem Listing orientiert: https://forum.fhem.de/index.php/topic,59157.msg505564.html#msg505564
Hier mein Versuch:
Internals:
BRIGHT 210
DEF lm12 A 5
FUUID 5c571a81-f33f-15bd-303c-bcf0588214d2ac77
HOUSE A
IODev X10
MODEL lm12
NAME X_Bad
NR 39
ONOFF 0
STATE geschlossen
TYPE X10
UNIT 5
READINGS:
2021-10-01 11:30:37 IODev X10
2021-10-02 19:16:33 dimmer 100
2021-10-02 19:16:33 onoff 0
2021-10-02 19:16:33 state off
internals:
interfaces dimmer
Attributes:
IODev X10
alias Bad
devStateIcon offen:fts_shutter_10 schatten:fts_shutter_20 halb:fts_shutter_50 geschlossen:fts_shutter_100
eventMap /on:offen/dimdown 50:schatten/dimdown 100:halb/off:geschlossen
genericDeviceType blind
group Rolladen
homebridgeMapping clear CurrentPosition=position,minValue=0,maxValue=100,minStep=100 TargetPosition=position,minValue=0,maxValue=100,minStep=100,cmds=0:geschlossen;;/.*/:offen
icon fts_shutter_updown
onOffDevice true
room Bad,Rolladen
sortby 06
userReadings position {(ReadingsVal($NAME,"state","offen") eq "offen")?100:0}
webCmd offen:schatten:halb:geschlossen
Damit bekomme ich jedoch folgende Fehlermeldung:
[2021-10-2 8:41:40 PM] [FHEM] X_Bad-position not a number:
[2021-10-2 8:41:40 PM] [homebridge-fhem] This plugin generated a warning from the characteristic 'Current Position': characteristic value expected valid finite number and received "undefined" (undefined). See https://git.io/JtMGR for more info.
Ich würde mich sehr über Hinweise freuen, wie ein korrektes Mapping aussehen könnte,
Benedikt
Ich habe etwas weiter recherchiert und habe mittlerweile den Verdacht, dass das X10-Modul möglicherweise keine UserReadings unterstützt. Dieses Problem wurde hier mit Blick auf ein anderes Modul diskutiert: https://forum.fhem.de/index.php/topic,106892.0.html
Wenn dem so ist, hätte jemand vielleicht einen Tipp, ob und wenn ja auf welche Weise das Modul händisch um eine solche Funktion ergänzt werden kann? Hinweise gibt es wohl hier (https://wiki.fhem.de/wiki/DevelopmentModuleAPI#readingsBeginUpdate), aber dafür fehlt mir leider die Expertise. Oder gibt es eine andere Möglichkeit?
Danke und viele Grüße,
Benedikt
Für den Fall, dass es für andere Personen aus dem Forum von Interesse ist – ich habe es nun folgendermaßen lösen können (Umweg über dummy und DOIF):
define Bad_Rollo dummy
attr Bad_Rollo devStateIcon ope.*:fts_shutter_20:close clos.*:fts_shutter_80:open
attr Bad_Rollo icon fts_shutter
attr Bad_Rollo genericDeviceType blind
attr Bad_Rollo setList open close
attr Bad_Rollo webCmd open:close
attr Bad_Rollo homebridgeMapping clear CurrentPosition=position,minValue=0,maxValue=100,minStep=100 TargetPosition=position,minValue=0,maxValue=100,minStep=100,cmds=0:close;;/.*/:open
attr Bad_Rollo userReadings position {(ReadingsVal($NAME,"state","open") eq "open")?100:0}
define di_bad DOIF ([Bad_Rollo:"open"]) (set X_Bad on) DOELSEIF ([Bad_Rollo:"close"]) (set X_Bad off)
Viele Grüße,
Benedikt
Hier mal der Versuch, das Modul betr. der Zugriffe auf die Readings (und readingFnAttributes) auf Stand zu bringen. Kann aber nur behaupten, dass es lädt...
Damit sollten zumindest trigger generiert werden (und damit auch die Infos direkt an Homebridge u.a. weitergegeben werden).
Ansonsten wäre die Frage, ob nicht ROLLO ein gutes "Zwischenmodul" wäre (wobei X10 selbst ja auch level-Kommandos zu unterstützen scheint).
Sorry, du warst sehr schnell mit dem download, da war leider noch ein kleiner Bug drin, aktualisierte Fassung anbei.
Super, vielen Dank - ich probiere es (vermutlich heute Abend) einmal aus und melde mich wieder!
Hattest du schon Gelegenheit zum Testen? Wenn alles ok wäre, könnte man den Maintainer anpingen...
Heute Abend habe ich endlich Zeit gefunden, das von dir angepasste Modul zu testen. Bislang scheint alles zu funktionieren: Das Rollo wird in Homebridge angezeigt und reagiert auch wie gewünscht (vom Gefühl her sogar flotter, als über meine dummy/DOIF-Behelfslösung).
Insofern: Vielen Dank für deine Hilfe!
Danke, hab's mal weitergegeben. Bitte melden, falls doch noch was auffällig sein sollte.
Es nutzt jetzt halt die Standardroutinen, that's all... So viel sollte es nicht ausmachen, aber es schadet (hoffentlich) auch nicht 8) .
Danke für's Weitergeben - ich melde mich, sollte mir im Nachgang noch etwas auffallen.
eingecheckt
Thx!