Dann fange ich mal gleich mit einem neuen Thema an um es hier hoffentlich abzuschließen. Ich beziehe mich auf folgendes Posting:
https://forum.fhem.de/index.php/topic,112325.msg1181641.html#msg1181641 (https://forum.fhem.de/index.php/topic,112325.msg1181641.html#msg1181641)
Wir hatten ja bereits einiges ausprobiert, inklusive heute morgen die aktuellste ASC Version v0.10.17 einspielen. Bislang ohne Erfolg.
Gruß Reinhard
Dieser Code hier wäre meine letzte Hoffnung
elsif ( grep m{^($posReading):\s\d{1,3}$}xms, @{$events} ) {
ASC_Debug( 'Notify: '
. ' ASC_Pos_Reading Event vom Rollo '
. $devname
. ' wurde erkannt '
. ' - RECEIVED EVENT: '
. Dumper $events);
EventProcessingShutters( $hash, $devname, join( ' ', @{$events} ) );
}
Es geht dabei um die Auswertung einer Rollofahrt. Hierbei wird auf das Event reagiert welches vom Reading was im Attribut ASC_Pos_Reading steht erzeugt wird. Das Value des Readings, also der Wert, muss eine ganze Zahl sein. Bei Dir scheint das das Reading pctslt zu sein.
Da steht sowas wie 0.1 oder so. Also ein punkt zwischen des Zahlen. Ich habe das eben mal bei mir getestet und das scheint das Problem zu sein. Ich schaue mal was ich da machen kann.
Ok ich habe einen Patch
Bitte gehe einmal in die Datei
lib/FHEM/Automation/ShuttersControl.pm
und dort in Zeile 518
ändere
elsif ( grep m{^($posReading):\s\d{1,3}$}xms, @{$events} ) {
in
elsif ( grep m{^($posReading):\s\d{1,3}(\.\d{1,3})?$}xms, @{$events} ) {
Danach machst Du ein neustart
Sorry für die späte Antwort, hatte gerade alles Mögliche zu deinem ersten Post ausprobiert (eventMap löschen). Das wäre für mich aber keine Option gewesen da ich damit wieder massive Probleme bekommen habe.
Mit dem Patch hat der erste Test schon funktioniert. Das Reading wird korrekt angezeigt, die Fahrt richtig ausgelöst. Werde jetzt noch ein, zwei weitere Test machen und melde mich dann nochmals.
Ok, scheint jetzt super zu funktionieren. 'day open', 'night close' machen keine Probleme mehr. Wenn ich manuell auf eine beliebige Position fahre wird die automatische Fahrt (down in meinem Fall) nicht ausgelöst. Wenn ich auf eine bekannte Position fahre (z.B. ASC_Open_Pos) funktioniert die automatische Fahrt. Die gleiche Belegung von Positionen (close und sleep) scheint auch kein Problem mehr zu sein. Und der external Trigger fährt ebenfalls wie gewünscht. Scheint also alles wie gewünscht zu funktionieren. Werde noch weiter ein Auge drauf haben und mich in ein paar Tagen melden.
Ganz nebenbei, bei mir ist es tatsächlich nur die Jalousie mit dieser krummen Bedienung. Alle anderen arbeiten nach Standard. Aber bei der fällt es halt besonders auf weil sie im Wohn-/Essbereich ist ???
Sehr schön. Dann scheinen wir beide ja das Problem gelöst zu haben. Freut mich. Wenn noch was ist einfach melden.
Hallo Reinhard,
Du hattest auch mal die Beobachtung gemacht bezüglich externer Trigger und Terrassentür offen und dann schließen das die Fahrt nicht nachgeholt wird. Ich habe da heute mal was gemacht. Du findest die Änderung im testing Branch.
Eventuell magst Du das mal testen.
Entweder nur diese Datei austauschen
https://git.cooltux.net/FHEM/mod-AutoShuttersControl/raw/branch/testing/lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
oder Du nimmst den testing Branch in update als Repo mit dazu.
update add https://git.cooltux.net/FHEM/mod-AutoShuttersControl/raw/branch/testing/controls_AutoShuttersControl.txt
update
shutdown restart
Wenn Du das nicht mehr haben willst machst Du einfach
update delete https://git.cooltux.net/FHEM/mod-AutoShuttersControl/raw/branch/testing/controls_AutoShuttersControl.txt
Grüße
Hallo CoolTux,
habe jetzt (fast) alles durchgetestet und sieht so weit recht gut aus. Comfort Open, window closed at day, day open, night closed, external trigger active, external trigger inactive funktioniert so weit ganz gut. Außer der Kombination die du gefragt hast.
Wenn ich nach einem "external trigger active" die vorher offen stehende Tür schließe fährt die Jalousie in die Position "window closed at day" und nicht in die Positiob "external trigger active". In meinem Fall ist die "window closed at day" Position "ASC_Open_Pos". Entspricht diese Position der aktuellen Position (100% offen) wird es im ShutterLastDrive Reading nicht signalisiert da ja keine Fahrt stattfindet. Ist die OpenPos ungleich der aktuellen Position wird eben die OpenPos angefahren und im Reading wird "window closed at day" gesetzt. Die "external trigger active" Fahrt wird aber nicht nachgeholt und auch nicht im Reading angezeigt.
Hoffe das hilft dir weiter.
Schönen Abend
Reinhard
Hallo Reinhard,
Das Reading für den Fahrgrund wird auf "window closed at day" gesetzt das ist korrekt, aber die Position beim schließen sollte eigentlich der aus "external trigger active" sein.
Hast Du auch wirklich heute noch mal ein Update gemacht aus dem testing Branch?
Das ist laut log mein Downloadpfad:
https://git.cooltux.net/FHEM/mod-AutoShuttersControl/raw/branch/testing/controls_AutoShuttersControl.txt (https://git.cooltux.net/FHEM/mod-AutoShuttersControl/raw/branch/testing/controls_AutoShuttersControl.txt)
Anschließend shutdown restart, alles auf dem aktuellsten Stand. Daran kann es nicht liegen.
Ok das passt.
Aber was noch wichtig ist, hast Du das Fenster oder besser die Terrassentür auch als Terrasse im Rollo deklariert?
Erwischt :-[
Ich hatte es zumindest für beide Türen gesetzt. Bei der vielen Probiererei muss ich es wohl Mal gelöscht haben. Ich werde es morgen nochmals testen und Feedback geben.
Zitat von: Reinhard.M am 25 Oktober 2021, 19:44:49
Erwischt :-[
Ich hatte es zumindest für beide Türen gesetzt. Bei der vielen Probiererei muss ich es wohl Mal gelöscht haben. Ich werde es morgen nochmals testen und Feedback geben.
Super. Ich danke Dir. Ich denke es wird dann klappen.
Bis morgen
Grüße
Gerade getestet, leider ohne Erfolg. Ich habe folgendes gemacht:
- Jalousie manuell in die open Position (100.100) gefahren -> Reading LastDrive = manual
- Tür geöffnet -> Reading LastDrive weiterhin manual
- ExternalTrigger aktiviert -> Reading LastDrive weiterhin manual
- Tür geschlossen, Jalousie fährt runter in die window closed at day position. Nicht in die External Trigger Position! Bei der 'window closed at day' (2.100) Position kann es sich nur um die letzte Position vor der manuellen open (100.100) Fahrt vom Anfang handeln. Im angehängten Listing steht zwar bei ASC_Open_Pos ebenfalls 2.100, die war aber zu diesem Zeitpunkt mit 100.100 überschrieben.
- External Trigger inactive -> Jalousie fährt wieder in die open (100.100) Position vor dem Schließen der Tür -> Reading LastDrive external trigger inactive
- External Trigger active -> Jalousie fährt in die 'external trigger active' (3.66) Position -> Reading LastDrive external trigger active
Ich würde ASC ja gerne etwas genauer auf die Finger schauen weiß aber leider nicht wie. Meine letzten ASC_Debug = active und verbose = 4/5 Versuche haben mich da nicht wirklich weiter gebracht. Ich habe noch das Listing der Jalousie angehängt falls du noch reinschauen möchtest.
Gruß Reinhard
Internals:
DEF 001398A98B25AC sd=3.LEVEL cd=4.LEVEL
FUUID 617573a5-f33f-dca3-2412-d81fc25fcf94c4d0
IODev myccu
NAME HM_JAU_Jalousie
NR 254
STATE 2
TYPE HMCCUDEV
ccuaddr 001398A98B25AC
ccudevstate active
ccuif HmIP-RF
ccuname HM_JAU_Jalousie
ccurolectrl BLIND_VIRTUAL_RECEIVER
ccurolestate BLIND_VIRTUAL_RECEIVER
ccusubtype FBL
ccutype HmIP-FBL
firmware 1.8.12
readonly no
OLDREADINGS:
2021-10-26 12:12:57 state DOWN
READINGS:
2021-10-26 12:12:57 3.ACTIVITY_STATE STABLE
2021-10-26 12:12:57 3.LEVEL 2
2021-10-26 12:12:57 3.LEVEL_2 100
2021-10-26 12:12:58 4.ACTIVITY_STATE STABLE
2021-10-26 12:12:58 4.LEVEL 2
2021-10-26 12:12:58 4.LEVEL_2 100
2021-10-26 12:12:58 ASC_ShuttersLastDrive external trigger device inactive
2021-10-26 07:45:02 ASC_Time_DriveDown 26.10.2021 - 18:13
2021-10-26 07:45:02 ASC_Time_DriveUp 27.10.2021 - 07:45
2021-10-26 12:12:58 TV_State TV-Off
2021-10-26 12:12:58 activity alive
2021-10-26 12:12:58 control 2
2021-10-26 12:12:58 devstate ok
2021-10-26 12:12:58 hmstate STABLE
2021-10-26 12:12:58 pct 2
2021-10-26 12:12:58 pctslt 2.100
2021-10-26 12:12:58 rssidevice -57
2021-10-26 12:12:58 rssipeer -63
2021-10-26 12:12:58 sltpct 100
2021-10-26 12:12:58 state STABLE
2021-10-26 12:12:58 state_old DOWN
hmccu:
channels 8
defCDP 4.LEVEL
defSDP 3.LEVEL
detect 5
devspec 001398A98B25AC
forcedev 0
nodefaults 1
role 0:MAINTENANCE,1:KEY_TRANSCEIVER,2:KEY_TRANSCEIVER,3:BLIND_TRANSMITTER,4:BLIND_VIRTUAL_RECEIVER,5:BLIND_VIRTUAL_RECEIVER,6:BLIND_VIRTUAL_RECEIVER,7:BLIND_WEEK_PROFILE
semDefaults 0
cmdlist:
get
set open:noArg close:noArg up pct stop:noArg down open:noArg close:noArg up pct stop:noArg down open:noArg close:noArg up pct stop:noArg down toggle:noArg
control:
chn 4
dpt LEVEL
dp:
0.ACTUAL_TEMPERATURE:
VALUES:
NVAL 25.0
ONVAL 25.0
OSVAL 25.0
OVAL 25.0
SVAL 25.0
VAL 25.0
0.ACTUAL_TEMPERATURE_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
0.CONFIG_PENDING:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.DUTY_CYCLE:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.ERROR_CODE:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.ERROR_OVERHEAT:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.INSTALL_TEST:
VALUES:
NVAL true
ONVAL true
OSVAL true
OVAL true
SVAL true
VAL true
0.OPERATING_VOLTAGE:
VALUES:
NVAL 0.000000
ONVAL 0.000000
OSVAL 0.000000
OVAL 0.000000
SVAL 0.000000
VAL 0.000000
0.OPERATING_VOLTAGE_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
0.RSSI_DEVICE:
VALUES:
NVAL -57
ONVAL -56
OSVAL -56
OVAL -56
SVAL -57
VAL -57
0.RSSI_PEER:
VALUES:
NVAL -63
ONVAL -64
OSVAL -64
OVAL -64
SVAL -63
VAL -63
0.UNREACH:
VALUES:
NVAL 0
ONVAL 0
OSVAL alive
OVAL 0
SVAL alive
VAL 0
0.UPDATE_PENDING:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
3.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 1
OSVAL UP
OVAL 1
SVAL STABLE
VAL 3
3.LEVEL:
VALUES:
NVAL 2
ONVAL 2
OSVAL 2
OVAL 0.02
SVAL 2
VAL 0.02
3.LEVEL_2:
VALUES:
NVAL 100
ONVAL 92.5
OSVAL 92.5
OVAL 0.925
SVAL 100
VAL 1.0
3.LEVEL_2_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
3.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
3.PROCESS:
VALUES:
NVAL 0
ONVAL 1
OSVAL NOT_STABLE
OVAL 1
SVAL STABLE
VAL 0
3.SECTION:
VALUES:
NVAL
ONVAL
OSVAL
OVAL
SVAL
VAL
3.SECTION_STATUS:
VALUES:
NVAL 1
ONVAL 1
OSVAL UNKNOWN
OVAL 1
SVAL UNKNOWN
VAL 1
4.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 2
OSVAL DOWN
OVAL 2
SVAL STABLE
VAL 3
4.LEVEL:
VALUES:
NVAL 2
ONVAL 3
OSVAL 3
OVAL 0.03
SVAL 2
VAL 0.02
4.LEVEL_2:
VALUES:
NVAL 100
ONVAL 66
OSVAL 66
OVAL 0.66
SVAL 100
VAL 1.0
4.LEVEL_2_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
4.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
4.PROCESS:
VALUES:
NVAL 0
ONVAL 1
OSVAL NOT_STABLE
OVAL 1
SVAL STABLE
VAL 0
4.SECTION:
VALUES:
NVAL 4
ONVAL 3
OSVAL 3
OVAL 3
SVAL 4
VAL 4
4.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
5.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 3
OSVAL STABLE
OVAL 3
SVAL STABLE
VAL 3
5.LEVEL:
VALUES:
NVAL 0
ONVAL 0
OSVAL closed
OVAL 0.0
SVAL closed
VAL 0.0
5.LEVEL_2:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0.0
SVAL 0
VAL 0.0
5.LEVEL_2_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
5.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
5.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
5.SECTION:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
5.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
6.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 3
OSVAL STABLE
OVAL 3
SVAL STABLE
VAL 3
6.LEVEL:
VALUES:
NVAL 0
ONVAL 0
OSVAL closed
OVAL 0.0
SVAL closed
VAL 0.0
6.LEVEL_2:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0.0
SVAL 0
VAL 0.0
6.LEVEL_2_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
6.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
6.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
6.SECTION:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
6.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
7.WEEK_PROGRAM_CHANNEL_LOCKS:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
roleCmds:
get:
set:
close:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:0
usage close
subcmd:
000:
args 0
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 000
unit 100%
down:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:?delta=-20
usage down [delta]
subcmd:
000:
args -20
dpt LEVEL
fnc
max 1.01
min 0.0
parname delta
partype 2
ps VALUES
scn 000
unit 100%
open:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:100
usage open
subcmd:
000:
args 100
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 000
unit 100%
pct:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:?level
usage pct level
subcmd:
000:
args
dpt LEVEL
fnc
max 1.01
min 0.0
parname level
partype 2
ps VALUES
scn 000
unit 100%
stop:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:STOP:1
usage stop
subcmd:
000:
args 1
dpt STOP
fnc
max 1
min 0
parname STOP
partype 3
ps VALUES
scn 000
unit
up:
channel ?
role BLIND_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:?delta=+20
usage up [delta]
subcmd:
000:
args +20
dpt LEVEL
fnc
max 1.01
min 0.0
parname delta
partype 2
ps VALUES
scn 000
unit 100%
state:
chn 4
dpt ACTIVITY_STATE
Attributes:
ASC 2
ASC_AutoAstroModeEvening HORIZON
ASC_AutoAstroModeEveningHorizon -2
ASC_AutoAstroModeMorning HORIZON
ASC_AutoAstroModeMorningHorizon 0
ASC_BlockingTime_afterManual 0
ASC_BlockingTime_beforDayOpen 0
ASC_BlockingTime_beforNightClose 0
ASC_BrightnessSensor di_Brightness
ASC_Closed_Pos 0.0
ASC_ComfortOpen_Pos 100.100
ASC_Down astro
ASC_DriveUpMaxDuration 70
ASC_Drive_Delay 0
ASC_Drive_DelayStart 5
ASC_ExternalTrigger di_HY:state TV-On:TV-Off 3.66
ASC_LockOut soft
ASC_LockOut_Cmd blocked
ASC_Mode_Down always
ASC_Mode_Up always
ASC_Open_Pos 2.100
ASC_Partymode off
ASC_Pos_Reading pctslt
ASC_Self_Defense_Mode off
ASC_Shading_InOutAzimuth 85:290
ASC_Shading_MinMax_Elevation 28:70
ASC_Shading_Min_OutsideTemperature 23
ASC_Shading_Mode off
ASC_Shading_StateChange_SunnyCloudy 60000:30000
ASC_Shading_WaitingPeriod 0
ASC_Shutter_IdleDetection 4.ACTIVITY_STATE:STABLE
ASC_ShuttersPlace terrace
ASC_Sleep_Pos 0.0
ASC_TempSensor di_AvgTemp
ASC_Time_Down_Early 16:00
ASC_Time_Down_Late 22:00
ASC_Time_Up_Early 06:00
ASC_Time_Up_Late 07:45
ASC_Time_Up_WE_Holiday 07:30
ASC_Up astro
ASC_Ventilate_Pos 4.75
ASC_Ventilate_Window_Open off
ASC_WindowRec di_Erker
ASC_WindowRec_PosAfterDayClosed open
ASC_WindowRec_subType threestate
alias R_Jalousie
ccureadingfilter 3.(ACTIVITY|LEVEL(_2)*$);4.(ACTIVITY|LEVEL(_2)*$)
ccureadingname 4.LEVEL_2$:+sltpct
cmdIcon open:fts_shutter_up stop:rc_STOP close:fts_shutter_down:skip:fts_shutter_shadding_run
devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed UP:fts_shutter_up@red:stop DOWN:fts_shutter_down@red:stop .:fts_shutter_100:open 1.:fts_shutter_90:open 2.:fts_shutter_80:open 3.:fts_shutter_70:open 4.:fts_shutter_60:open 5.:fts_shutter_50:closed 6.:fts_shutter_40:closed 7.:fts_shutter_30:closed 8.:fts_shutter_20:closed 9.:fts_shutter_10:closed 100:fts_shutter_10:closed error:fts_shutter_50@yellow
event-on-change-reading .*
eventMap {
usr => {'stop' => 'datapoint 4.STOP true',
'open' => 'datapoint 4.LEVEL_2 100 4.LEVEL 100',
'close' => 'datapoint 4.LEVEL_2 0 4.LEVEL 0',
'Closed_Pos' => 'datapoint 4.LEVEL_2 0 4.LEVEL 0',
'Sleep_Pos' => 'datapoint 4.LEVEL_2 0 4.LEVEL 1',
'Open_Pos' => 'datapoint 4.LEVEL_2 100 4.LEVEL 2',
'TV_Pos' => 'datapoint 4.LEVEL_2 66 4.LEVEL 3',
'Ventilate_Pos' => 'datapoint 4.LEVEL_2 75 4.LEVEL 4',
'Comfort_Pos' => 'datapoint 4.LEVEL_2 100 4.LEVEL 100',
'^sltpct(.*)' => 'datapoint 4.LEVEL_2 $1 4.LEVEL ".(ReadingsVal($NAME, "4.LEVEL",0))."',
'^pctslt(.*)\.(.*)' => 'datapoint 4.LEVEL_2 $2 4.LEVEL $1',
'^pct(.*)\.(.*)' => 'datapoint 4.LEVEL_2 $2 4.LEVEL $1'},
fw => {'^sltpct(.*)' => 'sltpct',
'^pctslt(.*)\.(.*)' => 'pctslt',
'^pct(.*)\.(.*)' => 'pct'}
}
gassistantName Jalousie
genericDeviceType blinds
group Alle Rollos
homebridgeMapping {
"OpenClose": {
"reading": "state",
"values": ["/^close/:CLOSED", "/.*/:OPEN"],
"cmdOpen": "open",
"cmdClose": "close"
},
"TargetPosition": {
"reading": "pct",
"cmd": "pct",
"invert": false
},
"CurrentPosition": {
"reading": "pct",
"invert": false
}
}
oldreadings state
realRoom Essecke
room ASC_Rollos,GoogleAssistant,Homematic
sortby 13
stateFormat {ReadingsVal("$name","state","error") =~ m,(UP|DOWN), ? $1 : ReadingsVal("$name","control","error")}
statedatapoint 4.ACTIVITY_STATE
stripnumber 3
substexcl pct
userReadings TV_State {Value('di_HY')},
state_old {OldReadingsVal($NAME,"state",0)},
pctslt {ReadingsVal($NAME,"pct",0).'.'.ReadingsVal($NAME,"sltpct",0)}
userattr ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforDayOpen ASC_BlockingTime_beforNightClose ASC_BrightnessSensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_BetweenTheTime ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace,awning,EG_window ASC_SlatPosCmd_SlatDevice ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
webCmd pct:open:stop:close:sltpct
widgetOverride pct:selectnumbers,0,1,100,0,lin sltpct:0,25,33,50,66,75,100 ASC_Closed_Pos ASC_ComfortOpen_Pos ASC_Open_Pos ASC_Sleep_Pos ASC_Ventilate_Pos
Mach das ganze bitte noch einmal bis zum aktivieren des external Triggers. Danach machst Du bitte ein
{ ascAPIget('DelayCmd','HM_JAU_Jalousie') }
Da sollte dann die Position für den external Trigger drin stehen, zu mindest aber nicht none.
Jetzt hat alles funktioniert wie gewünscht ::)
Entweder habe ich vorhin nicht richtig hingeschaut (3.66 und 2.100 können manchmal identisch ausschauen) oder es liegt daran, dass ich die neue ASC-Testversion geladen habe. Sorry :(
Bei der neuen Testversion mit CmdTemplate fehlt mir eine Option: Wie wird bei ExternalTrigger die Slatposition übergeben? Ich vermute, da gibt es noch keine Lösung, richtig?
Zitat von: Reinhard.M am 26 Oktober 2021, 13:44:52
Jetzt hat alles funktioniert wie gewünscht ::)
Entweder habe ich vorhin nicht richtig hingeschaut (3.66 und 2.100 können manchmal identisch ausschauen) oder es liegt daran, dass ich die neue ASC-Testversion geladen habe. Sorry :(
Bei der neuen Testversion mit CmdTemplate fehlt mir eine Option: Wie wird bei ExternalTrigger die Slatposition übergeben? Ich vermute, da gibt es noch keine Lösung, richtig?
Stimmt, da gibt es in der Tat noch keine Aktuelle Lösung für.
Nur so eine Idee: Die Positionsangabe beim External Trigger MUSS immer mit einem ':' abgeschlossen werden auch wenn kein weiterer Parameter folgt. Wenn es dann 2 ':' gibt ist der Erste davon das Trennzeichen für pct:sltpct.
Zitat von: Reinhard.M am 26 Oktober 2021, 14:32:40
Nur so eine Idee: Die Positionsangabe beim External Trigger MUSS immer mit einem ':' abgeschlossen werden auch wenn kein weiterer Parameter folgt. Wenn es dann 2 ':' gibt ist der Erste davon das Trennzeichen für pct:sltpct.
Das ist leider so nicht möglich da auch andere Attribute über eine gemeinsame Funktion ausgelesen und ausgewertet werden.
Zitat von: CoolTux am 26 Oktober 2021, 14:52:05
Das ist leider so nicht möglich da auch andere Attribute über eine gemeinsame Funktion ausgelesen und ausgewertet werden.
(Nur) falls das via parseParams erfolgt ginge _vielleicht_ eine Syntax mit Quotes:
WohnzimmerTV:state on:off "3:66":"70:100"
(Setzt aber voraus, dass der weitere Code dann mit den "doppelten Infos" klarkommt).
Ist kein parseParams, ist eine eigene Funktion. Sollte ich aber vielleicht mal drüber nachdenken das um zu bauen. Wäre ja nur Umbau in einer Funktion.
Zitat von: CoolTux am 26 Oktober 2021, 15:02:27
Ist kein parseParams, ist eine eigene Funktion. Sollte ich aber vielleicht mal drüber nachdenken das um zu bauen. Wäre ja nur Umbau in einer Funktion.
...das setzt halt voraus, dass der angrenzende Code mit der Rückgabe dann klarkommt. Wenn das da keine Problem verursacht, wäre das natürlich super.
Zitat von: Reinhard.M am 26 Oktober 2021, 14:32:40
Nur so eine Idee: Die Positionsangabe beim External Trigger MUSS immer mit einem ':' abgeschlossen werden auch wenn kein weiterer Parameter folgt. Wenn es dann 2 ':' gibt ist der Erste davon das Trennzeichen für pct:sltpct.
Grundsätzlich finde ich Syntax-Änderungen für bestehende Installationen schwierig, anpassen müssen sollten sich immer die, die was zusätzliches/neues haben wollen.
Wenn das auch noch dazu käme, würde es m.E. Sinn machen, diese ganzen "venetian-mode"-Sonderfälle irgendwie an einem Ort in der Commandref zusammenzupacken? Vielleicht beim Attribut "ASC_SlatPosCmd_SlatDevice"? Dann kann man von anderen relevanten Stellen dahin verlinken...
Zitat von: Beta-User am 26 Oktober 2021, 15:19:09
Grundsätzlich finde ich Syntax-Änderungen für bestehende Installationen schwierig, anpassen müssen sollten sich immer die, die was zusätzliches/neues haben wollen.
Absolut richtig, schlecht von mir beschrieben. Ich hatte es so gemeint, dass bei einem ':' weiterhin die bekannte Regel für active/inaktive gilt. Wenn ein ':' an das Pärchen angehängt wird gilt das erste Pärchen für active. Folgt nichts weiter bleibt es bei der heutigen Reaktion, die Jalousie fährt in die letzte Position. Will ich eine inactive Position angeben muss es in der gleichen Form wie die active Position geschehen. Damit bleibt es für alte Installationen wie es ist.
Beispiele
10 Active 10%, Inactive LastPos
10:90 Active 10%, Inactive 90%
10:75: Active 10:75 (pct:slt), Inactive LastPos
10:75:90:100 Active 10:75 (pct:slt), Inactive 90:100