Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Sliter med et slave script


Fermate

Anbefalte innlegg

Fikk dette scriptet av @Moskus for en tid siden og det kjører fint for å la en dimmer følge en annen på de stedene der lampene er så langt fra hverandre at de må få hver sin dimmer men likevel reguleres synkront.Men disse dimmerne har alle vært Fibaro Gen 1 dimmere.I dag satte jeg inn en nyere Fibaro dimmer og den reagerer bare dersom det er fullt ON eller OFF men ikke på dimming. (Bytte på hvem som er master og slave gir samme resultat) Noen tips om noe debug eller noe jeg kan gjøre for å finne ut av det?

 

Sub Main(ByVal parms As String)
        Dim input() As String = parms.ToString.Split("|")
        Dim control As String = input(0).ToString
        Dim devs() As String = input(1).ToString.Split("+")
        Dim devicevalue As Double = hs.DeviceValueEx(control)

        Dim CAPIcontrol As HomeSeerAPI.CAPIControl = Nothing
        For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(control)
            If devicevalue = cc.ControlValue Then
                CAPIcontrol = cc
                Exit For
            End If
        Next

        For Each d as String In devs
            Dim dev As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(d)
            If CAPIcontrol.Label.ToLower.Contains("dim") Then
                If dev.Can_Dim(Nothing) Then
                    Dim capi As HomeSeerAPI.CAPIControl = Nothing
                    For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(d)
                        If cc.Label = CAPIcontrol.Label Then
                            capi = cc
                            Exit For
                        End If
                    Next
                    hs.CAPIControlHandler(capi)
                Else
                    Dim off As HomeSeerAPI.CAPIControl = Nothing
                    For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(d)
                        If cc.Label.ToLower = "off" Then
                            off = cc
                            Exit For
                        End If
                    Next
                    hs.CAPIControlHandler(off)
                End If
            Else
                Dim capi As HomeSeerAPI.CAPIControl = Nothing
                For Each cc As HomeSeerAPI.CAPIControl In hs.CAPIGetControl(d)
                    If cc.Label = CAPIcontrol.Label Then
                        capi = cc
                        Exit For
                    End If
                Next
                hs.CAPIControlHandler(capi)
            End If

        Next
    End Sub

 

image.png

 

Lenke til kommentar
Del på andre sider

hehe som vanlig hjelp det å stille spørsmålet her.

 

Det viste seg at CAPI.label ikke inneholdt ordet "dim" på den nye Fibaroen:

 

image.png

 

Og da slo jo ikke denne testen til:

If cc.Label = CAPIcontrol.Label Then

 

Ved å strippe av "dim " gikk det fint.

 

Jeg regner med at @Moskus har en (mere) elegant måte å gjøre det på ;) så jeg overlater til ham å poste det oppdaterte scriptet.

(Eller som vanlig bare gjøre meg oppmerksom på at det ble postet ett eller annet sted her allerede for 1 år siden ;) )

Lenke til kommentar
Del på andre sider

6 timer siden, Fermate skrev:

Jeg regner med at @Moskus har en (mere) elegant måte å gjøre det på ;) så jeg overlater til ham å poste det oppdaterte scriptet.

Nei, faktisk ikke. Men det var noe å gjøre, takk for tipset! Kan gå over til å bruke "value" istedenfor "Label". :) 

Lenke til kommentar
Del på andre sider

Ja. Ulempen med den måten er at man ikke kan ha forbehold når linkingen skal skje. Men ellers fungerer det fint. :)

 

Mulig den også bruker device label og ikke value, for det er noe krøll når det linkes mot JowiHue-devicer (hvis man ikke velger en vanlig dimme-skala istedenfor 0-254).

Lenke til kommentar
Del på andre sider

16 timer siden, Andreas skrev:

Du kan jo også sette opp hver device til å følge den andre.

Under avansert tror jeg..

 

Ah det hadde jeg ikke fått med meg.

 

17 timer siden, Moskus skrev:

Nei, faktisk ikke. Men det var noe å gjøre, takk for tipset! Kan gå over til å bruke "value" istedenfor "Label". :) 

 

Will try

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.