Lämpötilojen loggaamista Xiaomin BLE-antureilla (med Raspi, Influxdb, Grafana)

  • Keskustelun aloittaja Keskustelun aloittaja Grazer
  • Aloitettu Aloitettu

Grazer

Make ATK Great Again
Liittynyt
30.10.2016
Viestejä
1 829
Aloitetaanpa tällainen ketju. Itse tilailin taannoin Ebaystä halpoja Xiaomin BLE-lämpötila-antureita kun katselin että niillä saa suht helposti tehtyä lämpötilaloggerin. Maksavat kiinasta tilattuna noin viisi euroa kappale. Nykyään tietysti tulee arvonlisävero tuohon päälle. Hobbyhallista näkyy saavan noita ainakin tällä erää 6,95EUR/kpl


Kyse siis näistä:
2068379_41274788_1_mboW.jpg



Nuo saa tuollaisenaankin lähettämään tietoa, mutta itse ajoin alemman linkin mukaisesti customfirmwaren, joka muuttaa anturien toiminnan advertisement-tilaan. Tämä kuuleman mukaan säästää anturien paristoja. Firmis on helppo päivittää noihin puhelimen bluetoothilla alemmasta linkistä löytyvällä selaimessa toimivalla over-the-air-päivitysohjelmalla. Meni ainakin heittämällä Xiaomi Redmi Note 9T:llä ja Chromella.


Kannattaa samalla vaihtaa advertisement typeksi "atc1441" ja itse myös kasvatin advertising intervalin 10 000 millisekuntiin (eli 10 sekuntiin). Desimaalipiste pitää ottaa pois kentästä, siihen ei ilmeisesti sovi kuin viisi numeroa.




Antureita kannattaa ottaa käyttöön yksi kerrallaan ja kirjoittaa anturin MAC-osoitteen neljä viimeistä numeroa anturin pohjaan, jotta ne erottaa helposti myöhemminkin.


Custom-firmiksellä kosteusmittauksen kalibrointi menee jostain syystä pieleen. Itse en lähtenyt tarkasti noita uudestaan kalibroimaan, vaan yhdellä vakiofirmiksellä varustetulla anturilla vertailin, paljonko noihin tuli heittoa. Keskimäärin ATC-firmiksellä näyttää 6 %-yksikköä liian pientä kosteusprosenttia. Tuon offsetin voi sitten määritellä sensors.ini-tiedostoon


Eli tarvitaan vain linuxilla ja bluetoothilla varustettu tietokone, esim. Raspberry Pi. Raspberry Pi Zeroa/Zero W:tä käyttäessä on huomioitava, että kyseessä on ARMv6-laite. Grafanasta on olemassa erilliset ARMv6- ja ARMv7-versiot (Raspi 3- ja 4-sarjat), joten pitää katsoa, kumman asentaa. Väärää versiota oleva Grafana server asentuu kyllä Raspi Zeroon, mutta ei suostu käynnistymään


Työjärjestys on jotakuinkin seuraava:


-Asenna Raspbian. SSH:n saa aktivoitumaan ekalla bootilla, kun laittaa boot-osiolle tyhjän tiedoston, jonka nimi on "ssh"

-Mikäli haluaa Raspin suoraan wifi-verkkoon ekalla bootilla, on boot-osiolle luotava tiedosto "wpa_supplicant.conf", jonka sisällöksi

Koodi:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

country=<Insert 2 letter ISO 3166-1 country code here>

update_config=1


network={

ssid="<Name of your wireless LAN>"

psk="<Password for your wireless LAN>"

}

Country-koodiksi siis FI ja ssid/psk-kohtiin lainausmerkkien sisään oman wifi-verkon ssid ja salausavain


Nyt pitäisi ekalla bootilla olla ssh aktivoituna ja wifin tapauksessa Raspi verkkoon yhdistettynä. Raspi hakee IP-osoitetta DHCP:llä ja sen voi etsiä verkosta esim. Angry IP Scannerilla (vaatii Javan asentamisen)


Mikäli Raspille haluaa määrittää kiinteän IP-osoitteen, se onnistuu seuraavan ohjeen mukaan. Verkkokortin tunnus sen mukaan, käytätkö langallista vai langaton verkkoa Raspin liittämiseen. Ifconfigilla pystyy tarkastamaan verkkokortin tunnuksen



Salasana kannattaa vaihtaa ja päivitellä Raspi seuraavaksi.


Sitten voi asennella MiTemperature2-Github-sivun ohjeen mukaan tarvittavat softat. Itse asensin myös Gitin, jolla saa tuon MiTemperature2-paketin ladattua sekä screenin, jossa tuota loggeria voi myöhemmin ajaa, jos ei sitä laita automaattisesti käynnistyväksi.


Kun nuo on asenneltu, voi kokeilla komennolla
Koodi:
sudo hcitool lescan --duplicate
että sensorit löytyvät kantamalta. Maksimikantoaluetta ei tiedä kuin kokeilemalla ja siihen vaikuttaa välissä olevat esteet ja niiden materiaali. Muutamien metrin päästä kantaa kyllä seinien läpi pakastimen/jääkaapinkin sisältä signaali. Jos anturit löytyivät, niin voi kokeilla tiedostoon logittamista

Koodi:
sudo ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh

Kansioon pitäisi olla ilmestynyt data.txt-tiedosto, josta löytyy mittaustuloksia. Komento hakee kaikki kantamalla olevien ATC-firmiksellä olevien antureiden tiedot. Jos toimii, niin seuraavaksi voi kasata sensors.ini-tiedoston. Sen sisältö on seuraavankaltainen. Kannattaa alusta pyyhkiä esimerkkitekstit pois

Koodi:
[A4:C1:38:C6:09:61]

sensorname=Storage_freezer

humidityOffset=6

topic=Storage/freezer


[A4:C1:38:78:68:41]

sensorname=Garage_refridgerator

humidityOffset=6

topic=Garage/refridgerator


[A4:C1:38:E9:09:B0]

sensorname=Kitchen_freezer

humidityOffset=6

topic=Kitchen/freezer


[A4:C1:38:06:A3:4B]

sensorname=Indoor_temp

humidityOffset=6

topic=Indoor/indoor01

Hakasulkeisiin siis kunkin lämpömittarin MAC-osoite, jonka löytää esim. aiemmin kokeillusta data.txt-tiedostosta sekä anturille haluttu nimi. humidityoffset liittyy aiemmin mainittuun customfirmiksen aiheuttamaan näyttämävirheeseen, jota voi tässä korjata. Eli jos anturi näyttää pienempää ilmankosteutta kuin oikeasti on, tähän laitetaan positiivinen luku. Jos näyttää suurempaa lukemaa, laitetaan miinusmerkkinen luku. Topicin-merkitys ei itselle auennut, mutta siihen voi jotain kuvaavaa laittaa. Tämän jälkeen voi kokeilla seuraavalla komennolla, että tiedosto on oikein täytetty.

Koodi:
sudo ./LYWSD03MMC.py --atc --rssi --skipidentical 50 --devicelistfile sensors.ini --onlydevicelist --callback sendToFile.sh

Seuraavaksi voi asennella Influxdb:n ja Grafanan tämän ohjeen mukaisesti sekä luoda influx-tietokannan. Tuossa lisätään softien omat repositoryt, joista nuo ladataan. Raspbianin omissa repoissa softaversiot laahaavat hieman jäljessä

Influxdb:stä on olemassa myös uusi 2-versio, joka löytyy repositorysta nimellä influxdb2

Jos käytät Raspberry Pi Zeroa, älä asenna Grafanaa ohjeen mukaan, vaan tämän sivun ohjeilla

Tuolta pitää siis valita Ubuntu/Debian ARMv6
Koodi:
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana-rpi_8.0.6_armhf.deb
sudo dpkg -i grafana-rpi_8.0.6_armhf.deb

Grafanan pitäisi asennuksen jälkeen aueta selaimella osoitteesta http://<RASPIN IP-OSOITE>:3000
Oletustunnukset ovat admin/admin

Muokkaa seuraavaksi sendToInflux.sh-tiedostoa omia tarpeitasi vastaavaksi
Koodi:
curl -i -u "databaseuser:databasepasswd" -XPOST http://localhost:8086/write?db=temperatures\&precision=s --data-binary "AquaraBluetoothSensors,sensorname=$2 temperature=$3,calibratedHumidity=$4,voltage=$5,rssi=$6 $7"
Muutettavia kohtia ovat tietokannan käyttäjätunnus ja salasana, sekä XPOST-osoitteessa oleva tietokannan nimi. Eli db=TIETOKANTA. Kannattaa data.txt:stä katsoa, että muuttujien numerot ovat oikein.

Koodi:
sensorname,temperature,humidity,voltage,rssi,timestamp Kitchen_refridgerator 6.7 54 2.735 -83 1627232024
$1=selitteet
$2=Anturin nimi
$3=Lämpötila
$4=Kosteusprosentti
$5=Pariston jännite
$6=Signaalinvoimakkuus dBm
$7=Kellonaika UNIX-muodossa

Kun scripti on kohdallaan, voi kokeilla seuraavalla komennolla, tallentuvatko lukemat tietokantaan
Koodi:
sudo ./LYWSD03MMC.py --atc --rssi --influxdb 1 --skipidentical 50 --devicelistfile sensors.ini --onlydevicelist --callback sendToInflux.sh

Jos scripti toimii, pitäisi ruudulla juosta jotain tämän näköistä
Koodi:
/home/pi/MiTemperature2/sendToInflux.sh sensorname,temperature,humidity,voltage,rssi,timestamp Indoor_temp 23.6 62 3.002 -52 1627649170
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 1f1d4e54-f134-11eb-8c69-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.6.4
X-Request-Id: 1f1d4e54-f134-11eb-8c69-000000000000
Date: Fri, 30 Jul 2021 12:46:12 GMT

BLE packet: A4:C1:38:06:A3:4B 00 1110161a18a4c13806a34b00ec38580bb409 -43
Temperature:  23.6
Humidity:  56
Battery voltage: 2.996 V
RSSI: -43 dBm
Battery: 88 %
Humidity calibrated (offset calibration):  62

Grafanasta pitäisi nyt add dashboard ja add panel -valinnoilla olla mahdollista lisätä halutun anturin ja mittaustiedon käppyrä valitsemalla:
Koodi:
FROM default AquaraBluetoothsensors WHERE sensorname = "HALUTTU SENSORI"
SELECT field(ESIM. TEMPERATURE)
GROUP BY time(HALUTTU PIIRTOTARKKUUS)

Itse en ole mikään ekspertti näiden suhteen tai koodauksen suhteen ylipäänsä, eli parannusehdotuksia tai lisäyksiä otetaan vastaan. Ja Influxdb:n downsamplingista kuulisin mielelläni, jos siitä joku tietää enemmän. Eli miten toteuttaa sellainen, että vaikkapa kahden vuorokauden ajan tietokannassa pysyy kaikki tallennettu data. Sitten kahden vuorokauden jälkeen mittauksista lasketaan tunnin tarkkuudella oleva keskiarvo, joka tallennetaan tietokantaan pysyvästi ja tuo kahta vuorokautta vanhempi raakadata poistetaan.
 
Viimeksi muokattu:
Pari Grafana-screenshottia



Muutamista paikoista on saanut lukea väitteitä, että Raspi Zero W:n bluetoothin kantama olisi merkittävästi parempi kuin Raspi 3:n tai Raspi 4:n. En ole aivan vakuuttunut, että näin on. Oman havainnon mukaan asiaan vaikuttaa Raspin asento ja yleisesti liikenne 2,4 GHz taajuudella. Zero-mallia on helpompi pyöritellä ja asetella optimaalisesti. Itsellä testissä sekä Raspi Zero W että Raspi 3B+. Nuo ovat nyt vierekkäin kirjahyllyn päällä jotakuinkin anturiverkon keskellä. Zeron olen havainnut saavan parhaat signaalit, kun sen pitää pystyssä muistikorttipaikka kattoa kohti. Pitää yrittää asetella Raspi 3:stakin eri asentoihin, että mikä siinä on optimaalisin.
 
Viimeksi muokattu:
@Grazer Kiitoksia hyvästä ja selkeästä ohjeesta!
Itsellä on ollut samanlainen suunnitteilla jo jonkin aikaa, mutta en ole löytänyt oikein sopivia projekteja mistä ottaa mallia, kun oma tietämys aiheesta on hieman rajallinen, ja ideana oli että ottaisin jonkin tällaisen suht simppelin projektin pohjaksi, minkä kautta voisi sitten halutessaan opiskella lisää Raspin kanssa värkkäämistä. Tämä oli kuitenkin suunnilleen identtinen projekti kuin mitä itsellä on ollut mielessä joten sopii pohjaksi hyvin. Tarvisin kuitenkin vähän neuvoa päästäkseni eteenpäin, joten ehkä täältä löytyis jeesiä...

Aihiona Pi Zero W johon olen nyt masennellut viimeisimmän Raspberry OS 32 bittisen "full" version, tarkoituksena nyt ensinalkuun lukea yhtä LYWSD03MMC anturia, ja jahka tuon saa toimimaan niin sitten muutama anturi lisää. Influx ei asentunut ohjeen mukaan, mutta sain kuitenkin influxin(toisella ohjeella) ja grafanan asennettua ja kumpikin toimii (jollakin tapaa), sekä saan luettua shellissä dataa anturilta, joten tuskin mitään suurempaa on väärin, mutta varmaan jokin pieni asetus puuttuu ohjeesta tai on jäänyt muuten tekemättä.


Ensimmäinen ongelma on että en saa tuolla sudo -kommennolla ajettua tuota LYWSD03MMC.py skriptiä, tai miksikä tuota nyt oikeastaan kutsutaankaan, vaan tuolla tulee ainoastaan erroria "Command not found"

Koodi:
sudo ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh
-komento ei toimi, antaa vaan errorin että command not found, mutta vastaavasti
Koodi:
python ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh
-komento toimii ja saan data.txt tiedostoon luettua anturin dataa järkevillä arvoilla.

Eli mistä voisi mahdollisesti johtua, että tuo sudo -komento ei toimi tässä yhteydessä?
Onko mulla jokin "rekisteröinti" tekemättä että systeemi tajuais käyttää byyttonia tuon tiedoston ajamiseen tms?


Toinen ongelma saattaa liittyä edelliseen, ja ilmenee kun yrittää kirjoittaa influxiin dataa, ja se ei ilmeisesti mene perille vaan näytää tältä:
Koodi:
python LYWSD03MMC.py --atc --rssi --influxdb 1 --skipidentical 50 --devicelistfile sensors.ini --onlydevicelist --callback sendToInflux.sh

---------------------------------------------
MiTemperature2 / ATC Thermometer version 5.0
---------------------------------------------


Please read README.md in this folder. Latest version is available at https://github.com/JsBergbau/MiTemperature2#readme
This file explains very detailed about the usage and covers everything you need to know as user.


Script started in passive mode
------------------------------
In this mode all devices within reach are read out, unless a devicelistfile and --onlydevicelist is specified.
Also --name Argument is ignored, if you require names, please use --devicelistfile.
In this mode debouncing is not available. Rounding option will round humidity and temperature to one decimal place.
Passive mode usually requires root rights. If you want to use it with normal user rights, 
please execute "sudo setcap cap_net_raw,cap_net_admin+eip $(eval readlink -f `which python3`)"
You have to redo this step if you upgrade your python version.
----------------------------
Power ON bluetooth device 0
Bluetooth device 0 is already enabled
Enable LE scan
scan params: interval=1280.000ms window=1280.000ms own_bdaddr=public whitelist=no
socket filter set to ptype=HCI_EVENT_PKT event=LE_META_EVENT
Listening ...
BLE packet - ATC1441: A4:C1:38:92:7B:B2 00 1110161a18a4c138927bb200d63a3b0ac4ee -58
Sensorname: Olohuone
Temperature:  21.4
Humidity:  58
Battery voltage: 2.756 V
RSSI: -58 dBm
Battery: 59 %
Humidity calibrated (offset calibration):  63

/home/pi/MiTemperature2/sendToInflux.sh sensorname,temperature,humidity,voltage,rssi,timestamp Olohuone 21.4 63 2.756 -58 1663703970
/home/pi/MiTemperature2/sendToInflux.sh: line 9: --data-binary: command not found
Data couln't be send to Callback, retrying...
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: c163956e-391e-11ed-803e-b827eb098620
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.8.10
X-Request-Id: c163956e-391e-11ed-803e-b827eb098620
Date: Tue, 20 Sep 2022 19:59:37 GMT

Eli ilmeisesti data luetaan anturilta oikein, mutta se ei saa lähetettyä ko. dataa influxiin. Olisko joku äksessi ongelma, vai onko mulla vaan jotakin väärin tuolla sendToInflux.sh tiedostossa?

Koodi:
line 9: --data-binary: command not found

Olisko jotakin fiksuja ideoita millä saisin nämä futaamaan kunnolla..?
 
Mitä sanoo ls -l tuon LYWSD03MMC.py kohdalla? Onko executable-oikeudet
 
Ensimmäinen ongelma on että en saa tuolla sudo -kommennolla ajettua tuota LYWSD03MMC.py skriptiä, tai miksikä tuota nyt oikeastaan kutsutaankaan, vaan tuolla tulee ainoastaan erroria "Command not found"

Koodi:
sudo ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh
-komento ei toimi, antaa vaan errorin että command not found, mutta vastaavasti
Koodi:
python ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh
-komento toimii ja saan data.txt tiedostoon luettua anturin dataa järkevillä arvoilla.

Eli mistä voisi mahdollisesti johtua, että tuo sudo -komento ei toimi tässä yhteydessä?
Onko mulla jokin "rekisteröinti" tekemättä että systeemi tajuais käyttää byyttonia tuon tiedoston ajamiseen tms?


Olisko jotakin fiksuja ideoita millä saisin nämä futaamaan kunnolla..?
Haiskahtaisi siltä että skriptin ensimmäisellä rivillä ei ole ns. shebang-määritystä eli ensimmäisenä rivinä skriptissä varmaan pitäisi olla jotain tyyliin:
Koodi:
#!/bin/env python
joka kertoo että millä tulkilla tuo skripti pitää suorittaa. Vaihtoehtoina on joko lisätä tuo rivi skriptin alkuun tai ajaa se näin sudolla:
Koodi:
sudo python ./LYWSD03MMC.py --atc --rssi --skipidentical 50  --callback sendToFile.sh

Toinen vaihtoehto joka saattaa estää skriptin ajamisen on että skriptiä ei ole määritelty ajettavaksi tiedostoksi, sen saa taas tehtyä komennolla:
Koodi:
chmod +x ./LYWSD03MMC.py
 
Mitä sanoo ls -l tuon LYWSD03MMC.py kohdalla? Onko executable-oikeudet

Toinen vaihtoehto joka saattaa estää skriptin ajamisen on että skriptiä ei ole määritelty ajettavaksi tiedostoksi, sen saa taas tehtyä komennolla:
Koodi:
chmod +x ./LYWSD03MMC.py

Kiitos, tuosta se varmaan on kiinni!

Nyt kun mainitsitte nuo, niin ko. komennot vaikuttaa tutuilta. Koitin hommaa jollain aiemmalla Raspbian OS:llä ja koitin jollain muulla ohjeella värkätä tuon kanssa ja sain sen toimimaan silloin myös sudo -komennolla ja muistaakseni silloin olin lisännyt tuon chmod komennon. Homma siis silloin toimi tuon LYSWSD03MMC.py kanssa hyvin, mutta kädetin jotakin Grafanan asennuksessa ja en saanut sitä enää toimimaan tai poistettua, joten aloitin homman "puhtaalta pöydältä" jolloin tämä ongelma ilmeni. Testaan jahka kotiudun työmatkalta...
 
Noniin, pitäisi olla executable oikeudet, mutta ei se kyllä oikein tuollakaan lähtenyt. Tuon LYSWSD03MMC.py fileen alussa on kyllä myös Permissionit näkee alta
1664568925720.png

Voiko tuo hakemisto olla jotenkin väärässä paikassa tms? Tai voiko joku olla liian uutta versiota verrattuna johonkin toiseen osioon, ja homma ei siksi pelaa?

Nyt se herjaa sudo -komennolla bluepy -erroria. Python komennolla toimii kuitenkin sendtoFile edelleen. Jos python komennolla toimii, niin tuskin vikaa on tuossa bluepy osuudessa, mutta jotain kummallista kokonaisuudessa on jos sen kerran tuolla sudollakin pitäisi toimia. Eli nytten toimii about näin:

1664570026112.png
1664570119058.png

Python komennolla kuitenkin lukee sensorilta dataa oikein ja kirjoittaa sitä tiedostoon, joten ei sen kait kovin paljoa pitäisi olla väärin. SendToInflux näyttää siis about ao. kuvan mukaiselta luupilta, lukee sensoria edelleen oikein, muttei saa kirjoitettua influxiin. Grafana toimii, mutta en saa sitä yhdistettyä influxin databaseen "Testi", mutta vastaavasti "_internal" databaseen yhdistää. En tiedä johtuuko grafanan ongelma vaan siitä kun "Testi" databasessa ei oo vielä mitään dataa, vai onko influxin puolella väärin jotain, vai eikö tuolla skriptillä(ja ehkä myös Grafanalla?) ole riittävää äksessiä influxiin? Vai onko sendToInflux.sh fileessä joku väärin?
1664572618965.png

En tiedä olisko tuolla lopulta väliä onko se python vai sudo komennolla, jos tuon vaan saa ensin kirjoittamaan tuonne influxiin oikein, ja jos homman saa automaagisesti pyörmään taustalle raspin käynnistyessä. Onko ideoita millä lähtee ratkomaan?
 

Liitteet

  • 1664569981422.png
    1664569981422.png
    100,5 KB · Luettu: 13
Mahtaako tuolla olla vaikutusta, onko nuo python-paketit asennettu sudo pip3... vai pelkästään pip3...

Tarkasta että näkyykö tuo dabase influxissa. Eli shelliin influx, sitten show databases. Pitäisi näkyä _internal ja sitten tuo luomasi database. Katso myös että show users näyttää että käyttäjä on olemassa. Exitillä pääsee pois.

Grafanaan kun lisää tietokantayhteyden, niin siinä lisäysvaiheessa on se save & test. Jos tietokanta on olemassa ja käyttäjäoikeudet oikein, niin tuolla saa tarkastettua tietokantayhteyden, vaikkei siellä dataa olisikaan.

 
Mahtaako tuolla olla vaikutusta, onko nuo python-paketit asennettu sudo pip3... vai pelkästään pip3...

Tarkasta että näkyykö tuo dabase influxissa. Eli shelliin influx, sitten show databases. Pitäisi näkyä _internal ja sitten tuo luomasi database. Katso myös että show users näyttää että käyttäjä on olemassa. Exitillä pääsee pois.

Grafanaan kun lisää tietokantayhteyden, niin siinä lisäysvaiheessa on se save & test. Jos tietokanta on olemassa ja käyttäjäoikeudet oikein, niin tuolla saa tarkastettua tietokantayhteyden, vaikkei siellä dataa olisikaan.

On vaikutusta jos paketti on asennettu tavallisena käyttäjänä. Jos pakettia ei ole asennettu roottina niin root ei löydä sitä. eli "sudo pip3 install bluepy" -tempulla tuon pitäisi korjaantua.
 
Ei ollut merkittävää vaikutusta tuolla sudo pip3 installilla, nyt tulee vaan hiukan erinäköinen virheilmo, suunnilleen samasta asiasta, ks. alla. Mahtaisko tuo MiTemperature2 jotenkin myös "asentaa" härveliin?
Nyt en tehnyt muuta kuin purkasin ladatun .zip fileen tonne MiTemperature2 hakemistoon(onko muuten tuolla hakemistonimellä väliä?). Muutenkin koitin seurailla noita ohjeita sen mukaan mitä pystyi ja ohjeita oli tarjolla. Tuossa MiTemperature -sivulla ei ollut mitään tarkempaa infoa miten & mihin se itse hakemisto pitäis purkaa/asentaa, lähinnä että miten ne oheisfunktiot ja skriptit pitää asennella ja ne asentelin sen mukaan. Influxin asennuksessa piti soveltaa, kun sillä linkatulla ohjeella se ei suoraan onnistunut, kapsahti siihen Step2 ensimmäiseen osaan missä piti key hakea wget -komennolla. Sain jonkun muun sivun ohjeella tuon menemään ja loput tein ohjetta seuraten.

1664620194359.png

Influxiin olen koittanut tehdä useammankin eri databasen, sekä userin, jotka näkyvät kyllä shellin kautta influxissa, mutta ei ole merkittävää vaikutusta asiaan, eli sendToInflux ei saa kirjoitettua eikä Grafana pysty lukea ko. tietokantoja, kun tietokantaa koittaa lisätä Grafanaan niin save & test antaa vaan "error connecting influxDB influxQL", ks. alla. Jos laitan databaseksi _internal, niin sen Grafana löytää. Eli jostain syystä se kyllä löytää ton influxin, mutta ei noita influxin databaseja.
1664620586925.png
 
Ei ollut merkittävää vaikutusta tuolla sudo pip3 installilla, nyt tulee vaan hiukan erinäköinen virheilmo, suunnilleen samasta asiasta, ks. alla. Mahtaisko tuo MiTemperature2 jotenkin myös "asentaa" härveliin?
Nyt en tehnyt muuta kuin purkasin ladatun .zip fileen tonne MiTemperature2 hakemistoon(onko muuten tuolla hakemistonimellä väliä?). Muutenkin koitin seurailla noita ohjeita sen mukaan mitä pystyi ja ohjeita oli tarjolla. Tuossa MiTemperature -sivulla ei ollut mitään tarkempaa infoa miten & mihin se itse hakemisto pitäis purkaa/asentaa, lähinnä että miten ne oheisfunktiot ja skriptit pitää asennella ja ne asentelin sen mukaan. Influxin asennuksessa piti soveltaa, kun sillä linkatulla ohjeella se ei suoraan onnistunut, kapsahti siihen Step2 ensimmäiseen osaan missä piti key hakea wget -komennolla. Sain jonkun muun sivun ohjeella tuon menemään ja loput tein ohjetta seuraten.

1664620194359.png

Influxiin olen koittanut tehdä useammankin eri databasen, sekä userin, jotka näkyvät kyllä shellin kautta influxissa, mutta ei ole merkittävää vaikutusta asiaan, eli sendToInflux ei saa kirjoitettua eikä Grafana pysty lukea ko. tietokantoja, kun tietokantaa koittaa lisätä Grafanaan niin save & test antaa vaan "error connecting influxDB influxQL", ks. alla. Jos laitan databaseksi _internal, niin sen Grafana löytää. Eli jostain syystä se kyllä löytää ton influxin, mutta ei noita influxin databaseja.
1664620586925.png
Tuo virheilmoitushan näyttää että Module not found, eli vieläkin puuttuu paketti, ilmeisesti tällä kertaa nimeltään bluetooth.
 
Jos Influxista tarkastaa että show grants for Testaaja niin sanooko että "database -- privilege -- Testi -- All privileges"?

EDIT: Ja onhan tuo salasana syötetty niin että Influxissa siinä on heittomerkit, mutta scriptissä ja Grafanan tiedoissa ei?
 
Viimeksi muokattu:
Jos Influxista tarkastaa että show grants for Testaaja niin sanooko että "database -- privilege -- Testi -- All privileges"?

EDIT: Ja onhan tuo salasana syötetty niin että Influxissa siinä on heittomerkit, mutta scriptissä ja Grafanan tiedoissa ei?

shellissä influx näyttää käyttäjät ja gränsit oikein. Salasanat on kyllä oikein, olen kokeillut useampaa eri käyttäjää, databasea ja salasanaa, ja koittanut tarkistaa kaikki useampaan kertaan. Sain influxin jotenkin jumiin kun säädin jotakin, enkä saanut sitä enää tokenemaan, joten asensin sen uudelleen. Tällä kertaa tämän ohjeen mukaan, mutta edelleen herjaa samaa Grafanassa ja sendToInfluxilla(mutta nyt toimii myös sudo -komennolla?!). Ks. alla. Jos laitan Grafanassa "Database" = _internal, niin silloin näyttää vihreää ja "datasource is working. 12 measurements found". Eli oletettavasti grafana toimii ja influx toimii, mutta jossain on bitti vinossa, todennäköisesti jotain influxiin liittyen...

Edit: Grafana löysi oikean databasen kun koetin kirjoittaa sinne databaseen shellissä manuaalisesti jotakin samannäköistä dataa. lmeisesti grafana ei löydä tai ymmärrä tyhjää databasea kuitenkaan. Enää tarttis sitten saada toi skripti kirjoittaan dataa influxiin...

1664654481675.png


1664655871792.png
1664655967655.png

Mahtaako tuo sendToInflux.sh file olla ihan OK? Onko ideaa mitä muuta tuossa influxissa voisi olla pielessä?


Tuo virheilmoitushan näyttää että Module not found, eli vieläkin puuttuu paketti, ilmeisesti tällä kertaa nimeltään bluetooth.

OK, mutta eikö tuo ole vähän kummallista kun se kuitenkin python komennolla luki OK? Eikö se vähän viittaisi siihen että ko moduuli on olemassa, mutta jostain syystä tuo sudo ei tajua sitä käyttää?
Enivei, parin bootin ja influxin uudelleenasennuksen jälkeen näyttäisi myös sudo komento toimivan, sekä sendToFile että sendToInflux(antureiden lukemisen osalta), enää siis tarvisi saada influx jotenkin futaamaan...
 
Viimeksi muokattu:
Tuosta scriptistä puuttuu kenoviiva databasen jälkeen. Eli pitää olla ...TestiDB\&precision=s
 
Itse olen pakastimeen, jääkaappiin ja uloslaitettuun anturiin kolvannut litium-sormiparistot kiinni ja laittanut anturin ja paristot kalvorasiaan. Rasiaan pohjaan porannut muutaman reiän.

Näitä kaksi sarjaan. Pariston päistä kannattaa viilalla tai hiekkapaperilla vetäistä niklaus puhki niin tina tarttuu hyvin.
 
Mulla olisi yksi Ruuvi tägi jonka ajattelin koittaa laittaa ulkosensoriksi kun se on sopivan pieni ja huomaamaton(kerrostalokämppä, ei parveketta), joten seuraava steppi olis koittaa jos sitä saisi samaan influxiin ja graafiin luettua. Tuohon löytyi kanssa valmis ohje ja jonkinlainen vastaava skripti joka tosin on tehty javalla. En tiedä, saisko tuota ruuviakin luettua tuolla MiTemperature skriptillä jonkinverran puukottamalla, toiminee kait samaan tapaan mutta "ATC formaatin" sijaan data tulee eddystone muodossa joka pitäisi jotenkin purkaa numeeriseen muotoon...
 

Tuolla vaikuttaa olevan lupaavat ohjeet. Itsellä ei ruuvitageja ole niin en pääse kokeilemaan.

Jännite-erosta huomaa että osassa antureita on sormiparistot
 
Viimeksi muokattu:
Sain nyt myös tuon Ruuvin lukemaan juurikin tuon saman ohjeen mukaan. Tuosta vaan puuttui se että noissa uudemmissa(?) raspberry OS ei ole tuota hcidumppia mukana, niin se piti lisäillä ennenkuin lähti toimimaan...

1664981998669.png


Seuraavaksi pitäisi koodailla nuo molemmat käynnistymään automaagisesti, josko härveli sattuu buuttaamaan itsensä syystä tai toisesta. Tuolle Ruuville oli ohjeessa mainittukin miten moinen onnistuu, samaa kaavaa soveltaen oletettavasti myös tuolle MiTempille.
 
Tuli asenneltua Raspbian uusiksi jotta sai päivitettyä Busterin Bookwormiin. Kannattaa suosiolla asentaa puhtaalta pöydältä. Busterin sai vielä Bullseyehen päivitettyä dist-upgradella ja senkin jälkeen piti verkkoasetuksia säädellä, jotta sai verkon toimimaan. Bullseyen päivitys sitä vastoin ei onnistunut eikä Raspi suostunut enää boottamaan. Tämän välin päivitys ei ilmeisesti ole edes virallisesti tuettu. Otin ennen päivitystä Influxdb:n tietokannan talteen kopioimalla USB-tikulle kansion /var/lib/influxdb.

Asensin Bookwormin puhtaalta pöydältä Raspberry Pi Imagerilla. Imager tarjoaa vielä Bullseyeta (as of 28.11.2023), joten kannattaa ladata Bookwormin levykuva erikseen ja asentaa se muistikortille custom img-valinnalla. Tuon jälkeen voi taas asennella tarvittavat palikat.

Grafanan asensin näillä ohjeilla Install Grafana on Debian or Ubuntu | Grafana documentation

Raspbian alkoi tuon jälkeen valitella "Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).". Tuon saa korjattua näillä ohjeilla [Fixed] apt-key is deprecated. Manage keyring files in trusted.gpg.d

Influxin asentelin Raspbianin omasta repositorysta.

Tämän jälkeen voi taas asennella sensorien lukuun tarvittavat palikat. Bookwormin myötä ohjetta hiukan tarvittavien pakettien kohdalla päivitetty. GitHub - JsBergbau/MiTemperature2: Read the values of the Xiaomi Mi Bluetooth Temperature sensor 2 including custom encrypted format.

Python-ohjelmia asentaessa tulee Bookwormin myötä ilmoitus "error: externally-managed-environment
Bash:
× This environment is externally managed

╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification."

Tuon ohitin ohjeen mukaisesti lisäämällä valinnan --break-system-packages. Joku viisaampi voi kertoa, onko tuo kuinka haitallista pidemmän päälle. Itse ajan tällä kyseisellä Raspilla vain tätä lämpötilaloggeria.

Pybluez ei ohjeen mukaan asennettuna suostunut toimimaan ja vika johtuu ilmeisesti jostakin bugista tällä hetkellä tarjolla olevasta valmiista versiosta, joten asensin Githubista suoraan uusimman version, täältä löytyvällä ohjeella PyBluez: error in PyBluez setup command: use_2to3 is invalid Tätä ennen asennettava Git, joka ei ole vakiona Raspbianissa.

Bluetooth ei itsellä lennosta lähtenyt toimimaan, joten käynnistin tähän väliin Raspin uusiksi. Influxdb.service kannattaa tässä välissä pysäyttää, kopioida influxdb-kansio usb-tikulta takaisin kansioon /var/lib, varmistaa että kansion omistajana säilyy influxdb ja sen jälkeen käynnistää influxdb.service uudestaan. Ajamalla shellissä "influx" ja kirjoittamalla "show databases", pitäisi tuon palautetun tietokannan näkyä listassa.

Alkuperäisen scriptin pitäisi tämän jälkeen toimia heittämällä ja lämpötilojen tallentamisen jatkua.

Itse olen aiemmin ajanut scriptiä sellaisenaan screenissä, mutta nyt tein siitä systemd-servicen ja laitoin käynnistymään bootissa.

Kopioin tuon MiTemperature2-kansion sellaiseen kansioon /usr/local/bin ja tein sinne xiaomisensors.sh-scriptin, jonka sisältö on
Bash:
#!/bin/bash
python3 /usr/local/bin/MiTemperature2/LYWSD03MMC.py --atc --devicelistfile /usr/local/bin/MiTemperature2/sensors.ini --rssi --skipidentical 50 --callback sendToInflux.sh

Tämän jälkeen tein tämän linkin Ubuntu-kohdan ohjeilla service-tiedoston ja laitoin käynnistymään scriptin bootissa. How to Run a Linux Script on Startup: A Detailed Guide

Bash:
[Unit]
Description=Logging temperatures with Xiaomi BLE sensors

[Service]
ExecStart=/usr/local/bin/MiTemperature2/xiaomisensors.sh

[Install]
WantedBy=multi-user.target
 
Hyvä hyvä.

Mulla meni kanssa hermo tohon Pi Zero W hitauteen ja lopulta se ilmeisesti korruptoi SD kortin niin heivasin sen arkistoon ja hommasin Pi4:sen tilalle. Asentelin siihen silloin uusimman version mitä imager loppukesästä tarjosi(lienee Bullseye?) ja asensin sen SSD levylle, joita lojui ylimääräisenä laatikossa. Samojen juttujen kanssa oli jälleen hieman taisteluita, mutta sain sen lopulta toimimaan sitten suht nätisti ja nytten se pyörii ihan hienosti. Kolme MiTemppiä mittaa sisälämpöjä ja yksi Ruuvi ulkona mittaamassa.

1701245011577.png


Tein noi servicet ja automaattikäynnistyksen tuolta Ruuvin ohjeita mukaillen myös MiTempille. Näyttää olevan hieman eri tavalla tehty kuin tuo @Grazer tekemä, mulla on tuo "ajokomento" ja kohdehakemisto molemmat tuola service tiedostossa:

Koodi:
[Unit]
Description=MiTemp service

[Service]
User=pi
WorkingDirectory=/home/pi/MiTemp2/
ExecStart=/usr/bin/sudo ./LYWSD03MMC.py --atc --rssi --influxdb 1 --devicelistfile sensors.ini --callback sendToInflux.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target


Homma toimii muuten hienosti, mutta toi MiTemp service ei lähde kunnolla käyntiin kun aparaatti buuttaa, vaan se jää jotenkin jumiin, oletettavasti joku toinen prosessi(bluetooth?) ei kerkeä kunnolla käynnistyä ennenkö toi MiTemp service ajetaan, kun servicen uudelleen käynnistämällä se lähtee heti toimimaan. Samalla tavalla tehty ruuvi.service lähtee hienosti käyntiin kyllä.

Onko ideaa miten tuota MiTemp servicen käynnistymistä vois bootissa viivästyttää tai siirtää sitä jotenkin "käynnistettävien prosessien listalla alemmas"?
 
Hyvä hyvä.

Mulla meni kanssa hermo tohon Pi Zero W hitauteen ja lopulta se ilmeisesti korruptoi SD kortin niin heivasin sen arkistoon ja hommasin Pi4:sen tilalle. Asentelin siihen silloin uusimman version mitä imager loppukesästä tarjosi(lienee Bullseye?) ja asensin sen SSD levylle, joita lojui ylimääräisenä laatikossa. Samojen juttujen kanssa oli jälleen hieman taisteluita, mutta sain sen lopulta toimimaan sitten suht nätisti ja nytten se pyörii ihan hienosti. Kolme MiTemppiä mittaa sisälämpöjä ja yksi Ruuvi ulkona mittaamassa.

1701245011577.png


Tein noi servicet ja automaattikäynnistyksen tuolta Ruuvin ohjeita mukaillen myös MiTempille. Näyttää olevan hieman eri tavalla tehty kuin tuo @Grazer tekemä, mulla on tuo "ajokomento" ja kohdehakemisto molemmat tuola service tiedostossa:

Koodi:
[Unit]
Description=MiTemp service

[Service]
User=pi
WorkingDirectory=/home/pi/MiTemp2/
ExecStart=/usr/bin/sudo ./LYWSD03MMC.py --atc --rssi --influxdb 1 --devicelistfile sensors.ini --callback sendToInflux.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target


Homma toimii muuten hienosti, mutta toi MiTemp service ei lähde kunnolla käyntiin kun aparaatti buuttaa, vaan se jää jotenkin jumiin, oletettavasti joku toinen prosessi(bluetooth?) ei kerkeä kunnolla käynnistyä ennenkö toi MiTemp service ajetaan, kun servicen uudelleen käynnistämällä se lähtee heti toimimaan. Samalla tavalla tehty ruuvi.service lähtee hienosti käyntiin kyllä.

Onko ideaa miten tuota MiTemp servicen käynnistymistä vois bootissa viivästyttää tai siirtää sitä jotenkin "käynnistettävien prosessien listalla alemmas"?
Tuo WantedBy -rivi vaikuttaa käynnistysjärjestykseen, samoin oli joku toinen vastaava määritys millä pystyi viivästämään servicen käynnistymistä niin että odottaa jonkun toisen palvelun käynnistymistä ensin. En nyt tuota toista määritystä muista mutta varmaankin systemd service -haulla löytyy googlella lisätietoja.

edit:
Tuo asetushan tietty oli After=<palvelun/targetin nimi> eli pitää vaan keksiä minkä jälkeen tuon haluaa käynnistyvän.
 
Jees, tuon saman löysin kun aiemmin homman kanssa tamusin, mutta en keksinyt minkä prosessin tuo mahtaa vaatia. Näenkö jollain komennolla missä järjestyksessä nuo prosessit käynnistyy? Tai saako tuosta jotakin logia missä järjestyksessä mitäkin on tapahtunut kun kone on buutannut?

Noista olisi ehkä helpompi sit haarukoida että minkä jälkeen tuon vois laittaa käynnistymään...
 
Jees, tuon saman löysin kun aiemmin homman kanssa tamusin, mutta en keksinyt minkä prosessin tuo mahtaa vaatia. Näenkö jollain komennolla missä järjestyksessä nuo prosessit käynnistyy? Tai saako tuosta jotakin logia missä järjestyksessä mitäkin on tapahtunut kun kone on buutannut?

Noista olisi ehkä helpompi sit haarukoida että minkä jälkeen tuon vois laittaa käynnistymään...
ainakin komennolla
Koodi:
systemd-analyze plot > startup_order.svg
saa svg-kuvan käynnistysjärjestyksestä. Tuossa systemd-analyze -komennossa on kaikkia muitakin jänniä parametreja joilla noita palveluita voi tutkia joten kannattaa tutustua.
 
Kuinkas hyvä range noissa Xiaomin mittareissa on? Kiinnostaisi kovasti viritellä lämpötilan seurantaa ympäri kämppää, mutta talo on neljässä kerroksessa ja kevytbetonia, eli aika haastava ympäristö bluetoothille.
 
Kuinkas hyvä range noissa Xiaomin mittareissa on? Kiinnostaisi kovasti viritellä lämpötilan seurantaa ympäri kämppää, mutta talo on neljässä kerroksessa ja kevytbetonia, eli aika haastava ympäristö bluetoothille.
Kyllähän tuo ympäristösi haastava on ja varautuisin siihen, ettei yksi vastaanottava laite riitä. Mutta yllättävän hyvin noissa bt kantaa. Olettaen toki kaikkien olevan samaa laatua. Itselle tuli parisen vuotta sitten viimeksi noita.

Pakastimessa testasin pakkasen kestoa joskus, toiseen huoneeseen vastakkaiseen nurkkaan betoniseinän läpi ihan ok.
Autossa on myös ollut testimielessä. Keskikonsolissa "tuhkakupin" paikalla ei varmasti paras paikka ole mutta toimii sieltäkin. Sanotaan luokkaa 15m ja tiiliseinä, ei ongelmia. Muistelen toimineen vähän pidemmälläkin matkalla puurakenteisen varaston läpi mutta ihan varmaksi en tätä sano.

Samat kokeilut joskus tehnyt zigbee-versioillakin. Jääkaappi/pakastin menee mutta kantama on bt-versioita heikompi. Sama autossa, tuuripeliä on. Luonnollisesti eri, jos käytössä on routerina toimivia laitteita, ei pelkkiä pelkkää end deviceä.
Sanoisin myös bt:n yhdistyvän mukavammin uudelleen mutta aika suppeasti on sitä tullut testattua niin, että olisivat samassa paikassa eikä zigbeelle routeria välissä. Lähinnä jääkaappi/pakastin ja auto.

Ja noissa bt-malleissa on oma muisti joten tuntitasolla saa arvot sitä lukemalla vaikka olisi suurimman osan vuorokautta "hukassa".
 
Joo kyllä noi suht hyvin toimii etenkin siihen nähden kun on vain tuollainen neppariparistolla toimiva pieni kikkare, mutta tuskin useamman kerroksen/seinän läpi. Jonkinverran taitaa riippua myös että minkälaisella laitteella noita lukee, Pi zero W ja Pi4 esim tuntuvat lukevan hieman eri tavalla, perstuntumalla Pi4 on vähän herkempi asettelun kanssa. Sit toisekseen, en tiedä saisko noitten lähetystehoa buustattua customisoftilla kuinka(an).
 
Hyvä hyvä.

Mulla meni kanssa hermo tohon Pi Zero W hitauteen ja lopulta se ilmeisesti korruptoi SD kortin niin heivasin sen arkistoon ja hommasin Pi4:sen tilalle. Asentelin siihen silloin uusimman version mitä imager loppukesästä tarjosi(lienee Bullseye?) ja asensin sen SSD levylle, joita lojui ylimääräisenä laatikossa. Samojen juttujen kanssa oli jälleen hieman taisteluita, mutta sain sen lopulta toimimaan sitten suht nätisti ja nytten se pyörii ihan hienosti. Kolme MiTemppiä mittaa sisälämpöjä ja yksi Ruuvi ulkona mittaamassa.

1701245011577.png


Tein noi servicet ja automaattikäynnistyksen tuolta Ruuvin ohjeita mukaillen myös MiTempille. Näyttää olevan hieman eri tavalla tehty kuin tuo @Grazer tekemä, mulla on tuo "ajokomento" ja kohdehakemisto molemmat tuola service tiedostossa:

Koodi:
[Unit]
Description=MiTemp service

[Service]
User=pi
WorkingDirectory=/home/pi/MiTemp2/
ExecStart=/usr/bin/sudo ./LYWSD03MMC.py --atc --rssi --influxdb 1 --devicelistfile sensors.ini --callback sendToInflux.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target


Homma toimii muuten hienosti, mutta toi MiTemp service ei lähde kunnolla käyntiin kun aparaatti buuttaa, vaan se jää jotenkin jumiin, oletettavasti joku toinen prosessi(bluetooth?) ei kerkeä kunnolla käynnistyä ennenkö toi MiTemp service ajetaan, kun servicen uudelleen käynnistämällä se lähtee heti toimimaan. Samalla tavalla tehty ruuvi.service lähtee hienosti käyntiin kyllä.

Onko ideaa miten tuota MiTemp servicen käynnistymistä vois bootissa viivästyttää tai siirtää sitä jotenkin "käynnistettävien prosessien listalla alemmas"?
Helpoin lienee timerilla viivästää käynnistymistä


Tästä ohjeesta poiketen itse laittanut nuo .service- ja .timer -tiedostot kansioon /etc/systemd/system

Kuinkas hyvä range noissa Xiaomin mittareissa on? Kiinnostaisi kovasti viritellä lämpötilan seurantaa ympäri kämppää, mutta talo on neljässä kerroksessa ja kevytbetonia, eli aika haastava ympäristö bluetoothille.
Eipä tuota taida kuin kokeilemalla saada selvitettyä. Vanhemmilla on näitä ja hyvin tulee signaali muutaman kipsilevyseinän ja pakastimen läpi tai sitten parin tiiliseinän läpi. Itsellä on parvekkeella tuollainen. Seinä 40 cm paksu sandwich-elementti ja tuostakin tulee läpi. Epäilen että sulla tuskin onnistuu yhdellä ainoalla Raspilla. Noitahan voi laittaa useammankin ja sitten laittaa vaan käyttämään yhtä ja samaa Influx-tietokantaa jollakin laitteella tai kokonaan erillisellä palvelimella.
 
Viimeksi muokattu:
Nykyään täytyy näköjään asentaa myös bluepy, muuten tulee scriptiä ajaessa virheilmoitus
Koodi:
 from bluepy import btle
ModuleNotFoundError: No module named 'bluepy'

Sensoreihin on nykyään tarjolla kahden tekijän custom-firmwarea
Itsellä on iso kasa kolme vuotta vanhoja sensoreita, joten en tiedä, mitä tämä tarkoittaa tuon pvvx:n firmiksen kohdalla. Ilmeisesti uusimmalla orkkisfirmiksellä olevia sensoreita ei saa flashattya custom-firmwarelle
Warning: Firmware LYWSD03MMC version 2.1.1_0159 is temporarily not supported!
 

Statistiikka

Viestiketjuista
261 719
Viestejä
4 545 070
Jäsenet
74 835
Uusin jäsen
koominen

Hinta.fi

Back
Ylös Bottom