Is there a reason for using ow (which is a SWIG binding of the owlib C API) and not ownet (which is a pure python implementation of the ownet protocol)?
If you do not have to access the bus master directly from python but you have an owserver running, I would suggest using instead ownet, or even better (shameless self promotion) my own pyownet. pyownet is on pypi, so to install it you can just # pip install pyownet or if you prefer the source you can get it from https://github.com/miccoli/pyownet/releases/latest and run # python setup.py install If you have an owserver running on localhost minimal instructions are >>> from pyownet.protocol import OwnetProxy >>> proxy = OwnetProxy() >>> for i in proxy.dir(): ... print i ... /26.64A340010000/ /26.2BA640010000/ /01.984087150000/ >>> proxy.read('/26.64A340010000/temperature') ' 20.6562' >>> The proxy object acts as (you guess) a proxy for the owserver, with methods that implement the following ownet messages: dir ping present read write Docs are still to be written but >>> help(OwnetProxy) is a good starting point. Stefano On 28 Mar 2014, at 16:38, Colin Reese <colin.re...@gmail.com> wrote: > Hell all, > > I've run into an interesting error that results in sensors disappearing > altogether, resulting in the error: > > File "/usr/lib/python2.7/dist-packages/ow/__init__.py", line 271, in > __init__ > self.useCache( self._useCache ) > File "/usr/lib/python2.7/dist-packages/ow/__init__.py", line 417, in > useCache > for n in owfs_get( self._usePath ).split( ',' ) ] ) > File "/usr/lib/python2.7/dist-packages/ow/__init__.py", line 159, in _get > raise exUnknownSensor(path) > ow.exUnknownSensor: '/' > > > Sure enough, my 1Wire directory is empty except the bus. Killing owfs, > owserver and owhttpd and attempting to restart using the same commands I > do at startup yields: > > DEFAULT: owlib.c:(56) No valid 1-wire buses found > > After rebooting, everything is fine again, until I run the questionable > script. So the first question is how to reinitialize after fail without > rebooting. The next is how to not have it fail in the first place. I see > mention here, but no solution: > http://owfs-developers.1086194.n5.nabble.com/Bug-in-re-init-ing-Python-ow-module-td4442.html > > > What I'm using in owpython is pretty basic, and trimming out other code > is really: > > import ow > ow.init('localhost:4304') > for sensor in ow.Sensor('/').sensorList(): > # do stuff > > Interestingly, if I have this in a function like: > > def myowfsfun(args): > ow.init('localhost:4304') > for sensor in ow.Sensor('/').sensorList(): > #do stuff > > if __name__ == "__main__": > myowfsfun(args) > > > I can run the function via the script file until the cows come home. If > I import it into another script, e.g.: > > import owfslib > > owfslib.myowfsfun(args) > > and then run that script, it barfs immediately. > > Ideas? > > Thanks, > Colin > > ------------------------------------------------------------------------------ > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/owfs-developers
------------------------------------------------------------------------------
_______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers