def setupCloud(): IOT.on_message = on_message #make certain that the device & it's features are defined in the cloudapp IOT.connect() if hasLISIPAROI: IOT.addAsset(ToggleLISIPAROIId, "LISIPAROI", "Control the light on the camera", False, "boolean") IOT.addAsset( PreviewId, "Preview", "Show/close a preview on the monitor that is connected to the RPI", True, "boolean") IOT.addAsset(RecordId, "Record", "Start/stop recording the video stream on sd-card", True, "boolean") IOT.addAsset(PictureId, "Picture", "take a picture (max resoution) and store on sd-card", True, "boolean") IOT.addAsset(StreamServerId, "Stream server", "set the ip address of the server that manages the video", True, "string") # get any previously defined settings streamer.streamServerIp = IOT.getAssetState(StreamServerId) if streamer.streamServerIp: streamer.streamServerIp = streamer.streamServerIp['state']['value'] logging.info("sending stream to: " + streamer.streamServerIp) else: logging.info("no stream endpoint defined") IOT.subscribe() #starts the bi-directional communication # set current state of the device IOT.send("false", ToggleLISIPAROIId) IOT.send("false", PreviewId) IOT.send("false", RecordId)
def tryConnect(): global IsConnected try: networkCheckCount = 0 while ( Network.isConnected() == False and networkCheckCount < 5 ): # we check a number of times to give the network more time to start up. networkCheckCount = networkCheckCount + 1 sleep(2) if Network.isConnected() == False: logging.error("failed to set up network connection") else: # make certain that the device & it's features are defined in the cloudapp IOT.connect() # IOT.addAsset(TempSensorPin, TempSensorName, "temperature", False, "number", "Secondary") # IOT.addAsset(WaterLevelSensorPin, WaterLevelSensorName, "Water level", False, "number", "Secondary") IOT.addAsset(LightsRelaisPin, LightsRelaisName, "Turn the lights on/off", True, "boolean", "Primary") IOT.addAsset(WaterRelaisPin, WaterRelaisName, "Turn the water flow on/off", True, "boolean", "Primary") IOT.addAsset( ConfigSeasonId, ConfigSeasonName, "Configure the season", True, "{'type': 'string','enum': ['grow', 'flower']}", "Config", ) try: season = IOT.getAssetState(ConfigSeasonId) except: logging.exception("failed to get asset state") LoadConfig( season ) # load the cloud settings into the appbefore closing the http connection. otherwise this call fails. IOT.subscribe() # starts the bi-directional communication sleep( 2 ) # wait 2 seconds until the subscription has succeeded (bit of a hack, better would be to use the callback) IsConnected = True IOT.send( str(LightRelaisState).lower(), LightsRelaisPin ) # provide feedback to the platform of the current state of the light (after startup), this failed while loading config, cause mqtt is not yet set up. IOT.send(str(WaterRelaisState).lower(), WaterRelaisPin) except: logging.exception("failed to set up the connection with the cloud") IsConnected = False
def tryConnect(): global IsConnected try: networkCheckCount = 0 while Network.isConnected( ) == False and networkCheckCount < 5: # we check a number of times to give the network more time to start up. networkCheckCount = networkCheckCount + 1 sleep(2) if Network.isConnected() == False: logging.error("failed to set up network connection") else: #make certain that the device & it's features are defined in the cloudapp IOT.connect() #IOT.addAsset(TempSensorPin, TempSensorName, "temperature", False, "number", "Secondary") #IOT.addAsset(WaterLevelSensorPin, WaterLevelSensorName, "Water level", False, "number", "Secondary") IOT.addAsset(LightsRelaisPin, LightsRelaisName, "Turn the lights on/off", True, "boolean", "Primary") IOT.addAsset(WaterRelaisPin, WaterRelaisName, "Turn the water flow on/off", True, "boolean", "Primary") IOT.addAsset(ConfigSeasonId, ConfigSeasonName, "Configure the season", True, "{'type': 'string','enum': ['grow', 'flower']}", 'Config') try: season = IOT.getAssetState(ConfigSeasonId) except: logging.exception('failed to get asset state') LoadConfig( season ) # load the cloud settings into the appbefore closing the http connection. otherwise this call fails. IOT.subscribe() #starts the bi-directional communication sleep( 2 ) # wait 2 seconds until the subscription has succeeded (bit of a hack, better would be to use the callback) IsConnected = True IOT.send( str(LightRelaisState).lower(), LightsRelaisPin ) # provide feedback to the platform of the current state of the light (after startup), this failed while loading config, cause mqtt is not yet set up. IOT.send(str(WaterRelaisState).lower(), WaterRelaisPin) except: logging.exception("failed to set up the connection with the cloud") IsConnected = False
def setupCloud(): IOT.on_message = on_message #make certain that the device & it's features are defined in the cloudapp IOT.connect() if hasLISIPAROI: IOT.addAsset(ToggleLISIPAROIId, "LISIPAROI", "Control the light on the camera", False, "boolean") IOT.addAsset(PreviewId, "Preview", "Show/close a preview on the monitor that is connected to the RPI", True, "boolean") IOT.addAsset(RecordId, "Record", "Start/stop recording the video stream on sd-card", True, "boolean") IOT.addAsset(PictureId, "Picture", "take a picture (max resoution) and store on sd-card", True, "boolean") IOT.addAsset(StreamServerId, "Stream server", "set the ip address of the server that manages the video", True, "string") # get any previously defined settings streamer.streamServerIp = IOT.getAssetState(StreamServerId) if streamer.streamServerIp: streamer.streamServerIp = streamer.streamServerIp['state']['value'] logging.info("sending stream to: " + streamer.streamServerIp) else: logging.info("no stream endpoint defined") IOT.subscribe() #starts the bi-directional communication # set current state of the device IOT.send("false", ToggleLISIPAROIId) IOT.send("false", PreviewId) IOT.send("false", RecordId)