iot-root / garden-of-eden

Truly own that which is yours!
GNU General Public License v3.0
22 stars 6 forks source link

How to get the pump api to work? #47

Closed ammaratef45 closed 7 months ago

ammaratef45 commented 8 months ago

When I use curl <ip>/pump/stats I get the error below

192.168.0.241 - - [16/Oct/2023 02:15:11] "GET /pump/stats HTTP/1.1" 500 -
2023-10-16 02:15:11,886 - INFO - INA219 192.168.0.241 - - [16/Oct/2023 02:15:11] "GET /pump/stats HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/flask_cors/extension.py", line 176, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/flask_cors/extension.py", line 176, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ammarhussein/gardyn-of-eden/app/sensors/pump/routes.py", line 35, in get_pump_data
    data = fetch_ina219_data()
  File "/home/ammarhussein/gardyn-of-eden/app/sensors/pump/pump_power.py", line 8, in fetch_ina219_data
    ina = INA219(SHUNT_OHMS)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/ina219.py", line 116, in __init__
    self._i2c = I2C.get_i2c_device(address=address, busnum=busnum)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/Adafruit_GPIO/I2C.py", line 64, in get_i2c_device
    return Device(address, busnum, i2c_interface, **kwargs)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/Adafruit_GPIO/I2C.py", line 97, in __init__
    self._bus = Adafruit_PureIO.smbus.SMBus(busnum)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/Adafruit_PureIO/smbus.py", line 114, in __init__
    self.open(bus)
  File "/home/ammarhussein/.local/lib/python3.9/site-packages/Adafruit_PureIO/smbus.py", line 140, in open
    self._device = open(f"/dev/i2c-{bus}", "r+b", buffering=0)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-1'

Note: I don't have a pump connected to the device, I want to connect it to some other device that imitates the pump for testing purposes - see https://github.com/ammaratef45/hydroponics-garden/issues/21

iot-root commented 8 months ago

So you want to simulate the pump, I would just comment out the device code and return a success message.

could you clarify the hardware setup? Are you using the gardyn hat?