I don’t think that the problem is in pyownet, but of course, since I’m the author of that package I’m biased. (In Neapolitan language there is a saying: "Ogne scarrafone è bello a mamma soja”)
'pyownet.protocol.ConnError: [Errno 111] Connection refused’ usually means that there is no ‘owserver’ listening al port 4304, or, less likely, that there is a firewall preventing the python process to access port 4304. Since you installed also ow-shell, just issue an “owdir” command before calling the python program, just to check if observer is listening and the sensors are there. The python code could also be improved a little bit, shortly I will post a gist with some corrections. Stefano > On 16 May 2020, at 01:59, Greg Pronko <g...@l2industries.com> wrote: > > Hi All, > > I am new to the mailing list and am hoping someone out there might be able to > help us. We are currently working on a set of devices for monitoring > endangered animal habitats and we need to try to read multiple 1wire temp > sensor readings via RPI3. Specifically I am hoping to find someone with > experience using OWFS on the Balena.io <http://balena.io/> platform and > Docker templates. I am looking for an example of OWFS measuring 1wire > thermocouples via i2c hat running on Balena.io <http://balena.io/> via a > Dockerfile? The key here is to get it to work on Balena via a > Dockerfile.template with i2c enabled as that is how we will manage fleets of > these devices. > > For those of you who aren’t familiar with Balena.io <http://balena.io/> it > used to be called Resin.io <http://resin.io/> until a few years ago. Balena > is a great fleet management and deployment platform for managing multiple IOT > devices. We use it for many RPI implementations. I highly recommend taking a > few hours to learn how to deploy a device on their platform as once you start > using it you won’t go back. But my biggest hope is for one of you experts at > OWFS to deploy OWFS via Balena onto a RPI3 with an i2c 1-wire hat so that you > can share a solution on how to properly build a Dockerfile and python file > for it that works. I have been trying to figure it out for days and getting > nowhere. I am trying to use pyownet which might be part of my problem but I > don’t have to use that if you can think of a better way to do this. I would > also like to stick to Python3 as Balena is dropping support for Python2 soon. > > I am sure Balena will be adopted by folks more and more moving forward so > solving this would be a great investment in furthering the 1wire and owfs > platform to be deployed in fleets. In this situation, it is also going > towards a good cause of helping endangered animals. > > Below is my dockerfile & python code which I just can’t get to work properly. > I continue to get this error: pyownet.protocol.ConnError: [Errno 111] > Connection refused > > This is the i2c device I am using: > https://www.abelectronics.co.uk/kb/article/3/owfs-with-i2c-support-on-raspberry-pi > > <https://www.abelectronics.co.uk/kb/article/3/owfs-with-i2c-support-on-raspberry-pi> > > Thanks so much, > > Greg > > ---------------------------------------- > DOCKERFILE CODE BELOW > ---------------------------------------- > FROM balenalib/raspberrypi3-python:3.7.6 > > ENV DEBIAN_FRONTEND=noninteractive > ENV DEBCONF_NOWARNINGS yes > > RUN apt-get update -y; \ > apt-get upgrade -y; \ > apt-get clean all > > RUN sudo apt-get update -y;\ > apt-get install -qy apt-utils \ > python3-pip \ > python3 \ > libtool \ > python3-dev \ > python3-smbus\ > libtool \ > rpi-update \ > raspi-config \ > owfs \ > owserver \ > ow-shell \ > python-ow \ > python3-rpi.gpio \ > && apt-get clean && rm -rf /var/lib/apt/lists/* > > RUN sudo pip3 install setuptools --upgrade > > RUN sudo pip3 install --upgrade pip > > RUN sudo pip3 install pyownet > > RUN sed -i '20i\server: device=/dev/i2c-1' /etc/owfs.conf > RUN sed -i 's/^server: FAKE = DS18S20,DS2405/#server: FAKE = DS18S20,DS2405/' > /etc/owfs.conf > RUN sed -i 's/^ftp: port = 2120/#ftp: port = 2120/' /etc/owfs.conf > > COPY . ./ > > ENV INITSYSTEM on > > CMD modprobe i2c-dev && owserver -d /dev/i2c- > CMD ["python3", "1wire_temp_test.py"] > > ---------------------------------------- > PYTHON CODE BELOW > ---------------------------------------- > import time > from pyownet import protocol > > temp_type = 'F' > tc_1_mac = 'FF8AD3641402' ### This is obviously my thermocouple so enter > your own mac address here ### > > owproxy = protocol.proxy(host="localhost", port=4304) > sensor_file_1 = '/28.' + tc_1_mac + '/temperature' > > def main(): > while True: > try: > thetext = > owproxy.read(sensor_file_1) > heater_temp_1 = > round((float(thetext[2:])*(9/5)+32),2) > print ('SENSOR #1 =', > heater_temp_1, temp_type) > except IOError: > print ('SENSOR #1 READ FAIL') > time.sleep(10) > > if __name__ == '__main__': > main() > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > <mailto:Owfs-developers@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/owfs-developers > <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