UltraSub schreef op donderdag 02 april 2015 @ 14:37:
Zal vast ook gedocumenteerd zijn, dus daar moet ik ook maar eens een kijkje nemen. Zo draai ik nu bijvoorbeeld op Domoticz een aantal bash scripts die rechtstreeks de Philips Hue api aanspreken om lampen aan te sturen. Met Domoticz krijg ik het niet voor elkaar om de juiste kleuren in te stellen, en middels de api is dat geen enkel probleem. Gewoon een api call in 1 request met alle benodigde settings. Als use case voor mij, hoe zou je dat moeten regelen met een Zipabox? Script starten op een externe linux omgeving die de api call doet, of gewoon een url(s) aanroepen vanuit de Zipa?
Ik heb zelf geen Philips Hue dus het is mij nog niet helemaal duidelijk hoe je het nu in Domoticz heb draaien. Spreekt Domoticz die bash scripts aan?
Ik heb in de Zipato een Philips Hue optie, dus wie weet werkt het gewoon.
UltraSub schreef op donderdag 02 april 2015 @ 14:37:
Ik mag hopen dat je de REST API rechtstreeks benadert? Ga je echt iedere keer het internet op met een api call normaal gesproken? Dat stemt me minder vrolijk. En als het wel lokaal kan en je past dingen middels de api aan rechtstreeks op de Zipa, ik neem aan dat het dan wel terug synced naar de cloud?
Anyway, ik was in de veronderstelling dat dat cloud panel alleen nodig was om de rule creator te kunnen gebruiken. En dat ik voor de rest daar totaal niet hoefde te komen als ik dat niet wilde of nodig vond. Wat jij nu schrijft zegt me heel wat anders; het cloud panel is een core component. Ik vind dat toch een "gevaarlijke" ontwikkeling voor iets wat in mijn ogen exact dezelfde functionaliteit zou moeten bieden indien internet onbruikbaar is.
De REST API staat in de cloud, via
http://my.zipato.com. Maar het zou dus ook mogelijk moeten zijn om het restreeks op je eigen lokale netwerk (dus rechtstreeks naar het ip van je zipabox) aan te spreken. Ik heb dat zelf alleen nog niet getest.
Ik heb wel een voorbeeld gezien waarin iemand anders de waarden van allerlei meters rechtstreeks uit de zipabox trok. Dus mijn hoop is dat het kan.
UltraSub schreef op donderdag 02 april 2015 @ 14:37:
Misschien is het zelfs in bepaalde opzichten nog wel beter om niet verplicht in lua te moeten schrijven. Ik ben beter in andere talen
Erg bedankt voor je uitgebreide toelichting! Kan ik wat mee. Ga eens verder denken.
Ik heb hetzelfde, andere programmeer talen bevallen mij beter.
Tot slot even een voorbeeld van hoe zet ik een lamp aan via de API.
Alles heeft in de Zipato een UUID. Ik heb ze even gemaskeerd, omdat ik nog niet zeker weet of de UUID unique zijn totaal of enkel per Zipabox. Ik vermoed het laatst, maar het maakt voor het voorbeeld eigenlijk niet zo veel uit.
Wat zien we dus in het plaatje. Dit gaat over een Qubino Zwave dimmer, deze heeft een aantal attributen, waaronder een INTENSITY attribute. Mijn wens is om de lamp naar 100% itensity te brengen en daarna weer terug naar 0%, of te wel AAN en dan weer UIT. Dit attribute heeft een UUID en kan ik vinden bij de device manager in de Zipato web interface (waar je ook je rules definieerd).
Als ik in de webinterface ben ingelogd kan ik switchen naar de API en kies vervolgens voor de module 'attributes', want ik wil een attribute van mijn Qubino dimmer wijzigen. Vervolgens kies ik voor 'set attribute with plain/text content' en dan krijg ik onderstaand plaatje te zien. Als ik nu 100 invul bij p_value en ik druk op 'Try it out' dan gaat mijn lamp aan en zet ik er 0 in dan gaat mijn lamp uit.
Je ziet vervolgens de request en response informatie welk uiteraard ontzettend handig is om tegen aan te programmeren. Ik heb zelf het idee, dat alles wat je met de Zipato kan doen ook via de API kan doen. Het is soms alleen even zoeken in de best grote API.
Goed dames en heren, even voor de leuk. Ik kan wel de hele tijd zeggen, ik heb gehoord en gelezen, maar wat we willen weten natuurlijk is of het ook daadwerkelijk werkt.
Ik heb zojuist wat test code gepakt welke ik gebruikt heb om voor mijzelf te bepalen of ik de Zipabox wilde. Hiervoor heb ik toen in python wat testjes geschreven naar de cloud API (laten we hem maar even zo noemen). Wat het doet is de output power van mijn zonnepanelen ophalen bij pvoutput en deze in een virtuele meter in de zipabox zetten.
Nou, dit werkt prima natuurlijk via de cloud api (
https://my.zipato.com). De vraag is, werkt het ook lokaal?
Ik heb vervolgens mijn Zipabox een vast ip gegeven en de url aangepast naar http://<zipabox ip>:8080. Hier en daar komt er een http code 200 terug waar in de cloud api een 202 terug komt, maar... het werkt. Het is mij gelukt om dus van pvoutput een waarde halen en deze lokaal in de zipabox te stoppen.
[
Voor 10% gewijzigd door
Verwijderd op 02-04-2015 16:23
]