• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 2 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
v5 thermostat

Thermostat v5
(09/02/2023, 18:25)verito Ha scritto:
(04/09/2022, 20:02)Paolo Proietti Ha scritto:
(24/01/2022, 09:38)verito Ha scritto: Ciao a tutti.



Ritorno nel forum perche' ho acquistato un sensore DS18B20 che mi e' arivato in questi giorniu ed ho provato appena potuto.




Lo ho collegato al GPIO4 (PIN 7) ed ho provato con un programmino di test: il sensore sembra funzionare e riesco a leggere il valore di temperatura.




Ho quindi modificato i valori del file thermostat_settings.json in



      "sensTemp": 4,



       "sensPin": 7,




(in realta' ho fato anche prove con altri valori ma con glis tessi risultati) ed ottengo il seguente output



Codice:
~/thermostat_v5 $ sudo python3 thermostat.py




[INFO  ] [Logger      ] Record log in /root/.kivy/logs/kivy_22-01-24_13.txt


[INFO  ] [Kivy        ] v2.0.0


[INFO  ] [Kivy        ] Installed at "/usr/local/lib/python3.9/dist-packages/kivy/__init__.py"


[INFO  ] [Python      ] v3.9.2 (default, Mar 12 2021, 04:06:34)


[GCC 10.2.1 20210110]


[INFO  ] [Python      ] Interpreter at "/usr/bin/python3"


[INFO  ] [Factory    ] 186 symbols loaded


[INFO  ] [Image      ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)


[INFO  ] [Text        ] Provider: sdl2(['text_pango'] ignored)


[INFO  ] [Window      ] Provider: sdl2(['window_egl_rpi'] ignored)


[INFO  ] [GL          ] Using the "OpenGL" graphics system


[INFO  ] [GL          ] Backend used <gl>


[INFO  ] [GL          ] OpenGL version <b'3.1 Mesa 20.3.5'>


[INFO  ] [GL          ] OpenGL vendor <b'Mesa/X.org'>


[INFO  ] [GL          ] OpenGL renderer <b'llvmpipe (LLVM 11.0.1, 128 bits)'>


[INFO  ] [GL          ] OpenGL parsed version: 3, 1


[INFO  ] [GL          ] Shading version <b'1.40'>


[INFO  ] [GL          ] Texture max size <16384>


[INFO  ] [GL          ] Texture max units <32>


[INFO  ] [Window      ] auto add sdl2 input provider


[INFO  ] [Window      ] virtual keyboard not allowed, single mode, not docked


tempsensor W1 OFF


tempsensor BMP280 OFF


Unexpected error: <class 'KeyError'>


Traceback (most recent call last):


  File "/home/pi/thermostat_v5/thermostat.py", line 2683, in <module>


    main()


  File "/home/pi/thermostat_v5/thermostat.py", line 2678, in main


    thermostatApp().run()


  File "/usr/local/lib/python3.9/dist-packages/kivy/app.py", line 950, in run


    runTouchApp()


  File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 582, in runTouchApp


    EventLoop.mainloop()


  File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 347, in mainloop


    self.idle()


  File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 387, in idle


    Clock.tick()


  File "/usr/local/lib/python3.9/dist-packages/kivy/clock.py", line 733, in tick


    self.post_idle(ts, self.idle())


  File "/usr/local/lib/python3.9/dist-packages/kivy/clock.py", line 776, in post_idle

    self._process_events()


  File "kivy/_clock.pyx", line 616, in kivy._clock.CyClockBase._process_events


  File "kivy/_clock.pyx", line 649, in kivy._clock.CyClockBase._process_events


  File "kivy/_clock.pyx", line 645, in kivy._clock.CyClockBase._process_events


  File "kivy/_clock.pyx", line 218, in kivy._clock.ClockEvent.tick


  File "/home/pi/thermostat_v5/thermostat.py", line 497, in check_sensor_temp


    rawTemp = round(tempSensor.get_temperature(sensorUnits),1)


NameError: name 'sensorUnits' is not defined


/usr/local/lib/python3.9/dist-packages/cherrypy/process/wspbus.py:254: RuntimeWarning: The main thread is exiting, but the Bus is in the states.STARTED state; shutting it down automatically now. You must either call bus.block() after start(), or call bus.exit() before the main thread exits.


  warnings.warn(


da cui si vede che il sensore sembra non essere rilevato ("tempsensor W1 OFF") e di conseguenza si ha l'errore del codice.



Mi sembra anche che i campi "sensTemp" e "sensPin" del file json di setting non siano documentati nel manuale, quindi non sono sicuro di aver correttamente settato i valori.




Quale puo' essere il problema considerando che il sensore funziona se testato con altro codice (minimo e di base)?


Anche qui ho trovato una soluzione "empirica" che però va:



Devi aggiungere al codice di thermostat.py ed esattamente nella sezione dove viene testato quale sensore hai 



la parte che ho messo in grassetto; soluzione strana ma solo così il sensore viene visto!



### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO


    GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor


    tempSensor = W1ThermSensor()


    sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    print ("tempsensor W1 ON")


except:


    import FakeRPi.GPIO as GPIO


    print ("tempsensor W1 OFF")


try:


    from lib.bme280.BME280 import *


    sensor = BME280(t_mode=BME280_OSAMPLE_8, p_mode=BME280_OSAMPLE_8, h_mode=BME280_OSAMPLE_8)


    tempSensor = "bmp280"


    print ("tempsensor BMP280 ON")


except:


    print ("tempsensor BMP280 OFF")




Ciao



Riprendo il mio post dopo molto tempo perche' non ho avuto la possibilita' di mettere nuovamente mano alla installazione che stavo facendo.



Ringrazio Paolo per la risposta data; pero' con il suo suggerimento ancora non funziona.



Ho invece risolto modificando




Codice:
### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO


    GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor


    tempSensor = W1ThermSensor()


    sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    print ("tempsensor W1 ON")


except:



in




Codice:
### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO#GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor, Unit


    tempSensor = W1ThermSensor()


    ## sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    sensorUnits = Unit.DEGREES_C if tempScale == "metric" else Unit.DEGREES_F


    print ("tempsensor W1 ON")


except:




dove la riga commentata e' quella del file originale e  la modifica e' la riga subito successiva relativa alla inizializzazione dell'oggetto sensorUnits.





Adesso sto provando a modificare i caratteri e i colori di alcune schermate per adattarli ad uno schermo piu' piccolo da 3,5''. Non avendo alcuna esperienza con kivi pero' ho molte difficolta'.

(26/01/2023, 12:04)beps2 Ha scritto: Ciao a tutti,

Abbandono ogni speranza.

Grazie lo stesso ?

Io ho installato i file originali in una distribuzione recente seguendo la procedura descritta nel manuale con l'unica differenza che ho sostituto i comandi della sezione 5.3 sull'installazione di Kivy con questi:
------------------------------------------------
sudo apt update
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
  pkg-config libgl1-mesa-dev libgles2-mesa-dev \
  python-setuptools libgstreamer1.0-dev git-core \
  gstreamer1.0-plugins-{bad,base,good,ugly} \
  gstreamer1.0-{omx,alsa} python-dev libmtdev-dev \
  xclip xsel libjpeg-dev

python3 -m pip install --upgrade --user pip setuptools

python3 -m pip install --upgrade --user Cython==0.29.10 pillow

sudo pip3 install kivy

sudo pip3 install websocket
------------------------------------------------

Con queste modifiche l'applicazione si e' avviata.
Ho dovuto solo modificare una riga del codice python per fare rilevare il sensore di temperatura DS18B20 che e' l'unico a mia disposizione. Con queste modifiche tutto al momento sta funzionando.


Ciao e grazie per la risposta.

Nei prossimi giorni proverò sicuramente a fare la procedura con le modifiche che mi hai indicato.

Ti aggiorno.

GRAZIE ANCORA ?
Risposta
(19/12/2021, 20:35)Paolo Proietti Ha scritto: Ciao, tempo fa, prima del collasso del forum e quindi della perdita di molti messaggi, avevo scritto delle modifiche per poter utilizzare il servizio Openweathermap al posto di Darksky.
Scritte sicuramente in maniera pedestre però funzionano  Big Grin

Io ve le allego di nuovo, magari possono essere utili ai mitici creatori di Thermostat per implementare al meglio il servizio meteo
n.b.: allego anche delle nuove icone perché Openweather usa dei nomi differenti e alcune altre.

Sempre grazie ad Athos and team per il gran lavoro svolto.  Heart

Paolo

Ciao ho provato a usare il servizio openweather con i tuoi allegati e ricevuto la appkey ma non riesco a farlo funzionare.
non so forse mi manca qualche passaggio. ti ringrazio per la disponibilità.
Risposta
Ciao, nel frattempo alcune cose sono cambiate in Openweathermap... infatti anche io ho dovuto fare modifiche alle mie modifiche! Big Grin

Domani le posto così puoi verificare e modificare di conseguenza.

Paolo
Risposta
(24/11/2023, 20:05)Paolo Proietti Ha scritto: Ciao, nel frattempo alcune cose sono cambiate in Openweathermap... infatti anche io ho dovuto fare modifiche alle mie modifiche! Big Grin

Domani le posto così puoi verificare e modificare di conseguenza.

Paolo

Rispondo a me stesso e a te: in effetti non so se stai usando la nuova API 3.0 ma in effetti con quella neanche a me funzionava... ti allego le mie modifiche qui e vedi se ti corrispondono, la API key anche se per la versione 3.0 funziona anche per la 2.5.

Paolo


Allegati
.txt   modifiche_newmeteo2.txt (Dimensione: 9.62 KB / Download: 11)
Risposta
(25/11/2023, 09:25)Paolo Proietti Ha scritto:
(24/11/2023, 20:05)Paolo Proietti Ha scritto: Ciao, nel frattempo alcune cose sono cambiate in Openweathermap... infatti anche io ho dovuto fare modifiche alle mie modifiche! Big Grin

Domani le posto così puoi verificare e modificare di conseguenza.

Paolo

Rispondo a me stesso e a te: in effetti non so se stai usando la nuova API 3.0 ma in effetti con quella neanche a me funzionava... ti allego le mie modifiche qui e vedi se ti corrispondono, la API key anche se per la versione 3.0 funziona anche per la 2.5.

Paolo
Risposta
  


Vai al forum:


Navigazione: 2 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect