Hei
Noen som kan hjelpe litt spesifikt med et problem med flow for styring av screens?
Starter med litt bakgrunnsinformasjon:
Hovedårsaken til at jeg investerte i Futurehome, var at jeg skulle etablere en smart styring av screens som vi investerte i mai i fjor.
Så langt har jeg ikke greid å etablere annet enn en simpel tidsstyring. Årsakene til det kan være flere, men her følger hovedårsaken til at jeg ikke ser ut å komme videre:
Elektriker har koblet Fibaro Roller Shutter 3 (FRS3) mellom fjærbelastede brytere og motor på screen. Jeg antar at dette er koblet riktig og iht. skjema i manual (se bilde nedenfor) - bryterne (opp og ned) fungerer som de skal og “opp”-bryter er koblet til S1. Jeg har sjekket koblingene fysisk, og de ser ut til å følge manualen (for standard blinds) til punkt og prikke.
Jeg har videre knyttet FRS3 til Futurehome, også iht manual. Etter å ha lagt til de aktuelle FRS3 har jeg kjørt kalibrering iht manual (trykke S1 i tre sekunder tre suksessive ganger) og kontrollert at nivå på screens blir riktig ved styring fra FH-appen. So far so good.
Jeg hadde i en periode en enkel tidsstyring hvor screen gikk ned når klokka tilsa at det kunne bli solskinn på vinduene, og opp når sola forsvant bak fjellet - en løsning jeg bare lagde med fasilitetene i FH-appen. Fungerte fint det, uten problemer i ganske lang tid, men da går screens ned uavhengig av om det er sol eller ikke. Det er naturligvis ikke ønskelig, så jeg ønsket å avansere, selv om metoden ga automatisering som fungerte.
Så, som tenkt hele tiden, fikk jeg etter hvert plassert ut en lyssensor. Jeg valgte en utendørssensor fra Philips Hue, ettersom det virket å være den mest robuste og lettest tilgjengelige utendørssensoren. Den fungerer fint og rapporterer lysintensitet som forventet, enn om litt tid mellom rapportene, etter at jeg la den direkte til i FH (ikke via Philips Hue hub). Så har jeg satt meg litt inn i Thingsplex og laget en veldig enkel flow som kjører screens ned dersom lux > 35 000 og opp dersom lux < 30 000. Klok av skade tester jeg nå flowen kun på en screen. Se bilde av flow nedenfor. Blokkene til høyre er noe jeg begynte på, men gikk bort ifra da jeg fikk problemer, så det kan sikkert ses bort ifra. Kildekoden (som jeg for øvrig ikke har særlig mye forhold til) er satt inn i bunn av innlegget.
Det som nå har skjedd, og som skjedde for en tid tilbake da jeg testet dette sist, er at den aktuelle screen er kjørt ut, ut og ut, slik at screen er spolet inn i feil retning.
Sist gang fikk jeg leverandøren av screensa til å komme å fikse det, fordi jeg tenkte det var en feil med motorene (grunnet fuktighet og/eller kulde etc.). Jeg hadde veldig vanskelig for å se for meg at det kunne være FRS3, eller styringa av denne, som kunne medføre en slik feil. Screensa er levert med en Selve Elektronik ZipScreen motor (SEZ) som er fasilitert med:
- “Obstacle detection downwards”
- “Reverse function: Releiving after running onto an obstacle downwards (up to 3 times)”
- “Overload protection upwards if the torque is too high, (also say “freezing protection”)”
- “Automatic detection of up- and downwards direction”
- “Automatic setting of the lower end position”
- “Automatic setting of trhe upper end position and release”
- “Switch-off bottom: fixed point”
- “Switch-off top: fixed point”
Montørene definerte øvre og nedre grenser som motoren da er satt til å overholde, og har overholdt helt til min lille flow kommer inn i bildet.
Flowen ser med første øyekast ut til å fungere som tiltenkt. Når lysverdien blir høy nok går screen ned, og blir den lavere går screen opp.
Men så skjer det noe merkverdig rart, og det har skjedd på kveldstid når det er mørkt, begge ganger. Nå sist skjedde det mellom klokka 19 og 19:30 kun bevitnet av min samboer: screen begynner å gå øyensynlig tilfeldig og helt uten referanse til betingelsene som er satt i flowen. Screen går helt ned, og nødvendigvis lengre ned enn nedre grense satt for motoren, før den, antageligvis i samme bevegelse (altså ned), ruller screenen opp igjen. Stopper litt midtveis og står der noen minutter/sekunder, før den ruller videre opp og helt inn. Screen er nå spolet inn i feil retning. En og annen gangen forsøker screen å kjøre ut igjen, men stopper etter noen få centimeter, antageligvis pga for stor motstand, men kanskje også pga at gjeldende endestopp nå har havnet helt på avveie. Uansett blir jeg nødt til å åpne og resette screen og motor, få den spolt riktig vei og definere endestopp på nytt. Forhåpentligvis får jeg til dette selv, for jeg tror ikke jeg kan kreve at leverandøren kommer og fikser dette igjen nå som jeg er sikker på at det er flowen/FRS3 som er kilden til problemet.
Legger til at jeg tenker å utvide flowen med et begrenset tidsrom hvor den skal gjøre seg gjeldende, ekstra betingelser tilknyttet innetemperatur, vindforhold og mulighet for overstyring etc, men det må komme etterhvert, og først når jeg er sikker på at jeg ikke krøller screensa til ytterligere ved å legge til flere finnesser i flowen. Jeg bør sikkert ha noe i koden/flowen som sørger for at feiloperasjon ikke oppstår, men jeg vet ikke helt hva det skulle være, og jeg har uansett vanskelig for å forstå hvordan programmet kan gi dette utslaget, tydeligvis som en naturlig følge, siden det skjer to ganger (det har nok skjedd på kveldstid rett etter at flow har blitt aktivert begge ganger, men sist gang tok det ganske lang tid før jeg oppdaget det).
Kan noen fortelle meg hva som foregår her og hvorfor flowen føkker opp min screen?
Hva er løsninga for å få en sikker og god måte å styre screensa på?
På forhånd takk!
{
"Id": "OlN5AinFeXivDjO",
"ClassId": "OlN5AinFeXivDjO",
"Author": "",
"Version": 0,
"CreatedAt": "2022-01-02T13:43:04.834935708+01:00",
"UpdatedAt": "2022-03-09T15:49:46.036567674+01:00",
"Name": "Screen sørvegg",
"Group": "Screens",
"Description": "",
"Nodes": [
{
"Id": "1",
"Type": "trigger",
"Label": "Lyssensor sørvegg",
"SuccessTransition": "2",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:hue/ad:1/sv:sensor_lumin/ad:s233_0",
"Service": "sensor_lumin",
"ServiceInterface": "evt.sensor.report",
"Config": {
"ConnectorID": "",
"InputVariableType": "",
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"PropFilterName": "",
"PropFilterValue": "",
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": null,
"ValueType": "float"
},
"ValueJPath": "",
"ValueJPathResultType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": null
},
"Ui": {
"nodeType": "",
"x": 380,
"y": 38
},
"TypeAlias": "Trigger",
"LastValue": "231 Lux"
},
{
"Id": "2",
"Type": "if",
"Label": "Lux høy",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"BooleanOperator": "",
"LeftVariableName": "",
"Operand": "gt",
"RightVariable": {
"Value": 35000,
"ValueType": "int"
}
}
],
"FalseTransition": "3",
"TrueTransition": "7"
},
"Ui": {
"nodeType": "",
"x": 244,
"y": 294
},
"TypeAlias": "If condition"
},
{
"Id": "3",
"Type": "if",
"Label": "Lux lav",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"BooleanOperator": "",
"LeftVariableName": "",
"Operand": "lt",
"RightVariable": {
"Value": 30000,
"ValueType": "int"
}
}
],
"FalseTransition": "",
"TrueTransition": "9"
},
"Ui": {
"nodeType": "",
"x": 634,
"y": 304
},
"TypeAlias": "If condition"
},
{
"Id": "7",
"Type": "action",
"Label": "Screen stue ned",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:out_lvl_switch/ad:52_0",
"Service": "out_lvl_switch",
"ServiceInterface": "cmd.lvl.set",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": "int"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 59,
"y": 534
},
"TypeAlias": "Action"
},
{
"Id": "9",
"Type": "action",
"Label": "Screen stue opp",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:out_lvl_switch/ad:52_0",
"Service": "out_lvl_switch",
"ServiceInterface": "cmd.lvl.set",
"Config": {
"DefaultValue": {
"Value": 100,
"ValueType": "int"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 622,
"y": 536
},
"TypeAlias": "Action"
},
{
"Id": "12",
"Type": "time_trigger",
"Label": "Every minute",
"SuccessTransition": "13",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultMsg": {
"Value": "",
"ValueType": ""
},
"Expressions": [
{
"Comments": "",
"Expression": "@every 1m",
"Name": "Every minute"
}
],
"GenerateAstroTimeEvents": false,
"Latitude": 0,
"Longitude": 0,
"SunriseTimeOffset": 0,
"SunsetTimeOffset": 0
},
"Ui": {
"nodeType": "",
"x": 1293,
"y": 155
},
"TypeAlias": "Time trigger"
},
{
"Id": "13",
"Type": "action",
"Label": "",
"SuccessTransition": "14",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:hue/ad:1/sv:sensor_lumin/ad:s233_0",
"Service": "sensor_lumin",
"ServiceInterface": "evt.sensor.report",
"Config": {
"DefaultValue": {
"Value": "",
"ValueType": "int"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 1299,
"y": 366
},
"TypeAlias": "Action",
"LastValue": "231 Lux"
},
{
"Id": "14",
"Type": "set_variable",
"Label": "Lux sørvegg",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"DefaultValue": {
"Value": 0,
"ValueType": ""
},
"IsVariableInMemory": true,
"Name": "lux_sør",
"UpdateGlobal": true,
"UpdateInputMsg": false
},
"Ui": {
"nodeType": "",
"x": 1305,
"y": 577
},
"TypeAlias": "Set variable"
}
],
"Settings": null,
"IsDisabled": true,
"IsDefault": false,
"ParallelExecution": "parallel"
}```