Hi Marcus,

Tried your code, needed a colon at the end of 

def __init__ (connection)

but now I get

Traceback (most recent call last):
  File "./pyowfs_test3.py", line 22, in <module>
    room = LivingRoom (connection)
TypeError: __init__() takes exactly 1 argument (2 given)

and I have no idea what to do about that, my Python skills do not extend
that far.

Regards

Mick


On Tue, 2010-04-06 at 23:12 +0200, Marcus Priesch wrote:
> Hi mick,
> 
> congratulations at the first place !!!
> 
> Am Dienstag, den 06.04.2010, 21:15 +0100 schrieb Mick Sulley:
> > Hi,
> > 
> > Thanks to the help from Marcus and Pascal I am now able to read sensors
> > on my network.  Now the next question - 
> > 
> > I can run
> > 
> > >>> root = Connection ("/dev/ttyD1")
> > >>> s = root.find (type="DS18S20")[0]
> > >>> print s
> > <Sensor /10.0D54A9010800/ - DS18S20>
> > >>> s.get("temperature")
> > '      19.125'
> > 
> > and I read the temperature, but how can I read the temperature of a
> > specific sensor?  I get an error if I use 
> > 
> > >>> s = root.find (id="OD54A9010800")
> 
> returns an array with sensors ...
> 
> > >>> s.get("temperature")
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in <module>
> > AttributeError: 'list' object has no attribute 'get'
> 
> you forgot to access the first element of the array [0] - as you did
> above also ... 
> 
> but instead of using the index and doing the find everytime you access
> the sensor's temperature you could use some classes instead:
> 
> class Sensor (object) :
>     id = None
>     def __init__ (connection)
>         self.conn   = connection
>         self.sensor = connection.find (id = self.id)[0]
> 
> class TempSensor (Sensor) :
>     def temp (self) : 
>         return float (self.sensor.get ("temperature"))
> 
> class LivingRoom (TempSensor) :
>     id = "OD54A9010800"
> 
> connection = Connection ("/dev/ttyD1")
>     
> room = LivingRoom (connection)
> print room.temp ()
> 
> you could furthermore use the @property decorator on "temp" so that
> "TempSensor" becomes:
> 
> class TempSensor (Sensor) :
>     @property
>     def temp (self) : 
>         return float (self.sensor.get ("temperature"))
> 
> then you can access the temp as any other attribute and it gets fetched
> in the background automatically ... like:
> 
> print room.temp
> 
> well, hopefully i have no typo in here ... ;)
> 
> have fun,
> marcus.
> 
> 
> 
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Owfs-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/owfs-developers



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to