Gjelsvik Skrevet 11. september 2020 Skrevet 11. september 2020 NÄ som adax sitt api er Äpent, og siden vi har reine pluginfabrikken her pÄ forumet. - Er det noen som vil ta fatt pÄ dette? Jeg har dessverre ikke kunnskapen nok til Ä fÄ gjort det selv.  Kan bistÄ med adax konto og tilgang til denne om noen vil se pÄ det. Siter
Moskus Skrevet 11. september 2020 Skrevet 11. september 2020 57 minutter siden, Gjelsvik skrev: Er det noen som vil ta fatt pÄ dette? Ikke fÞr de fÄr den lokale APIen pÄ plass, iallfall. Orker ikke styre med flere skylÞsninger hvis jeg kan slippe... Siter
Guahtdim Skrevet 11. september 2020 Skrevet 11. september 2020 Jeg vil helst ha/eie tingene selv for Ä gjÞre plugin prosjekter. Og det gÄr fort 10-20 timer i ren kodetid pÄ Ä lage ett slikt prosjekt selv om jeg nÄ har mye jeg kan "kopiere inn" fra andre prosjekter. Siter
Gjelsvik Skrevet 12. september 2020 Forfatter Skrevet 12. september 2020 22 hours ago, Guahtdim said: Jeg vil helst ha/eie tingene selv for Ä gjÞre plugin prosjekter. Og det gÄr fort 10-20 timer i ren kodetid pÄ Ä lage ett slikt prosjekt selv om jeg nÄ har mye jeg kan "kopiere inn" fra andre prosjekter. SkjÞnner at det er lettere Ä ha tilgang til produktet fysisk. Kan sende deg en ovn om du vil jeg.  Begynte pÄ utvikling av plugins for et par Är siden selv. Men fant aldri ut hvor man skriver 'call-back' altsÄ der du styrer devicene du lager via kontrollknapper i homeseer.  Andre veien fikk jeg til. AltsÄ spÞrre api om enheter, lage Devices i hs, og sÄ spÞrre apiet om verdiene de forskjellige enhetene har. 2 Siter
Guahtdim Skrevet 12. september 2020 Skrevet 12. september 2020 Sender du en ovn sĂ„ mĂ„ jeg sikkert gjĂžre det đ Siter
Moskus Skrevet 13. september 2020 Skrevet 13. september 2020 PÄ 12.9.2020 den 10.55, Gjelsvik skrev: Men fant aldri ut hvor man skriver 'call-back' altsÄ der du styrer devicene du lager via kontrollknapper i homeseer. SetIOMulti()  Siter
Gjelsvik Skrevet 14. september 2020 Forfatter Skrevet 14. september 2020 20 hours ago, Moskus said: SetIOMulti()   NÄ er vi litt utenfor topic her, men la oss ta et tenkt tilfelle.  Hvor "skriver" jeg koden/funksjonene som hver kontrollknapp skal trigge. la oss si at jeg har to childdevicer, en for hver varmeovn. Disse har jeg mulighet til Ä sette temperatur pÄ.  Apiet kan vi tenke oss er noe slik som dette "http://server/api/temp?id=1234&temp=23,5"  Hvor i koden tar jeg med meg deviceID inn i funkjonen som setter temperaturen mot apiet til adax? Denne deviceid er da ikke homeseer sin, men en man fÄr nÄr man poller apiet. Den bÞr jo lagres pÄ devicen i et skjult felt eller noe.   Siter
Moskus Skrevet 14. september 2020 Skrevet 14. september 2020 31 minutter siden, Gjelsvik skrev: NÄ er vi litt utenfor topic her, men la oss ta et tenkt tilfelle. Vi er vel bang smack on topic.  31 minutter siden, Gjelsvik skrev: Hvor "skriver" jeg koden/funksjonene som hver kontrollknapp skal trigge. la oss si at jeg har to childdevicer, en for hver varmeovn. Disse har jeg mulighet til Ä sette temperatur pÄ.  Apiet kan vi tenke oss er noe slik som dette "http://server/api/temp?id=1234&temp=23,5"  Hvor i koden tar jeg med meg deviceID inn i funkjonen som setter temperaturen mot apiet til adax? Denne deviceid er da ikke homeseer sin, men en man fÄr nÄr man poller apiet. Den bÞr jo lagres pÄ devicen i et skjult felt eller noe. Jeg hadde delt det opp i forskjellige klasser for Ä hÄndtere det, men det er SetIOMulti() som hÄndterer alle knappetrykker pÄ devicer som tilhÞrer plugin'en.  Du fÄr sendt en deviceRef og en kommando, og bruker da dette videre. Hvordan du hÄndterer det er opp til deg. Her er SetIOMulti() fra TibberSeer:  Mye av teksten ligger i MoskusSample... Public Sub SetIOMulti(ByVal colSend As List(Of HomeSeerAPI.CAPI.CAPIControl)) 'Multiple CAPIcontrols might be sent at the same time, so we need to check each one For Each CC In colSend Log("SetIOMulti triggered, checking CAPI '" & CC.Label & "' on device " & CC.Ref, LogType.Debug) 'CAPI doesn't magically store the new devicevalue, and I believe there's good reason for that: ' The status of the device migth depend on some hardware giving the response that it has received the command, ' and perhaps with an other value (indicating a status equal to "Error" or whatever). In that case; send the command, ' wait for the answer (in a new thread) and THEN update the device value 'But here, we just update the value for the device hs.SetDeviceValueByRef(CC.Ref, CC.ControlValue, False) 'Get the device sending the CAPIcontrol Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(CC.Ref) Select Case device.DeviceType_Get(hs).Device_SubType_Description.ToLower Case "root_price" Log("Pressing update on price root...", LogType.Debug) Dim ref As Integer = CC.Ref Dim t As New Thread(AddressOf UpdateTibberData) t.Start(ref) Case "root_consumption" Log("Pressing update on consumption root...", LogType.Debug) Dim ref As Integer = CC.Ref Dim t As New Thread(AddressOf UpdateTibberData) t.Start(ref) Case "root_realtime" Log("Pressing restart on realtime root...", LogType.Debug) Dim ref As Integer = CC.Ref RestartRealtime(ref) End Select Next End Sub  Her fra TrÄdfriSeer: Public Sub SetIOMulti(ByVal colSend As List(Of HomeSeerAPI.CAPI.CAPIControl)) 'Multiple CAPIcontrols might be sent at the same time, so we need to check each one For Each CC In colSend Log("SetIOMulti triggered, checking CAPI '" & CC.Label & "' on device " & CC.Ref, LogType.Debug) 'Get the device sending the CAPIcontrol Dim device As Scheduler.Classes.DeviceClass = hs.GetDeviceByRef(CC.Ref) Select Case GetTypeFromDevice(device) Case "Hub" 'There's nothing here Case "Bulb" Dim b As TrÄdfriBulb = (From bs In TrÄdfri.Bulbs Where bs.MainDeviceRef = CC.Ref).FirstOrDefault If b IsNot Nothing Then b.SetDimLevelAsync(CC.ControlValue) End If Case "Group" Dim g As TrÄdfriGroup = (From bs In TrÄdfri.Groups Where bs.MainDeviceRef = CC.Ref).FirstOrDefault If g IsNot Nothing Then g.SetDimLevelAsync(CC.ControlValue) End If Case "Scene" Dim g As TrÄdfriGroup = (From bs In TrÄdfri.Groups Where bs.SceneDeviceRef = CC.Ref).FirstOrDefault If g IsNot Nothing Then g.SetSceneAsync(CC.ControlValue) End If Case "ColorTemperature" Dim b As TrÄdfriBulb = (From bs In TrÄdfri.Bulbs Where bs.TemperatureDeviceRef = CC.Ref).FirstOrDefault If b IsNot Nothing Then b.SetColorAsync(CC.ControlValue) End If Case "TransitionTime" hs.SetDeviceValueByRef(CC.Ref, Math.Round(CC.ControlValue, 1), True) End Select Next End Sub  Siter
Guahtdim Skrevet 14. september 2020 Skrevet 14. september 2020 (endret) Jeg har gjort alle mine plugins i C# Du kan se pÄ Moskus sine eksempelplugins for Ä fÄ litt oversikt https://github.com/Moskus/hspi_CsharpSample  (og han burde ogsÄ ha lagt ut sin vb-versjon)  Slik jeg gjÞr det sÄ pleier jeg Ä lagre ned endel info til PED (Plugin Extra Data) nÄr jeg lager en device. Her ville det f.eks. vÊrt at man kan ha deviceId som en property.  NÄr du da fÄr noe inn pÄ IOMulti sÄ er det bl.a. deviceId for enheten som man trykket pÄ (og "controlvalue"). Med dette henter du inn PED data og ut fra dette kan du da begynne Ä kalle mot f.eks. api nÄr du skal endre noe.  Edit: Moskus slo meg og hadde ogsÄ mye bedre forklaringer. Endret 14. september 2020 av Guahtdim 1 Siter
Moskus Skrevet 14. september 2020 Skrevet 14. september 2020 55 minutter siden, Guahtdim skrev: (og han burde ogsÄ ha lagt ut sin vb-versjon) Oi! Wow, ja det burde jeg. Hvorfor har jeg ikke det?   Siter
Gjelsvik Skrevet 14. september 2020 Forfatter Skrevet 14. september 2020 FĂ„r spinne opp visual studio igjen her  Men C# eller vb... ?đ€ Siter
Moskus Skrevet 14. september 2020 Skrevet 14. september 2020 Akkurat nÄ hadde jeg gÄtt for C#, men det spiller egentlig ingen rolle. Siter
Guahtdim Skrevet 14. september 2020 Skrevet 14. september 2020 39 minutes ago, Moskus said: Oi! Wow, ja det burde jeg. Hvorfor har jeg ikke det? Fordi Git ikke er sÄ enkelt for deg? Eller fordi du glemte det etter at C# versjonen ble lagt ut? Siter
Moskus Skrevet 14. september 2020 Skrevet 14. september 2020 1 minutt siden, Guahtdim skrev: Fordi Git ikke er sÄ enkelt for deg? Eller fordi du glemte det etter at C# versjonen ble lagt ut? Ja. Og ja. Siter
Gjelsvik Skrevet 14. september 2020 Forfatter Skrevet 14. september 2020 Er eksempelkoden din ogsÄ et greit utgangspunkt for HS4 plugins? Siter
Guahtdim Skrevet 14. september 2020 Skrevet 14. september 2020 (endret) 12 minutes ago, Gjelsvik said: Er eksempelkoden din ogsÄ et greit utgangspunkt for HS4 plugins? Koden til Moskus er for HS3. Men jeg mener den skal klare Ä kjÞre som legacy-plugin i HS4. Det er litt variabelt hva som fungerer eller ikke. SÄ langt sÄ virker det som om mine plugins fungerer greit. Endret 14. september 2020 av Guahtdim Siter
Moskus Skrevet 14. september 2020 Skrevet 14. september 2020 HS3-sampelet kjĂžrer som bare juling i HS4. Siter
Anbefalte innlegg
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.