FSB12: Ermittlung der genauen Position

Begonnen von CountAlmasy, 16 November 2014, 16:45:22

Vorheriges Thema - Nächstes Thema

Bitzer

Hi,

die Anpassung des DOIF hat funktioniert (warum auch immer das vorher mal funktioniert hat), allerdings habe ich dann festgestellt dass das triggern des userReadings runtime ebenfalls nicht mehr funktioniert. Nach ein Änderung des Moduls im April muss nun ein .* hinter das reading/trigger. Damit funktioniert die Positionserkennung dann wieder wie gewohnt...

attr HSw_Arbeitszimmer userReadings runtimeB:channelB.* difference { time_str2num(ReadingsTimestamp("HSw_Arbeitszimmer", "channelB",0));; }

Viele Grüße,
Oli

karpate

#16
Hallo zusammen,

tolle Erweiterung.
Ich habe bisher testweise 2 Rollos einer Doppelwippe mit Positionserkennung umgesetzt. Das funktioniert soweit sehr gut. Ich habe aber beobachtet, das wenn ich an der Doppelwippe den Rollo bis in oberste Position fahren lasse, das diese Position vom virtuellen FHEM-Schalter nicht aktualisiert wird. Liegt es am notify des Hardwareschalters

define EnO_switch_XXXXXXX_SyncPosA notify (EnO_switch_XXXXXXX:positionA.*) setreading eg_kue_Rollo position $EVTPART1

oder muß ich an einer andere Stelle suchen?

Ergänzung: nachdem ich diese Stelle neu definiert hatte, scheint es nun zu funktionieren
define OG_AZ_Jalousien_SyncA DOIF ([OG_AZ_Jalousien:stateFSB12A] eq "opens") (setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open) \
  DOELSEIF ([OG_AZ_Jalousien:stateFSB12A] eq "closes") (setreading OG_AZ_Jalousien positionA 100, setreading OG_AZ_Jalousien stateFSB12A closed)
attr OG_AZ_Jalousien_SyncA do always
attr OG_AZ_Jalousien_SyncA wait 60:60
define OG_AZ_Jalousien_SyncB DOIF ([OG_AZ_Jalousien:stateFSB12B] eq "opens") (setreading OG_AZ_Jalousien positionB 0, setreading OG_AZ_Jalousien stateFSB12B open) \
  DOELSEIF ([OG_AZ_Jalousien:stateFSB12B] eq "closes") (setreading OG_AZ_Jalousien positionB 100, setreading OG_AZ_Jalousien stateFSB12B closed)
attr OG_AZ_Jalousien_SyncB do always
attr OG_AZ_Jalousien_SyncB wait 40:40


Allerdings wird die Position im Webfrontend die Position 0 zeitverzögert angezeigt. Kann das jemand bestätigen?

Vielen Dank für die Hilfe.

Gruß Ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

Bitzer

Hi Ingo,

die Zeitverzögerung kommt daher, dass nach einem einzigen Tastendruck ein Timer abläuft, der dann nach Ablauf (wenn die Taste kein weiteres Mal gedrückt wurde) die Position entweder auf 0 oder 100 setzt (DOIF ... wait 40:40). Die Zeit für den Timer sollte größer als die Zeit sein die der Rolladen benötigt um komplett herunter zu fahren. Wird in der Zwischenzeit ein weiters Mal auf die Taste gedrückt (und der Rollo somit mittendrin angehalten) wird die Laufzeit sofort ermittelt und die Position entsprechend berechnet.

Viele Grüße,
Oli

karpate

Hi Oli,
Danke für die Erläuterung

Gruß
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr