jblance/mpp-solar

pip install mppsolar[ble] Freeze Raspberry PI Zero W2

fableman73 opened this issue · 11 comments

I cant install, the Raspberry Pi Zero W21 freeze up during install..

Dont know why. Noticed that CCL took 100% CPU for a long time now and then during the install.

All I need is just get CLI data from the JKBMS data over BLE, nothing else... Is the install too big ?
Any hints ?

I am stuck.,,, tried it a few times and always same problem,,, everything working, new SSD card...

`root@husb:~# pip install mppsolar[ble]
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mppsolar[ble]
Using cached https://www.piwheels.org/simple/mppsolar/mppsolar-0.15.62-py3-none-any.whl (122 kB)
Collecting pydantic<2.0.0,>=1.10.7
Using cached pydantic-1.10.14-py3-none-any.whl (158 kB)
Collecting PyYAML>=6
Using cached PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (731 kB)
Collecting paho-mqtt>=1.6
Using cached https://www.piwheels.org/simple/paho-mqtt/paho_mqtt-2.0.0-py3-none-any.whl (66 kB)
Collecting strenum<0.5.0,>=0.4.10
Using cached https://www.piwheels.org/simple/strenum/StrEnum-0.4.15-py3-none-any.whl (8.9 kB)
Collecting pyserial>3
Using cached https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting bleak<0.21.0,>=0.20.2
Using cached https://www.piwheels.org/simple/bleak/bleak-0.20.2-py3-none-any.whl (135 kB)
Requirement already satisfied: bluepy<2.0.0,>=1.3.0 in /usr/local/lib/python3.9/dist-packages (from mppsolar[ble]) (1.3.0)
Collecting async-timeout<5,>=3.0.0
Using cached https://www.piwheels.org/simple/async-timeout/async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Collecting dbus-fast<2.0.0,>=1.83.0
Using cached dbus_fast-1.95.2.tar.gz (67 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting typing-extensions>=4.2.0
Using cached https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.10.0-py3-none-any.whl (33 kB)
Building wheels for collected packages: dbus-fast
Building wheel for dbus-fast (PEP 517) ... \


top - 16:27:21 up 17 min, 2 users, load average: 7.62, 3.89, 1.93
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 13.6 sy, 0.0 ni, 16.5 id, 69.6 wa, 0.0 hi, 0.1 si, 0.0 st
MiB Mem : 419.3 total, 83.1 free, 314.2 used, 22.0 buff/cache
MiB Swap: 100.0 total, 0.1 free, 99.9 used. 70.0 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 54 root      20   0       0      0      0 S 100.0   0.0   1:16.89 kswapd0
682 root      20   0  137952 103088      0 D  18.3  24.0   1:06.85 cc1
632 fableman  20   0    9844   1080    624 R  10.3   0.3   0:11.82 top
 95 root       0 -20       0      0      0 I   7.1   0.0   0:06.61 kworker+
343 avahi     20   0    7064    836    560 S   7.0   0.2   0:02.75 avahi-d+
550 root      20   0   73576    248      0 S   5.7   0.1   0:02.03 nmbd
 97 root       0 -20       0      0      0 I   4.8   0.0   0:07.31 kworker+

`

Cross-compile it on some potential system or be patient to finish.

--- Cross-compile it on some potential system
what files do I need to transfer ?

--- or be patient to finish.
The system hangs and is unresponsive after 30 minutes.

CC1 is compilator
embedded system are slowwwwwer for non dedicated jobs.

After 5 hours waiting I gave up,, the RPi Zero W2 can't install..

Then I did this:


export SKIP_CYTHON=false
pip install mppsolar[ble]

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mppsolar[ble]
  Downloading https://www.piwheels.org/simple/mppsolar/mppsolar-0.15.62-py3-none-any.whl (122 kB)
     |████████████████████████████████| 122 kB 770 kB/s
Collecting PyYAML>=6
  Downloading PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (731 kB)
     |████████████████████████████████| 731 kB 2.0 MB/s
Collecting pyserial>3
  Downloading https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
     |████████████████████████████████| 90 kB 850 kB/s
Collecting paho-mqtt>=1.6
  Downloading https://www.piwheels.org/simple/paho-mqtt/paho_mqtt-2.0.0-py3-none-any.whl (66 kB)
     |████████████████████████████████| 66 kB 1.4 MB/s
Collecting pydantic<2.0.0,>=1.10.7
  Downloading pydantic-1.10.14-py3-none-any.whl (158 kB)
     |████████████████████████████████| 158 kB 2.4 MB/s
Collecting strenum<0.5.0,>=0.4.10
  Downloading https://www.piwheels.org/simple/strenum/StrEnum-0.4.15-py3-none-any.whl (8.9 kB)
Collecting bluepy<2.0.0,>=1.3.0
  Downloading bluepy-1.3.0.tar.gz (217 kB)
     |████████████████████████████████| 217 kB 2.3 MB/s
Collecting bleak<0.21.0,>=0.20.2
  Downloading https://www.piwheels.org/simple/bleak/bleak-0.20.2-py3-none-any.whl (135 kB)
     |████████████████████████████████| 135 kB 955 kB/s
Collecting async-timeout<5,>=3.0.0
  Downloading https://www.piwheels.org/simple/async-timeout/async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Collecting dbus-fast<2.0.0,>=1.83.0
  Downloading dbus_fast-1.95.2.tar.gz (67 kB)
     |████████████████████████████████| 67 kB 1.0 MB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting typing-extensions>=4.2.0
  Downloading https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.10.0-py3-none-any.whl (33 kB)
Building wheels for collected packages: bluepy, dbus-fast
  Building wheel for bluepy (setup.py) ... done
  Created wheel for bluepy: filename=bluepy-1.3.0-cp39-cp39-linux_aarch64.whl size=557056 sha256=d6772e49a0a0f8cab9c2dee27aa8bf584760228793f433013c2eeab70b611e58
  Stored in directory: /root/.cache/pip/wheels/69/19/c8/ce29283853bd5d7d0041d0afb023c22e2b880b4194f73230b1
  Building wheel for dbus-fast (PEP 517) ... done
  Created wheel for dbus-fast: filename=dbus_fast-1.95.2-cp39-cp39-manylinux_2_31_aarch64.whl size=75594 sha256=8da66734e8dfbc335c1c035cd2aa6f4033e343c04fb8a7e6948029537bb9258a
  Stored in directory: /root/.cache/pip/wheels/57/57/dd/8cf1530c02f62c1e5bfe71fd2fe9bbfde2f2ecd610466de148
Successfully built bluepy dbus-fast
Installing collected packages: typing-extensions, strenum, PyYAML, pyserial, pydantic, paho-mqtt, dbus-fast, async-timeout, mppsolar, bluepy, bleak
  Attempting uninstall: PyYAML
    Found existing installation: PyYAML 5.3.1
    Not uninstalling pyyaml at /usr/lib/python3/dist-packages, outside environment /usr
    Can't uninstall 'PyYAML'. No files were found to uninstall.
Successfully installed PyYAML-6.0.1 async-timeout-4.0.3 bleak-0.20.2 bluepy-1.3.0 dbus-fast-1.95.2 mppsolar-0.15.62 paho-mqtt-2.0.0 pydantic-1.10.14 pyserial-3.5 strenum-0.4.15 typing-extensions-4.10.0


**root@husb:~# mpp-solar -p C8:47:82:17:3E:36 -c getInfo**

Exception ignored in: <function Client.__del__ at 0x7f84e354c0>
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/paho/mqtt/client.py", line 874, in __del__
    self._reset_sockets()
  File "/usr/local/lib/python3.9/dist-packages/paho/mqtt/client.py", line 1133, in _reset_sockets
    self._sock_close()
  File "/usr/local/lib/python3.9/dist-packages/paho/mqtt/client.py", line 1119, in _sock_close
    if not self._sock:
AttributeError: 'Client' object has no attribute '_sock'
Traceback (most recent call last):
  File "/usr/local/bin/mpp-solar", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/mppsolar/__init__.py", line 230, in main
    mqtt_broker = MqttBroker(
  File "/usr/local/lib/python3.9/dist-packages/mppsolar/libs/mqttbrokerc.py", line 44, in __init__
    self.mqttc = mqtt_client.Client()
TypeError: __init__() missing 1 required positional argument: 'callback_api_version'

So I manage to install mpp-solar but it crash instead... Any clue where to go from here ?

put terminal content in code <>

https://github.com/jblance/mpp-solar/wiki/Detailed-Usage

$ jkbms -p 3C:A5:09:0A:AA:AA -c getInfo
Command: getInfo - BLE Device Information inquiry
------------------------------------------------------------
Parameter                     	Value           Unit
Header                        	55aaeb90       	    
Record Type                   	03             	    
Record Counter                	181            	    
Device Model                  	JK-BD6A20S     	    
Hardware Version              	10P4.0         	    
Software Version              	4.1.7          	    
Device Name                   	JK-BD6A20S    	    
Device Passcode               	xxxx          	    
Unknown1                      	200708         	    
Unknown2                      	2006284075     	    
User Data                     	Input Userdata 	    
Settings Passcode?            	xxx         

I now installed Python 3.12

and reinstalled mppsolar.

root@husb:~# python -m pip install mppsolar[ble]

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mppsolar[ble]
  Using cached https://www.piwheels.org/simple/mppsolar/mppsolar-0.16.29-py3-none-any.whl (229 kB)
Collecting bleak<0.21.0,>=0.20.2 (from mppsolar[ble])
  Using cached https://www.piwheels.org/simple/bleak/bleak-0.20.2-py3-none-any.whl (135 kB)
Collecting bluepy<2.0.0,>=1.3.0 (from mppsolar[ble])
  Using cached bluepy-1.3.0-cp312-cp312-linux_aarch64.whl
Collecting paho-mqtt<2.0.0,>=1.6 (from mppsolar[ble])
  Using cached https://www.piwheels.org/simple/paho-mqtt/paho_mqtt-1.6.1-py3-none-any.whl (75 kB)
Collecting pycryptodome<4.0.0,>=3.20.0 (from mppsolar[ble])
  Using cached pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (3.4 kB)
Collecting pydantic>=1.8.0 (from mppsolar[ble])
  Using cached https://www.piwheels.org/simple/pydantic/pydantic-2.6.3-py3-none-any.whl (395 kB)
Collecting pyserial>3 (from mppsolar[ble])
  Using cached https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
Collecting dbus-fast<2.0.0,>=1.83.0 (from bleak<0.21.0,>=0.20.2->mppsolar[ble])
  Using cached dbus_fast-1.95.2-cp312-cp312-manylinux_2_31_aarch64.whl
Collecting annotated-types>=0.4.0 (from pydantic>=1.8.0->mppsolar[ble])
  Using cached https://www.piwheels.org/simple/annotated-types/annotated_types-0.6.0-py3-none-any.whl (12 kB)
Collecting pydantic-core==2.16.3 (from pydantic>=1.8.0->mppsolar[ble])
  Using cached pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.5 kB)
Collecting typing-extensions>=4.6.1 (from pydantic>=1.8.0->mppsolar[ble])
  Using cached https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.10.0-py3-none-any.whl (33 kB)
Using cached pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1 MB)
Using cached pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB)
Installing collected packages: pyserial, paho-mqtt, bluepy, typing-extensions, pycryptodome, dbus-fast, annotated-types, pydantic-core, bleak, pydantic, mppsolar
Successfully installed annotated-types-0.6.0 bleak-0.20.2 bluepy-1.3.0 dbus-fast-1.95.2 mppsolar-0.16.29 paho-mqtt-1.6.1 pycryptodome-3.20.0 pydantic-2.6.3 pydantic-core-2.16.3 pyserial-3.5 typing-extensions-4.10.0

still error..

root@husb:~# mpp-solar -p C8:47:80:07:3E:36 -c getInfo

Traceback (most recent call last):
  File "/usr/local/bin/mpp-solar", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/mppsolar/__init__.py", line 426, in main
    results = _device.run_command(command=_command)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/mppsolar/devices/device.py", line 92, in run_command
    raw_response = self._port.send_and_receive(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/mppsolar/inout/jkbleio.py", line 38, in send_and_receive
    record_type = command_defn["record_type"]
                  ~~~~~~~~~~~~^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

Its not compatible with python 3.12 ?

Manual say to use jkbms to get info.

root@husb:~# mpp-solar -p C8:47:80:07:3E:36 -c getInfo

also need to supply the protocol eg -P JK04 (or jk02)