Ok, after becoming thoroughly annoyed with owpython, I wrote around pyownet. See the first three functions/classes. I did not install pyownet, but located it in a subdirectory. I will add sufficient attribution when I get a minute. Let me know what you think.
https://github.com/iinnovations/iicontrollibs/blob/master/cupid/owfslib.py Colin On 3/28/2014 10:57, Stefano Miccoli wrote: > 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 > <mailto: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 > ------------------------------------------------------------------------------ _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers