Nu har jag fixat en riktig integration mha Sandströms bibliotek precis som några tidigare här i tråden och delar här med mig av min kod och mina upptäckter så här långt.
- Verisure VD
- Verisure - VD1.PNG (7.59 KiB) Viewed 21636 times
Ett trubbel dök upp under testningen: Jag får felmeddelande tillbaka från Verisure efter ett antal anrop till API't om jag anropar för ofta:
Verisure har använt felkod 401 ett tag med nu har dom gått över till felkod 429.
Felrapport: "Invalid response, status code: 401 - Data: {"errorGroup":"UNAUTHORIZED","errorCode":"AUT_00021","errorMessage":"Request limit has been reached"}
Felrapport: "Invalid response, status code: 429 - Data: {"errorGroup":"UNAUTHORIZED","errorCode":"AUT_00021","errorMessage":"Request limit has been reached"}
Jag har laborerat med olika pollningsfrekvenser för att utröna var gränsen går. Slutsatsen är att 120 sekunder är det kortaste intervallet man kan ha om man vill undvika upprepade felmeddelanden.
Nedan är mina testresultat.
Jag har två timers i VDn som håller koll på pollningsfrekvens:
Pollning_OK : Denna anger väntetid till nästa anrop så länge allt går bra.
Pollning_NOK : Denna anger väntetid till nästa anrop om ett fel inträffat.
Jag har satt Pollning_NOK=240 sekunder. Kortare är ju meningslöst eftersom man då kommer nära ordinarie pollningsfrekvens. Och längre är ju heller inte meningsfullt, då är det bättre att från början se till att inte ha en för hög pollningsfrekvens som orsakar fel.
Så här ser det ut för olika värden på Pollning_OK:
5 sekunder : Fel 401 efter 10 anrop (ca en minut)
30 sekunder : Fel 401 efter 15 anrop (ca 7 minuter)
55 sekunder : Fel 401 efter 18, 66, 5, 7, 15 anrop
60 sekunder : Fel 401 efter 127, 42, 52, 20, 12, 3, 3, 27, 63, 13, 16, 16, 2, 12 anrop
70 sekunder : Fel 401 efter 4, 2, 9, 18, 42, 53 anrop
90 sekunder : Fel 401 efter 290 (7,25 tim) , 22, 6, 40, 39, 61, 26, 3, 120, 25, 174 (4,5 tim)
100 sekunder: Fel 429 efter 788 (22 tim), 6, 490 (13,5 tim), 8, 3 anrop
110 sekunder: Fel 421 efter 1198 (36,5 tim), 10 anrop
120 sekunder: Inga fel. Har tuffat på i veckor nu utan problem
Om det är så att Verisure begränsar antal anrop per tidsenhet så betyder det att vissa användningsfall blir meningslösa, tex om man vill tända belysning när man kommer hem och larmar av. Om det tar flera minuter innan HC2 ens vet om att det är avlarmat så missar man ju poängen lite. För just det användningsfallet fungerar lösningen med pluggar bättre, då blir det ingen som helst fördröjning i systemet. Så har jag det riggat just nu, jag larmar av på utsidan dörr och innan jag ens hunnit öppna dörren så har ljuset tänts i huset. Precis som det ska va.
Så här ser det ut:
http://www.zwaveforum.se/viewtopic.php? ... 827#p20827
Däremot är det ju fint att man kan hämta temperaturer från rummen tex och där behövs ju ingen sekundsnabb uppdatering. Återstår att lista ut hur man skall få in temperaturerna i HC2 så att den uppfattar min VD som en temperaturgivare. Samma utmaning som med min NIBE värmepump från vilken jag kan läsa temperaturer från deras API till en VD, jag vill ju att temperaturerna skall uppfattas som klimatdata av HC2-an.
Bifogar mina kodsnuttar för den som vill spara lite tid.
Min VD använder ett antal globala variabler för att lagra statusvärden och temperaturer. Jag har också definierat en "Notification" som skickas till min mobiltelefon om bryggan till Verisure av någon anledning går ner. Jag har också laddat upp en Verisure-ikon som refereras till i koden.
Knapparna "På" och "Av" sätter på respektive stänger av VDn om man skulle vilja pausa den en stund.
Variabler som används :
- Variabler
- Verisure variabler.PNG (5.16 KiB) Viewed 21636 times
Fördefinerade variabler som används:
- Fördefinierade variabler
- Verisure fördefinerade variabler.PNG (9.63 KiB) Viewed 21636 times
Mycke nöje!